web-dev-qa-db-ja.com

システムが遅すぎる

Linuxシステムの応答が非常に遅いので、コマンドの結果が得られるまで待つ必要があります。

彼の行動の問題を知るためにどのように調査できますか?

2
Bingo

Linuxでのパフォーマンスの問題のトラブルシューティングは簡単ではなく、すべての可能性を網羅するわけではありません。ただし、ほとんどの問題は通常3つのカテゴリに分類されます:高いCPU使用率高いメモリ使用率またはI/O使用量。注:これらはすべて相互接続されています。

最初のタイプ:top -b -n 1 | head -15

これにより、次の出力が得られます。

top - 15:32:09 up 19 days,  2:32,  2 users,  load average: 0.61, 0.46, 0.42
Tasks: 208 total,   1 running, 207 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.9%us,  3.6%sy,  0.0%ni, 95.2%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16430432k total, 15188864k used,  1241568k free,   304624k buffers
Swap:  2097148k total,      112k used,  2097036k free,  7342636k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16106 user   20   0 4070m 2.1g 2.1g S   30 13.5   4678:57 VirtualBox
26070 user  20   0 6113m 749m 697m S    6  4.7 628:55.93 VirtualBox
14863 user   9 -11  272m 3192 1804 S    2  0.0   5:57.19 pulseaudio
    1 root      20   0 24724 2548 1276 S    0  0.0   0:05.32 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.15 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:33.45 ksoftirqd/0
    6 root      RT   0     0    0    0 S    0  0.0   0:03.74 migration/0
    7 root      RT   0     0    0    0 S    0  0.0   0:02.51 watchdog/0

まず、負荷平均を見てください。 ここ をチェックして、それが何を意味するのかを理解してください(この概念を理解することは非常に重要です)。

重要:以下では、シングルコア(1 CPU、デュアルコアなしなど)があると想定しています。

5分後に負荷平均が1未満の場合、CPU負荷は問題ありません。現時点では、それが何であるかはわかりません。問題がなかったかのようにトラブルシューティングを続けます。

5分後に負荷平均が1を超える場合は、CPU負荷が高くなっています。 CPU負荷が高い理由を理解するには、topの出力で次のエントリを確認してください。

上記の出力では、プロセスのリストを確認できます。列%CPUを見て、100%を使用しているプロセスが表示されるかどうかを確認します。それらがCPUを100%使用しているという事実は、問題である場合とそうでない場合がありますが、テストとして、それらを停止することをお勧めします。

一番上のプロセスを停止するには、「k」を押して、指定されたプロセスのPIDの下にある値を入力します。

重要:プロセスの名前を書き留めます。誰かを殺す前に、彼らが何をしているのかを理解してみてください(グーグルで検索してください)。通常のユーザーとして所有しているプロセス(USER列で確認)のみを停止できます(それ以外の場合はrootである必要がありますが、強制終了するものには注意してください。 %usおよび%syの値usはユーザーを表し、syはシステムを表します。基本的に、これらはそれぞれユーザースペースとカーネルスペースでのCPU使用率を表します。

システムが高速化した場合、問題を引き起こしているのはおそらくあなたが殺したプロセスです。そうでない場合は、続行します

%waの値を読み取ります。高いですか? (50%以上)、それが高い場合は、ディスクへの入力/出力(I/O)が高く、CPUが待機していることを意味します。コマンドiostatを使用して、どのドライブが遅いかを判別します。

Memの使用状況を確認することもできます。

コマンドラインにfree -mと入力します。次のようなものが表示されます。

                 total       used       free     shared    buffers     cached
Mem:         16045      14835       1209          0        298       7172
-/+ buffers/cache:       7365       8679
Swap:         2047          0       2047

使用中のバッファ/キャッシュの値を確認してください。 memを使いすぎている場合は、合計から値を小さくする必要があります。

スワップで使用されている値も確認してください(スワップパーティションがある場合)。それが高い場合、つまり合計で見られる最大値(スワップの場合)に近い場合は、システムが大量にスワップしていることを意味し、ディスクにページングしていることを意味します(RAMよりもはるかに遅い)。

繰り返しますが、これでは問題が解決しない場合がありますが、良いスタートです。

4
UnX