用gnuplot给采集数据绘图

    最近作了KVM&SPICE的性能测试,对大量的性能参数进行采集,主要用到vmstat 和nload工具来统计,监控脚本以下:bash

dr=/tmp/test/test_1  && type=click && mkdir -p ${dr} && echo "vmstat 1 300 > 工具

${dr}/vmstat_${type}.txt && " |/bin/bash  && echo "nload  -t 1000 -U k -u k > ${dr}/nload_${type}.txt &" |/bin/bash  && sleep 300 && ps aux |grep nload |awk '{print $2}' | xargs  kill -9  || echo "Done"  性能

其中: 测试

dr=/tmp/test/test_1  表示监控数据文件放置的文件夹spa

type=click 表示点击操做orm

echo "vmstat 1 300 > ${dr}/vmstat_${type}.txt & " |/bin/bash 每一秒监控一次,一共监控300秒,(来自于最大时间窗口5分钟)并放置在后台执行。进程

echo "nload  -t 1000 -U k -u k > ${dr}/nload_${type}.txt &" |/bin/bash 表示间隔1000毫秒采集一次数据, -U k -u k 表示单位为kBit/s 图片

sleep 300 && ps aux |grep nload |awk '{print $2}' | xargs  kill -9   这个表示300秒事后,Killnload进程。ip

 

产生大量数据,要对这些数据绘图仍是要有些技巧。terminal

    一幅图上画多条曲线,能够用plot 后面跟几个曲线定义,也能够用replot,可是replot并不能读取原来已经绘制的图片,因此还须要从新set output '${path}' 这样连同前面的曲线和replot的曲线会绘制到后面的文件中。这点要切记。

    多幅图画在同一屏上,主要利用了multiplot模式来绘制,可是对于几个大量数据拼成一屏幕,仍是要有点技巧的。同时要处理坐标系统,X,Y轴。

分享两个脚本,能够在上面作些修改,描出来的图更显专业。

--------------------------------------------------------------------------------------------------------------------------

root@kvm gnuplot_script]# cat test_1_click_load.plot 

set terminal png

set output '/tmp/test/test_1/deal_with/images/test_1_click_load.png'

set size 1,1

set origin 0,0 

set multiplot

set size 1,0.5

set origin 0,0.5

set yrange[0:5]

set title 'Load'

set xlabel 'Time(second)'

set ylabel 'Load number'

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:2 with linespoints

set size 1,0.5

set origin 0,0

set yrange[0:5]

set title 'Blocked Processes'

set xlabel 'Time(second)'

set ylabel 'Bolcked Processes Number'

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:3 with linespoints 

unset multiplot

reset

--------------------------------------------------------------------------------------------------------------------------

set terminal png

set size 1,1

set origin 0,0

set output '/tmp/test/test_1/deal_with/images/test_1_click_io.png'

set multiplot

set size 0.5,0.5

set origin 0,0.5

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:8  with lines title 'swap_in'

set size 0.5,0.5

set origin 0,0

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:9 with lines title 'swap_out'

set size 0.5,0.5

set origin 0.5,0.5

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:10 with lines  title 'block_in'

set size 0.5,0.5

set origin 0.5,0

plot '/tmp/test/test_1/deal_with/vmstat_click.txt' using 1:11 with lines title 'block_out'

unset multiplot

reset

相关文章
相关标签/搜索