実務で頻出する「並列実行・パフォーマンス」関連の用語を、一言定義+最小実例でサッと確認。
プロセスやジョブを並列に動かす方法、パフォーマンス計測・チューニングの基礎を整理します。
このページで達成できること
- 並列処理の基本手法(& / xargs -P / GNU parallel)を理解
- プロセス・CPU負荷の測定方法を習得
- ベンチマークやリソース監視の基礎を押さえる
- 実務での落とし穴(無制限並列・I/O競合・スロット不足)を回避
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド/例 |
|---|---|---|
| バックグラウンド実行 (&) | コマンドを並列で動かす | cmd & |
| wait | バックグラウンド全ジョブの終了待機 | wait |
| xargs -P | 複数ジョブを並列実行 | xargs -P 4 |
| GNU parallel | 高機能な並列実行ツール | parallel ::: |
| time | 実行時間を測定 | time ls |
| /usr/bin/time | CPU/メモリ使用も測定 | /usr/bin/time -v |
| top / htop | プロセス負荷確認 | top |
| uptime | 負荷平均確認 | uptime |
| vmstat | CPU/メモリ/IO状況 | vmstat 1 |
| iostat | ディスクI/O性能測定 | iostat -x 1 |
| perf | Linuxパフォーマンス計測 | perf stat ls |
用語解説(繰り返しブロック)
バックグラウンド実行 (&)
とは:コマンド末尾に & を付けて、並列で動作させる。
最小実例
sleep 5 &
sleep 3 &
wait
関連:ジョブ制御 / wait
落とし穴:大量に起動すると CPU・メモリを圧迫。
wait
とは:バックグラウンドで動作中の全ジョブの終了を待つ。
最小実例
sleep 5 & sleep 3 & wait
関連:ジョブ制御 / &
落とし穴:指定PIDを渡さないと全ジョブを待つ。
xargs -P
とは:xargs で並列数を指定して複数のコマンドを並列実行。
最小実例
cat list.txt | xargs -P 4 -n 1 curl -O
関連:parallel / バックグラウンド実行
落とし穴:並列数を大きくしすぎるとサーバーが過負荷に。
GNU parallel
とは:高機能な並列実行ツール。リスト入力やプレースホルダ置換に対応。
最小実例
parallel echo ::: a b c
関連:xargs -P / HPC
落とし穴:標準で入っていない場合が多い。
time
とは:コマンドの実行時間を計測するシェル組み込みコマンド。
最小実例
time ls
関連:/usr/bin/time / ベンチマーク
落とし穴:組み込みの time と外部コマンドで機能が異なる。
/usr/bin/time
とは:より詳細にリソース使用量を測定できる time コマンド。
最小実例
/usr/bin/time -v sleep 1
関連:top / vmstat
落とし穴:シェルの組み込み time と混同しない。
top / htop
とは:CPU・メモリ・プロセスの使用状況をリアルタイム監視。
最小実例
top
関連:uptime / vmstat
落とし穴:瞬間的なピークは見逃す可能性あり。
uptime
とは:システム稼働時間とロードアベレージを表示。
最小実例
uptime
関連:top / vmstat
落とし穴:ロードアベレージはCPU数を考慮して解釈する。
vmstat
とは:CPU・メモリ・I/Oの統計を定期表示するツール。
最小実例
vmstat 1
関連:iostat / sar
落とし穴:単位や意味を誤解しやすい → manページ必読。
iostat
とは:ディスクI/Oのスループットやレイテンシを表示。
最小実例
iostat -x 1
関連:vmstat / perf
落とし穴:-x で拡張表示しないと十分な情報が出ない。
perf
とは:Linuxカーネル標準のパフォーマンス解析ツール。
最小実例
perf stat ls
関連:strace / ベンチマーク
落とし穴:高負荷の解析は本番環境で避ける。
運用の現場Tips
- まずはバックグラウンド実行とwaitで並列:軽量タスクなら十分
- 大量処理はxargs -Pやparallelで制御 → 負荷調整が鍵
- 性能調査は多角的に:CPU=top/vmstat、I/O=iostat、詳細=perf
- ロードアベレージ解釈に注意:CPU数で割って「どれくらい詰まっているか」を見る
関連リンク(学習ハブ内)
- プロセス:https://bashdo.com/learn/glossary/process
- プロセス優先度・cgroups:https://bashdo.com/learn/glossary/cgroups
- ジョブ制御:https://bashdo.com/learn/glossary/jobs
- 監視・ログ・トレース:https://bashdo.com/learn/glossary/logs
- タスク自動化(cronなど):https://bashdo.com/learn/glossary/cron

