skillup

技術ブログ

サーバー・ネットワーク

負荷調査のセオリー

投稿日:

以前にも下記リンクで負荷調査について記事を書いたんですが、もう少し掘り下げてみようかと。
サーバーの過負荷の発見 理論編
サーバーの過負荷の発見 メモリ使用率の調査&抽出、置換(awk,sed)コマンドについて
システム監視の基礎

全体の流れ

  1. ロードアベレージ調査
  2. ロードアベレージ低→ネットワーク系の可能性高い(コマンド調査)
  3. ロードアベレージ高→CPU,メモリ,I/Oの可能性高い(コマンド調査)

参考リンク

http://easyramble.com/linux-command-to-check-status.html

http://qiita.com/k0kubun/items/8ab1dfa7c0359d8e618d#_reference-6dfb89c192a2b5619d10

http://www.sakito.com/2012/06/linux.html

https://gist.github.com/hayajo/3950496

http://study.next-engine.net/linux%E9%AB%98%E8%B2%A0%E8%8D%B7%E3%81%AE%E5%8E%9F%E5%9B%A0%E3%82%92%E8%AA%BF%E6%9F%BB.html

https://gist.github.com/kitak/6349463

http://blog.father.gedow.net/2012/10/23/linux-command-for-trouble/

http://qiita.com/Tocyuki/items/2e811cedd53b58b10270

シス管系女子

ロードアベレージ

辞書的な定義は1CPUにおける単位時間あたりの実行待ちとディスクI/O待ちのプロセスの数。CPUの実行権限が与えられるのを待っているプロセス」「ディスクI/Oの完了を待っているプロセス」の多さのこと

http://qiita.com/k0kubun/items/8065f5cf2da7605c8043

簡単に言うとこれが大きいほど仕事が混んでる状態。(目安として1以下であれば軽く、1~3は中くらい、それ以上だと重い。ただしコア数との兼ね合いが大きい。)

uptimeで直近1分、5分、15分をみることができる他、topでみることもできる

CPU使用率

ロードアベレージが高い場合、CPU使用率が高い可能性があります。t

  1. topをCPU利用率でソート
  2. 利用率の高いものをpsコマンドで状態を確認
  3. そのあと、straceやoprofileなどでさらに詳しい調査をすることが可能

メモリ使用率、ディスクI/O

CPU使用率が高くなく、Idle(待機まち)の率が高い場合、メモリ使用量、ディスクI/Oを疑う。

http://e-words.jp/w/%E3%82%B9%E3%83%AF%E3%83%83%E3%83%97.html

  1. topコマンドでMemとSwap使用率をみて、Swap使用率が相対的に高い場合、スワップを疑う。
  2. topでメモリ使用率でソート
  3. 利用率の高いものをpsでコマンド状態で確認
  4. スワップが発生している場合プログラムで改善し、無理なものはメモリの増設で対応する
  5. スワップが発生していない場合はキャッシュに必要なメモリが不足。データの分散やキャッシュサーバーの導入を検討

スワップ・・メモリが不足した場合、現在使用されていないプロセスを一時的にハードディスクに書き込む機能の1つ。ハードディスクに書き込むことをスワップアウト、メモリにデータを戻すことをスワップインとよび、一般的にこの使用率が高い場合、メモリ不足が疑われる。

ネットワーク関連

ロードアベレージが低いのに、ネットワークに問題があり、遅いことも考えられる。netstatなどでTCPコネクション数を調べる

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

シェルスクリプトでのsshログインとメール送信

久々にシェルスクリプトをやったんでその復習を。 応用範囲は結構広そうです。 Contents1 ファイルの読みこみ方2 関数の定義、使い方3 SSHログイン4 ssh鍵認証つきのログイン5 メール送信 …

no image

SSLに関して(主にオレオレSSLの作成方法など)

Contents1 HTTPSとは1.1 概要説明1.2 SSL費用の違いについて2 オレオレSSL2.1 秘密鍵作成コマンド2.2 公開鍵作成コマンド2.3 オレオレSSL証明書の作成3 webサー …

no image

vagrant 複数ホストを起動

ansbileを使おうと思ったんですが、ansibleはホスト1→ホスト2という構成になっているため、2台のホストがないと使えません。 MACであればローカル環境からいけますし、Windowsでもcy …

no image

ネットワークコマンド

ネットワークのコマンドはping以外ほとんど知らないんですけど、それ以外に最近少し覚えたネットワークコマンドなどについて。 適切な使い方などはまだようわかっとらんです・・・ Contents1 net …

no image

Addtypeについて

htmlにはPHPを埋め込むことができますが、拡張子がhtmlの場合、そのままでは実行できません。 この場合、通常では拡張子を変えなければいけないところですが、apacheを使っている場合、設定ファイ …