プロセスを増やすと
速くなる?

2026-11-05 朝会LT
山内・J・啓輔

今日の話

「並列にすれば速くなる」はどこまで本当か

  • 性能を見る2つの指標
  • 計測
  • 分かったこと

出典: 『[試して理解]Linuxのしくみ 増補改訂版』3章「性能について」

性能を見る2つの指標

2つの指標

指標 定義 良い向き
ターンアラウンドタイム 処理を頼んでから終わるまでの時間 短いほど良い
スループット 1秒あたりに終えられる処理の数 多いほど良い
  • スループット = 処理の数 ÷ 全部終わるまでの時間
  • ターンアラウンドタイムは、レイテンシ・レスポンスタイムとほぼ同じもの

計測

実験

CPU を使い続けるだけのプロセスを N 個同時に動かし、時間を測る

bash
./multiload.sh 3      # 全部 CPU 0 で動かす
./multiload.sh -m 3   # 複数の CPU に振り分ける
  • 1個あたりの仕事の量は同じ(空ループ1億回)
  • 環境: EC2 m8i.2xlarge(4コア8スレッド)

CPU 1つで増やすと

CPU 1つで増やすと

プロセス数 レイテンシ スループット
1 4.06秒 0.25個/秒
2 7.39秒 0.27個/秒
3 11.20秒 0.27個/秒
  • 時間はプロセス数に比例して延びる
  • スループットは変わらない

CPU が複数あると

CPU が複数あると

プロセス数 レイテンシ スループット
1 1.60秒 0.63個/秒
2 1.59秒 1.26個/秒
3 1.68秒 1.79個/秒
  • 時間はほとんど延びない
  • スループットは増やした分だけ上がる

では、どこまで上がる?

本の実験・論理 CPU 4つ(スループット 個/秒)
1個
0.42
2個
0.74
4個
1.23
6個
1.26
8個
1.29

CPU の数で頭打ち

プロセス数 レイテンシ スループット
1 2.4秒 0.42個/秒
4 3.1秒 1.23個/秒
8 6.0秒 1.29個/秒
  • 4個まで: スループットが上がる
  • 4個から先: レイテンシだけが延びる(8個で約2倍)

分かったこと

分かったこと

  1. 並列で速くなるのはCPU の数まで
  2. それを超えると、スループットは増えず、レイテンシだけが延びる
  3. 応答の速さが大事なシステム(Web など)は、CPU 使用率に余裕を残して運用する

おわり