Cpu-Usage

針對不同參數的 CPU/RAM 消耗對腳本性能進行基準測試

  • June 9, 2021

我有一個圖像處理 shell 腳本,可以提供不同的參數集,這些參數都為我產生有效的輸出。我正在嘗試辨識具有最低資源(CPU/RAM)使用率的參數集,因為該腳本將在雲上執行。有什麼工具可以用來做基準測試嗎?我正在尋找可以為我提供腳本使用的總 cpu 週期或我可以比較的任何其他相關數據/指標的東西。

作業系統:Ubuntu 20.04,外殼:BASH

我正在尋找的範例:

magical-benchmark-tool -c pdftoppm -png test.pdf test

輸出

time (seconds)   processor cycles   max memory used (MB)    mean memory used (MB)
--------------   ----------------   --------------------    --------------------
19               1253               250                     128

謝謝!

您沒有指定使用哪個 shell,所以我將假設 Bash。


對於 CPU 使用率,您可以使用strace.

strace -c script.sh

對於一個簡單的 Hello World 腳本

#!/bin/bash
echo "Hello World"

輸出

Hello World
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
17.70    0.000253          14        18           mmap
11.69    0.000167          20         8           openat
 9.59    0.000137           9        14           rt_sigaction
 7.35    0.000105          13         8           fstat
 6.30    0.000090          15         6           mprotect
 5.60    0.000080          10         8           close
 5.32    0.000076          12         6           read
 5.11    0.000073          14         5           stat
 4.90    0.000070          70         1           execve
 3.50    0.000050          10         5           rt_sigprocmask
 2.59    0.000037          37         1           write
 2.24    0.000032          10         3           lseek
 2.24    0.000032          10         3           brk
 2.10    0.000030          10         3         2 ioctl
 1.89    0.000027           9         3         1 fcntl
 1.40    0.000020          20         1           munmap
 1.40    0.000020          20         1         1 access
 1.33    0.000019           9         2           getpid
 1.26    0.000018           9         2           prlimit64
 0.77    0.000011          11         1           dup2
 0.70    0.000010          10         1           sysinfo
 0.70    0.000010          10         1           getppid
 0.70    0.000010          10         1           arch_prctl
 0.63    0.000009           9         1           uname
 0.63    0.000009           9         1           getuid
 0.63    0.000009           9         1           getgid
 0.63    0.000009           9         1           getpgrp
 0.56    0.000008           8         1           geteuid
 0.56    0.000008           8         1           getegid
------ ----------- ----------- --------- --------- ----------------
100.00    0.001429                   108         4 total

對於記憶體,您可以使用top.

執行時頂按o並鍵入 egCOMMAND=bash以顯示COMMAND列中等於的條目bash

引用自:https://serverfault.com/questions/1066053