よく使うLinuxコマンド

top - サーバー管理でよく使うコマンド

CPUの利用状況、メモリの利用状況を簡単に表示します

■よく使う形(例)

※現在利用中のCPU、メモリ、プロセスを表示する。

# top

サーバーの負荷を簡単に把握するためのコマンド
5秒後(デフォルト)毎に、CPUの使用率、メモリ、スワップの使用量連続表示します。 また、プロセスは現在実行されているものから順に表示されます。

コマンドを終了する場合は、Ctrl+c

1行目は、システムが立ち上がってから何日経っているかや、現在のロードアベレージ(システム負荷)が表示されています。(この1行目は uptimeコマンドと同じデータを表示。)
注目すべきは、右端のload average項目。数字が3つ並んでいますが、左から過去1分間、5分間、15分間それぞれの実行待ちになっているプロセス数の平均を計算して表示しています。
よく、マルチプロセッサの環境で、CPU数のまでの数であれば、システム負荷は大丈夫なんてざっくりとした基準が言われていますが、load averageはどうも、CPUの待ちだけでなく、ディスクIOの負荷、ネットワークの負荷にも影響されているようなので、一概には「CPU数のまでの値」とは言えませんが、アベレージなので数値がCPU数の値まで恒常的に上がるのであれば、何らかの負荷低減策を考える必要があります。
ちなみに、大きなデータベースを使っていて、瞬間的にプロセス数を増やすと、簡単にCPU数を超えます。
でもこの場合、CPUよりもディスクIOがネックになることが多く、ファイルシステムの構成やデータベースの最適化を考えることになります。 いずれにしてもシステムの構成やどんなサービスを提供しているかによって、数値の基準が異なってくることは確かなようです。

2行目はプロセスの数と状態を示しています。
total、running、sleepingとありますが、注目するのはtotal項目。 日々プロセスの数をウォッチしていると、急にプロセス数が増えているとき、すぐに気がつくものです。プロセス数が普段より多いのは何らかのシステム負荷がかかっているのは明らかなので、psコマンドなどで、どんなプロセスがどれだけの時間実行されているのかをチェックすることになります。

3行目~5行目は、メモリの状態を表示していますが、5秒ごと(デフォルト)のある一瞬の利用率を表示するだけなので、この項目は、vmstatコマンドなどでウォッチした方がよいでしょう。
唯一見ていたほうがいいのは、Swap項目です。 通常はほとんど使われないのですが、Swap利用量も恒常的に上がるようですと、何らかのシステム見直しが必要になるからです。

7行目以降は、現在実行中のプロセスを上から順に表示しています。このシステムが、どのようなサービス(プロセス)によく使われているのかが分かります。
たまに、ゾンビプロセス(defunct)が見えたりすることがあるので、その数が多いようですとシステムには決してよくありませんので、ちゃんと消しておきましょう。

■主なオプション

オプション 機能説明
-d ディレイタイム(単位:秒)毎にて、情報取得する  debianではデフォルトは5秒
-n 繰り返し回数 「n 」の後に半角スペース数字をつける。  「n 1」と書けば、1回だけ実行
-b バッチモードで実行。上記の「n 1」オプションを組み合わせると、現時点の状態を1回だけ表示してコマンドを終了する