🐧 Linux 総合学習プラットフォーム

プロセス監視/障害対応の用語集(20語)

プロセス監視/障害対応に関する Linux 用語を、読み・意味・補足つきでまとめました。

%util(デバイス使用率)ゆーてぃる
iostatが示す、そのディスクが処理でふさがっていた時間の割合。
iostat -x の %util 列が示す値で、対象デバイスがI/O処理でどれだけの時間占有されていたかを表す割合。100%に近いほどそのディスクは休みなく稼働しており、性能の天井に近いサインになる。ただし並列処理が可能なSSDなどでは100%未満でも実質的に限界に近いことがあるため、普段の値との比較で判断するのが基本。
available(実質空きメモリ)あべいらぶる
buff/cacheの解放分も含めて新規プロセスがすぐ使える見込みのメモリ量。
free -h の available 列が示す値で、カーネルが「buff/cacheを解放すればこれだけ使える」と見積もった実質的な空きメモリ量。free 列(純粋な未使用分)だけを見て判断すると、キャッシュが厚いだけの健全な状態を「メモリ不足」と誤読しやすい。メモリ逼迫の有無を判断する際はfreeではなくavailableを見るのが定石。
await(I/O待ち時間)あうぇいと
iostatが示す、I/O要求の発行から完了までにかかった平均時間(ミリ秒)。
iostat -x の await 列が示す値で、1回のI/O要求が発行されてから完了として返ってくるまでの平均待ち時間をミリ秒単位で表す。この値が普段より大きく伸びていれば、ディスク側の処理が追いつかず要求が滞留していることを意味する。%utilとあわせて見ることで、ディスクI/Oが詰まっているかどうかを具体的な数値で判断できる。
cgroup(コントロールグループ)しーぐるーぷ
プロセスのグループごとにCPU・メモリなどの使用上限を割り当てるカーネル機能。
Control Groupsの略。プロセスをグループ化し、グループ単位でCPU時間・メモリ量・I/O帯域などのリソース使用に上限や優先度を設定できるLinuxカーネルの機能。あるアプリがメモリを使い切っても他のプロセスへの影響を制限でき、暴走した1プロセスが全体のOOM Killer発動を招く事態を防ぐのに使われる。コンテナ技術(Docker等)の隔離機構の基盤の1つでもある。
emergency/rescueターゲットえまーじぇんしーれすきゅーたーげっと
通常起動に失敗したとき入る、最小限の機能だけで立ち上がる緊急モード。
systemdが提供する特殊な起動モード。rescueターゲットはシングルユーザー相当の最低限のサービスで起動し、emergencyターゲットはさらに絞り込まれルートファイルシステムの再マウントも行わない、より原始的な状態で起動する。fstabの誤りなど通常起動を妨げる問題が起きたとき、システムが自動的に落ちてくることがあり、ここから調査・修復の作業を始められる。
I/O待ちあいおーまち
ディスクなどの入出力完了を待ってCPUが空いている状態。
CPUは空いているのに、ディスクやネットワークの入出力が終わるのを待っている状態。vmstat の wa 列や top の %wa で確認でき、この値が高ければCPU不足ではなくストレージ性能がボトルネックになっている。CPU使用率が低いのに体感が遅いときは、まずI/O待ちを疑う。
nofailオプションのーふぇいるおぷしょん
fstabの該当行で、マウント失敗時に起動処理全体を止めないようにする指定。
/etc/fstab の各行のオプション欄に指定できる項目の1つ。通常、必須と扱われるマウントが失敗すると起動処理はそこで足止めされるが、nofail を付けておくとそのマウントに失敗しても無視して起動を先に進める。外付けディスクやネットワーク越しの追加パーティションなど、必須ではないマウント対象に付けておくと、それらの不調がシステム全体の起動不能に波及するのを防げる。
OOM(メモリ不足)おーおーえむ
メモリ枯渇時にカーネルがプロセスを強制終了する仕組み(OOM Killer)。
Out Of Memory の略。物理メモリもスワップも使い切ると、カーネルのOOM Killerが優先度の低いプロセスを選んで強制終了し、システム全体のダウンを防ぐ。突然プロセスが落ちた場合は dmesg や journalctl に「Out of memory: Killed process ...」というログが残っていないか確認する。
sar(システム活動記録)えすえーあーる
CPU・メモリ・I/Oなどの活動状況を記録・報告するsysstat付属のツール。
System Activity Reporterの略で、sysstatパッケージに含まれる。CPU使用率・メモリ状況・ディスクI/O・ネットワークなど多様な指標を、その場で表示することも、cronによる定期収集を通じて日々のデータとして蓄積することもできる。過去のデータを呼び出して振り返れる点がvmstatとの大きな違いで、ベースラインの記録・比較に向く。
ジャーナル(ログ)じゃーなる
systemdが一元管理するログ。journalctl で横断的に読める。
systemd の journald が収集・保管するログの仕組み。各サービスや起動メッセージを一元的に記録し、journalctl で検索・閲覧する。-u でサービス単位、-b で起動単位、-f で追尾、--since で期間指定ができ、テキストの個別ログを開いて回るより一貫した手順で原因を追える。
スワップすわっぷ
物理メモリが足りないとき一部をディスクへ退避する領域。
物理メモリ(RAM)が不足したとき、当面使わないメモリの内容をディスク上のスワップ領域へ一時退避する仕組み。空きメモリを確保できる一方、ディスクはRAMより桁違いに遅いため、スワップの読み書き(vmstat の si/so)が頻発するとシステムが極端に重くなる。free でスワップ使用量を確認できる。
ゾンビプロセスぞんびぷろせす
終了したのに親が後始末していないため一覧に残るプロセス。
子プロセスが終了すると終了状態が一時的に残り、親プロセスがそれを回収(wait)すると消える。親が回収を怠るとこの状態が残り続け、ps では STAT が Z と表示される。ゾンビ自体はCPUやメモリをほぼ消費しないが、大量に溜まるとプロセス番号を圧迫する。根本対処は原因となっている親プロセスの修正・再起動。
ファイルディスクリプタふぁいるでぃすくりぷた
プロセスが開いているファイルやソケットを指す番号。上限がある。
プロセスが開いているファイル・ソケット・パイプなどをOSが管理するための番号。Linuxではネットワーク接続もファイルディスクリプタとして扱うため lsof でまとめて確認できる。プロセスごと・システム全体に上限があり、上限に達すると「Too many open files」エラーが発生する。ulimit で確認・調整できる。
プロセスぷろせす
実行中のプログラム1つ1つの単位。
OSはプロセス単位でCPUやメモリを割り当てる。各プロセスにPIDが付く。
ベースライン(平常値)べーすらいん
障害が起きていない平常時の、負荷・メモリ・I/Oなどの標準的な数値。
システムが正常に稼働している状態での、ロードアベレージ・メモリ使用量・I/O待ち時間などの標準的な値の範囲。数値そのものには絶対的な「高い・低い」の基準がなく、平常時との比較によって初めて異常かどうかを判断できる。vmstatやsarで定期的に記録し、メモとして残しておくことで、障害発生時の切り分け速度を大きく高められる。
ポートぽーと
通信の宛先を区別する番号。サービスは特定ポートで待ち受ける。
1台のホスト上で複数の通信を区別するための番号。サーバ側のサービスは決まったポート(例: HTTPは80、SSHは22)で接続を待ち受ける(LISTEN)。「つながらない」障害では、相手のサービスが目的のポートで待ち受けているか、途中のファイアウォールで遮断されていないかを ss や lsof で切り分ける。
ボトルネックぼとるねっく
全体の性能を律速している最も詰まっている箇所。
システム全体の処理速度を決めてしまう、最も余裕のない部分のこと。CPU・メモリ・ディスクI/O・ネットワークのいずれかが上限に張り付くと、他に余裕があっても全体が遅くなる。障害対応では、どの資源がボトルネックかを top・vmstat・iostat などで特定してから個別対処に進むのが効率的。
ロードアベレージろーどあべれーじ
実行待ちを含む処理の混み具合を示す数値。1・5・15分平均で表示される。
システムの平均負荷を表す指標で、実行中およびCPU・I/Oの実行待ちにあるプロセスの数を平均したもの。uptime や top で「load average: 0.42, 0.55, 0.61」のように1分・5分・15分の値が出る。目安としてCPUのコア数を超えて高止まりしていれば処理が詰まっているサインで、3つの値を比べると負荷が上昇中か沈静化中かもわかる。
再起動ループさいきどうるーぷ
原因が解消しないまま自動再起動を繰り返し続けるサービスの状態。
systemdのユニット設定にあるRestart=(on-failure等)により、サービスが異常終了するたびに自動で再起動が試みられる。根本原因(設定ミスやポート衝突など)が解消していないと、起動しては即座に失敗する動作を延々と繰り返す状態に陥る。ログが流れ続けて読みにくくなるため、調査時はいったんsystemctl stopで止めてから原因を追うのが定石。
終了コード(exit code)しゅうりょうこーど
プロセスが終了したときにOSへ返す数値。0は正常、それ以外は異常終了を示す。
プロセスが終了する際にOSへ返す小さな整数値。慣習として0は正常終了、0以外の値は何らかの異常終了を意味する。systemdのログにも記録され、サービスが失敗した理由を数値で読み解く手がかりになる。具体的な数値の意味はプログラムやシェルの実装によって異なるため、値そのものより「0か非0か」をまず確認するのが基本。

▶ 学習アプリで「引く」を使う