基准资源使用

bench的Python项目详细描述


监控流程资源使用情况

工作台旨在成为具有以下功能的便捷工具:
-监控CPU时间(用户时间、系统时间、实时)
-监视内存使用情况(虚拟内存使用情况、常驻内存使用情况)
-输出到tsv(制表符分隔的文件)
-输出基准度量
-随着时间的推移可视化性能指标(内存消耗量)

示例

我们在下面展示了几个例子。请注意,所有输出都是 为演示而制表。

  • 例1:简单命令。
这将启动进程{em1}$sleep2秒。表格输出 下面是实际的命令: monitor.py sleep 2 2>&1 |column -t-s$'\t'.
如果您只运行monitor.py sleep 2,则将取消制表符 标准错误(stderr)中的输出。
$> monitor.py sleep 2
pid     ppid    utime  stime  rtime         rss     vms      maxRss  maxVms   avgRss    avgVms     cwd                                cmd
133692  133675  0.0    0.0    1.9368159771  774144  6066176  774144  6066176  774144.0  6066176.0  /home/zhanxw/mycode/bench/scripts  sleep 2
  • 示例2:采样间隔等于 0.1秒

本例将使用shell启动3个进程:sleep 2sleep 4seq 1000000。你可以看到板凳可以监视所有4个 一起处理。

$> monitor.py sh -c 'sleep 2 & sleep 4 & seq 1000000 >/dev/null & wait'
pid     ppid    utime  stime  rtime            rss     vms      maxRss  maxVms   avgRss    avgVms     cwd                                cmd
135004  134985  0.0    0.0    3.9532430172     798720  4558848  798720  4558848  798720.0  4558848.0  /home/zhanxw/mycode/bench/scripts  sh -c sleep 2 & sleep 4 & seq 10000000 >/dev/null & wait
135006  135004  0.0    0.0    3.95348381996    655360  6066176  655360  6066176  655360.0  6066176.0  /home/zhanxw/mycode/bench/scripts  sleep 4
135005  135004  0.0    0.0    1.83160495758    774144  6066176  774144  6066176  774144.0  6066176.0  /home/zhanxw/mycode/bench/scripts  sleep 2
135007  135004  0.05   0.0    0.0599648952484  720896  6090752  720896  6090752  720896.0  6090752.0  /home/zhanxw/mycode/bench/scripts  seq 10000000
  • 示例3:生成外部文件的性能指标

这里我们用了一个小程序,burncpu。它将保持CPU运行 几秒钟。它的源代码在src/下。

选项-t将启用输出跟踪。也就是说 时间停止,每个进程的性能指标将输出到 标准错误以及一个单独的逗号分隔文件, $prefix.trace.csv

选项-g将生成一个包含多个 子图,包括每个进程的计时、内存消耗 对于每个进程,以及运行的进程的内存消耗 时间。

选项-o将指定输出前缀。默认值将 是bench,意思是,您将得到bench.csv。你可以覆盖 使用-o选项获得此值。

$> monitor.py -t -g -o burnCpu ./burnCpu
pid     ppid    utime  stime  rtime            rss      vms       cwd                                cmd
135471  135454  0.04   0.0    0.0441780090332  1449984  12984320  /home/zhanxw/mycode/bench/scripts  ../src/burnCpu
135471  135454  0.2    0.0    0.205282926559   1449984  12984320  /home/zhanxw/mycode/bench/scripts  ../src/burnCpu
135471  135454  0.38   0.0    0.381079912186   1449984  12984320  /home/zhanxw/mycode/bench/scripts  ../src/burnCpu
...

附加结果存储在中的burncpu.csvburncpu.trace.csv中 逗号分隔格式(CSV)。

burncpu.csv文件内容

pid,ppid,utime,stime,rtime,rss,vms,maxRss,maxVms,avgRss,avgVms,cwd,cmd
144433,144416,5.4,0.0,5.40555810928,1404928,12984320,1404928,12984320,1404928.0,12984320.0,/home/zhanxw/mycode/bench/scripts,../src/burnCpu

burncpu.trace.csv文件内容

pid,ppid,utime,stime,rtime,rss,vms,cwd,cmd
144433,144416,0.03,0.0,0.0423669815063,1404928,12984320,/home/zhanxw/mycode/bench/scripts,../src/burnCpu
144433,144416,0.19,0.0,0.20046210289,1404928,12984320,/home/zhanxw/mycode/bench/scripts,../src/burnCpu
144433,144416,0.36,0.0,0.373480081558,1404928,12984320,/home/zhanxw/mycode/bench/scripts,../src/burnCpu
...

当指定-goptioned时,bench将生成几个 文件burncpu.trace.csv中的性能度量:

image

注释

要对复杂命令或命令组合进行基准测试,可以 使用shell(sh或bash)。例如,可以使用“sh-c”命令arg1 arg2…“(请参阅示例2)。
工作台需要psutil到 收集基本性能指标,然后
需要numpypandas用于统计计算。
在这个版本中,我们使用了psutil 3.1.1、numpy 1.8.2、pandas 0.16.2和 matplotlib 1.4.3.

联系人

有关问题或建议,请访问bench github repo:
或发送电子邮件至:
詹晓薇

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常