1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxでアプリの最大スループットを机上計算する

1
Posted at

概要

  • 「そのアプリ、スループットどのぐらいまで出るの?」に回答するための、Linuxの場合で簡単机上計算するための備忘

CPU使用時間の計測

まず、アプリの処理に要するCPU使用時間を計測します

CPU使用時間計測の手順

  1. 測定するアプリケーション以外の他は極力アイドル状態にします
  2. 1回目のcat /proc/statコマンドを実行します
  3. 机上計算したい処理を10回実行します
  4. 2回目のcat /proc/statコマンドを実行します
  5. 2回のcat /proc/statコマンド結果の差分を計算します

実行例

1回目のcat /proc/stat
cpu  43859 2 5688 773094 596 0 659 0 0 0
cpu0 23500 1 2950 384562 323 0 396 0 0 0
cpu1 20358 0 2737 388532 272 0 262 0 0 0
intr 1118404 0 26666 249169 0 0 0 802 0 0 0 0 622784 0 0 52765 0 0 44 165988 186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 1124457
btime 1777159968
processes 22445
procs_running 2
procs_blocked 0
softirq 632320 22 80399 10 165600 21 0 324 165768 0 220176
2回目のcat /proc/stat
cpu  43871 2 5747 775200 596 0 660 0 0 0
cpu0 23503 1 2962 385630 323 0 396 0 0 0
cpu1 20367 0 2785 389570 272 0 263 0 0 0
intr 1124050 0 26672 253145 0 0 0 803 0 0 0 0 623725 0 0 52765 0 0 44 166710 186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 1132807
btime 1777159968
processes 22448
procs_running 2
procs_blocked 0
softirq 633664 22 80576 10 166322 21 0 324 166177 0 220212

上記の例で、cpuで始まる行はCPU全体の使用時間を示し、cpu0またはcpu1で始まる行はコア単位での使用時間を示しています
今回はCPU全体の使用時間を使うので、cpuで始まる行のみを計算に使います

1回目のcpu行
cpu  43859 2 5688 773094 596 0 659 0 0 0
2回目のcpu行
cpu  43871 2 5747 775200 596 0 660 0 0 0

/proc/statの意味を調べるには、man proc_stat(5)を参照するとよいでしょう

それを踏まえて1回目と2回目の差分を計算します

user nice system idle iowait irq softirq steal guest guest_nice
1回目 cpu 43859 2 5688 773094 596 0 659 0 0 0
2回目 cpu 43871 2 5747 775200 596 0 660 0 0 0
差分 cpu 12 0 59 2106 0 0 1 0 0 0

差分のうち、userとsystemを足し合わせると、この処理に要したCPU使用時間は71です
単位は100分の1秒なので、10回実行したときのCPU使用時間の合計は710ミリ秒です
したがって、この例の場合、ひとつの処理あたりのCPU使用時間は71ミリ秒となります

ピーク時のCPU使用率を想定する

ここではWebアプリを想定してピーク時の目標CPU使用率をざっくり70%とします

ピーク時の処理量の計算

ピーク時の処理量の計算式は以下のとおりです

ピーク時のCPU使用時間 / ひとつの処理あたりのCPU使用時間 = ピーク時の処理量

ピーク時CPU使用率70%の場合、2CPUではピーク時CPU使用時間が1秒あたり、1000 x 2 x 0.7 = 1400ミリ秒
ひとつの処理あたりCPU使用時間が71ミリ秒なので、ピーク時の処理量は、1400 / 71 = 約19.7

よって、ピーク時をCPU使用率70%とした場合の処理量は、19.7処理/秒ということになりました


end of main article

フッタ

仲間を募集しています!

ARIではエンジニア・ITコンサルタント・PM職全方位で仲間を募集しております。
カジュアル面談、随時受付中です!
ご興味ある方はこちらをご覧ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?