質問

APIのパフォーマンスを測定するC ++アプリケーションを実行するシェルスクリプトを実行しています。 APIのレイテンシ(特定のパラメーターセットの値を返すのにかかる時間)をキャプチャできますが、CPUとメモリ使用量も5〜10秒間隔でキャプチャしたいと思います。

同じスクリプト内でシステムのパフォーマンスにあまり影響を与えずにこれを行う方法はありますか?実行しているスクリプトの外部で(独立して)実行できる多くの例を見つけました。同じスクリプト内でできることではありません。

役に立ちましたか?

解決

time 」コマンドを使用することをお勧めしますまた、 ' vmstat 'コマンド。 1つ目は実行可能実行のCPU使用率を、2つ目はシステムのCPU /メモリ/ IOの定期的(1秒に1回)のダンプを提供します。

例:

time dd if=/dev/zero bs=1K of=/dev/null count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 0.738194 seconds, 1.4 GB/s
0.218u 0.519s 0:00.73 98.6%     0+0k 0+0io 0pf+0w <== that's time result

他のヒント

Linuxボックス全体のCPUとメモリの使用率を動的にキャプチャする場合は、次のコマンドも役立ちます。

CPU

vmstat -n 15 10| awk '{now=strftime("%Y-%m-%d %T "); print now 
free -m -s 10 10 | awk '{now=strftime("%Y-%m-%d %T "); print now <*>}'> DataDumpMemoryfile.csv &
}'> CPUDataDump.csv &

vmstat はCPUカウンターの収集に使用されます

遅延値の

-n 、この場合は15です。つまり、15秒ごとに統計が収集されます。

then 10 は間隔の数です。この例では10回の反復があります

awk '{now = strftime(&quot;%Y-%m-%d%T&quot;); print now $ 0} 'これにより、各反復のタイムスタンプがダンプされます

最後に、継続のための&amp; のダンプファイル

メモリ

<*>

free はmem statsコレクション用です

-m これはmem単位用です(バイトには -b 、キロバイトには -k - g ギガバイトの場合)

then 10 は間隔の数です(この例では10回の反復があります)

awk '{now = strftime(&quot;%Y-%m-%d%T&quot;); print now $ 0} 'これにより、各反復のタイムスタンプがダンプされます

最後に、継続のためのダンプ&amp;

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top