現場でサーバ運用を行うにあたり、どのLinuxコマンドを実行するかが曖昧だったので自分用に簡単にまとめました。
topコマンド
topコマンドで現在動作しているプロセスを一覧で確認できます。
1行目
稼働時間やロードアベレージなどの情報が表示されます。
項目 | 説明 |
---|---|
02:23:54 | 現在時刻 |
up 3 min | 稼働時間 |
1 user | ログインユーザ数 |
load average: 0.36, 0.65, 0.32 | 実行待ちプロセス数の平均値(過去15分, 5分, 1分) |
2行目
実行中のタスク(=プロセス)状態が表示されます。
ゾンビ状態のタスクとは、処理が完了しているのにメモリ上に存在しているタスクのことをいいます。
ゾンビ状態を解くためには、ユーザがkillコマンドを発行する必要があります。
項目 | 説明 |
---|---|
total | タスクの合計 |
running | 実行中のタスク数 |
sleeping | 待機中のタスク数 |
stopped | 停止中のタスク数 |
zombie | ゾンビ状態のタスク数 |
3行目
CPUとタスクの情報です。
CPU使用率を判断するときはここをみます。
項目 | 説明 |
---|---|
us | ユーザプロセスの使用時間 |
sy | システムプロセスの使用時間 |
ni | 優先度付プロセスの使用時間 |
id | アイドル状態の時間 |
wa | I/O待ちプロセスの使用時間 |
hi | ハードウェア割込の使用時間 |
si | ソフトウェア割込の使用時間 |
st | 仮想マシンのリソース割当待ち時間 |
4行目
メモリの使用状況です。
バッファとキャッシュの違いは以下になります。
- バッファ: もう一度アクセスされる可能性が高いデータが保存される
- キャッシュ: 直近でアクセスのあったデータが保存される
5行目
スワップ領域(ハードドライブ上のメモリ領域)の使用状況です。
freeコマンド
freeコマンドを実行すると、topコマンドの実行結果の4, 5行目の詳細を確認することができます。
-m
オプションでメガバイト表示になります。
psコマンド
プロセスの状態を確認し、サーバにどのような処理が負荷をかけているのかをみることができます。
-aux
-ef
オプションとよく一緒に使われます。
これらのオプションの実行結果は大体同じです。
オプション | 表示内容 |
---|---|
a | 端末操作のプロセス |
u | CPUやメモリの使用率など |
x | 端末操作以外のプロセス |
項目 | 説明 |
---|---|
USER | 実行ユーザ |
PID | プロセス番号 |
%CPU | プロセスのCPU使用率 |
%MEM | プロセスのメモリ使用率 |
VSZ | プロセスが確保した仮想メモリ領域のサイズ |
RSS | 物理メモリ領域のサイズ |
TTY | 標準入出力となっている端末 |
STAT | プロセスの状態表示 |
START | プロセスの開始時刻 |
TIME | CPUの累積使用時間 |
COMMAND | 実行中のプロセス |
killコマンド
ソンビ状態のプロセスなどを強制終了させることができます。
$ kill [プロセスID]
強制終了の他にも、さまざまなシグナルを送ってプロセスの挙動を変えることができます。
例えば、kill -1 [プロセスID]
を実行すると、プロセスにHUPというシグナルが送られます。
jobsコマンド
実行中のジョブを表示することができます。
$ jobs
ちなみに、シェルから見たときの処理の単位をジョブ、カーネルから見たときの処理の単位がプロセスです。
シェルのコマンドラインに入力した1行が1つのジョブになります。
また、bg
でジョブをバックグラウンドへ移行したり、fg
でフォアグラウンドへ移行することもできます。
$ bg [ジョブ番号]
$ fg [ジョブ番号]
参考資料