在执行命令行时记录系统负载并以图形方式显示

oscillo的Python项目详细描述


oscillo

记录命令执行过程中对系统产生的负载,以图片的形式展现出来

Record the system load at the execution of the command line and display it graphically

demo

demo

安装方式 / Installation

  • Install from pypi
pip install oscillo
  • Install from local
python setup.py install

使用方式 / Usage

通过命令行参数启动 / Boot start by command line parameter

命令行参数的格式是 "<name>: <command [args]>"

  • name: 命令行的别名/id (任意字符串),当--commands/-c参数指定多个命令时,该值将作为命令的唯一标识,不可重复
  • command [args]: 需要测试资源消耗的命令,比如 gzip file.ext

示例如下,监控gzip压缩一个文件时耗费的cpu、memory和时间:

oscillo -c 'gzip: gzip file.ext' -o output-file
  • -c 代表将执行一个linux cmd 命令。参数后面可以跟以空格隔开的多个参数

  • -o 结果输出文件:

命令执行完成后,会在当前目录下生成一个<output-file>.log 文件。文本结构是json 格式. 数据结构如下

{
  "test": {
            "elapsed": 0.022143125534057617,  //总执行时间
            "cpu": [], 
            "memory": []
          }
}

同时会产生一个<output-file>.png文件,<output-file>-o参数指定,默认值为metrix

-c/--commands 可以接受多个参数,以空格隔开,任务会线性执行。使用场景:对比多个命令对资源的消耗

e.g.: 对比gziptar命令对资源的消耗:

oscillo -c 't1: gzip file.ext''t2: tar czf target.tar.gz file1' -o output

在控制台上,oscillo会打印summary信息,其中包含?命令的耗时、最大内存使用、最大cpu使用、退出码等,效果如下:

demo

demo

通过配置文件启动 / Boot start by config file

当命令很长或者很多时,可以使用配置文件启动 Whe the commands is too many, you can boot start by config file

oscillo --config </path/to/config-file.yml> [-g]

配置文件模板 / Config file

The command line in commands will be executed in order

# Demo
commands:
  -
    name: gzip
    cmd: gzip big-file

  -
    name: tar
    cmd: tar -zcf tmp.tar.gz big-file

output: gzip-and-tar-gz

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

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?