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

php-fpmトラブル(nginxが競合?)

php-fpmが急に停止になるトラブルがあったので、ちょっとメモ。 php-fpmを再起動しようとしても下記のようなエラーが・・・

p …

no image

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

form以外でのPOST送信

前回の記事に引き続きですが、APIを叩く側はformでデータを送るのではなく、コードの中にPOSTする処理を書きます。 選択肢としては curlコマンドを使う file_get_contentsを使う …

no image

clamAV

ウイルスソフトclamAVのインストールと使用法について Contents1 インストール1.1 CentOS61.2 CentOS72 スキャン実行の設定に関して インストール CentOS6 [c …

no image

ansible localでの使用,sudoに関して

最近継続的に調査しているansibleについて Contents1 local2 sudo local ansibleは通常別のホストに対して行うものですが、 hostsファイルのIPを変更し、以下の …