MOREロードアベレージってなに?2014.10.20皆様お久しぶりです。シニアプログラマの小田です。(facebookをやってますので技術交流しましょう!!)負荷についての1回目からの続きをやりたいと思います。1回目を見ていない人はこちらから。今回は負荷として「ロードアベレージ」について書きます。・CPUの個数分を超えなければOK・これが高いと処理が遅くなるぱっと思いつくのはこれぐらいでしょうか。掘り下げていきましょう。こんな時に頼りになるのは、ウィキペディアこと百科事典ですね。先生:「大丈夫、私もわかりません!w」って会話が聞こえてきそうですね。それでは結局どういうものなのかを見て行きましょう。ロードアベレージは、実行待ちのプロセスがどれだけあるか?を示しています。これが高い数値であればあるほど、待たされているプロセスが多いということで、処理の待ち時間が長くなっていきます。ソーシャルゲームで置き換えると、APIを呼び出してレスポンスを返してくれないと、サーバ側のデータを、ゲーム内で表示させることすらできなくなります。「自分のアカウントにログインするぞ」といっても、実行待ちのプロセスとして並ばされると、ログイン結果が全く帰ってこないわけです。これはストレスになりますよね。ロードアベレージの基準値」という図式は当てはまりません。いうのも、これはCPUのタスクスケジューラーの問題で高いのか、それとも正当に各CPUごとに1タスクずつ待たされているのか?など理由がわからないためです。個々のワークロードの軽重を示す指標にはならない」というのは、まさにこのことですね。待たされる数が高くないに越したことはないのですが、リンクにもある通り、負荷状況をみるために、CPU使用率を参考にするようになってきています。待ち行列を解消するには単純な話ですが、プロセスを処理する回転率を上げればいいのです。(急にお店スタッフのような言い方になってすみません)そうです単にそれだけなのです。無駄なループを回していないか?複数のデータを1回で取得出来るのではないか?SQLに対してインデックスはきいているか?といった無駄な処理を無くすというのが、やはりいちばん懸命なのです。当たり前のことですが、これを読んで頂いたあなた自身、胸に手を当てて考えて頂ければ幸いです。はい!ということで次お会いするときは、CPU使用率について語りたいと思います!!以上、「ロードアベレージってなに?」についてでした。次回お会いしましょう。