Guardian誌のPatrick HamannがLondon Web Performance Meetupで、モバイルサイトのパフォーマンス向上の取組みについて講演しています。 まずは、Web Performance TodayのeCommerceに関する調査で、 ユーザの期待するページ読込み時間は、2000年の8秒から、2012年には2秒を切るレベルまで下がってきている。 ことを挙げ、1秒以下を達成するには、 3Gネットワークでは、DNS Lookup / TCP Connection / HTTP Request & Responseで 600ms (Guardianのある英国ではそれ以上)はかかる。残りの400msで、Server Response TimeとClient-side Renderingを最適化する必要がある。 というGoogleのPageInsightの分析結果を紹
2012年6月のエントリの続きです。前回は同期レプリケーションによるネットワーク遅延のある環境において、MySQLの性能がどの程度低下するのかということを確認しました。その中でも特にsync_binlogが1に設定されている場合、性能が大きく低下するということが分かりました。参考としてAmazon RDSのマルチAZデプロイメントにおいては、性能と信頼性のトレードオフを考慮した結果、sync_binlogがデフォルトで0に設定されているということを調査しました。 タイトルでネタバレしていますが、MySQLの次期バージョン、MySQL 5.6でこのsync_binlog=1の性能が大きく改善します。前回と同じ負荷テストをMySQL 5.5.25からMySQL 5.6.6-labsに差し替えて行った結果を、以下に示します。 前回のMySQL 5.5.25と異なり、sync_binlog=1にお
MySQL InnoDBのパラメータでinnodb_flush_methodというものがあります。これはUNIX/Linuxにおいてデータファイル、ログファイルの読み書き方式を指定するためのもので、マニュアルの13.6.3. InnoDB Startup Options and System Variablesによると以下の3種類の設定が可能とされています。 無指定(fdatasync):デフォルトの設定です。特別なフラグなしでファイルをオープンし、書き込み時にfsync()を行います。 O_DSYNC:データファイルについてはfdatasyncと同じです。ログファイルについてO_SYNCフラグをつけてファイルをオープンします。 O_DIRECT:データファイルについてO_DIRECTフラグをつけてファイルをオープンします。ログファイルについてはfdatasyncと同じです。 今回はこのパ
いつの間にか会社で古株になったyamaokaです。 webアプリケーションのバックエンドにMySQLを使っている場合、 クエリ(SQL)のチューニングをする必要がありますよね。 皆さんはチューニングの計画をどのように立てていますか。 もちろん、既に明らかに重いことが想定されているページがあれば、 その処理で使われているクエリを中心にEXPLAINなどを使って解析していけばいいと思います。 でもそうではなく、全体的にクエリの見直しやチューニングを行いたい場合は 実際に実行されているクエリを確認していくという作業が必要です。 そこで使うことができる3つの方法について書きたいと思います。 遅いクエリを記録する MySQLにはスロークエリログといって、 実行に時間がかかったクエリを記録する機能が最初から付いています。 /etc/my.cnfに次のように設定を書けば実行時間が1秒を超えたクエリが出力
改造Firefoxで日米間6.5GbpsのWebアクセス。東大が世界最速達成 -BB Watch より。私は 1Gbps 以上の世界は完全に未知の世界なので、今回の記事は「どうやって 6.5Gbps ものデータ転送速度を達成するか」ではなく「何故、改善前は(そんな高速ネットワーク環境下で) 6Mbps 程度のデータ転送速度しか出せないのか」と言うお話です。 TCP のデータ転送(ダウンロード)では、ソケットバッファの値を弄っただけで劇的にデータ転送速度が改善される場合があります。 ソケットバッファとは? あるサーバ/クライアント間でデータ通信をする際、パケットが、受信ホストに到着するタイミングと(受信ホストの)アプリケーションが、到着したパケットを読み込むタイミングは非同期です。そのため、パケット(データ)は到着したのだけれどアプリケーションがまだ読み込みに来てくれないと言う場合に、そのデ
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の8日目です。 前回は php のプロセス数を絞ることのメリットを解説しました。 プロセス数を絞るには FPM を使うなどの方法もありますが、 DSAS for Social では php は Apache + mod_php を使っていて、 それにリバースプロキシを組み合わせて利用しています。 今日はこのリバースプロキシの役割を説明して行きます。 以降、リバースプロキシのことを単にプロキシと呼びます。 プロキシを使う理由 そもそも、なぜプロキシを使うのかを説明しておきます。 5秒ルール ケータイ向けのソーシャルアプリでは、ユーザーからのリクエストは 一旦プラットフォームのサーバーを経由して、アプリを提供している Webサーバーに到達します。 このとき、アプリ側のレスポンスがあまりに遅いとプ
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の7日目です。 @methane の新シリーズは Apache+php のチューニングです。 今日のお題は、タイトルのとおり、phpのプロセス数(=並列数)を減らすことです。 これはチューニンガソンでも人気のチューニングだったのですが、 今日はそのメリットをまとめます。 ロードアベレージが下がる プロセス数をコア数+α程度に抑えると、ロードアベレージがコア数の数倍〜 数十倍になることがなくなります。 例えばロードアベレージがコア数の100倍になると、1リクエストの処理に かかる時間は100倍以上に増え、せっかく処理したのにクライアント側が タイムアウトしていて完全に無駄骨になったり、最悪では再リクエストが来て さらに負荷が上がる負のスパイラルに陥る可能性があります。 たくさん一気に処理しよう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く