cacti、rrdtool调试

2022-04-26 00:00:00 数据 专区 调试 转义 冒号

一、cacti问题点
1. 周期长的图形不能出图/不可下载,是因为php单进程的内存偏小,以及php进程的可执行时间有限制。需要调整内存大小,以及将php进程默认的中止时间调大。

2. 带宽的单位,bits/s、kbits/s、mbits/s、gbits/s。注意与bytes/s、kb/s、m/s、g/s的区别。

他们对应为8倍的关系。这问题,在处理交换机的流量扩展的时候遇到的,rrdtool中存取的是bytes/s, 下载下来的excel中是bits/s。1 bytes/s = 8bits/s。图形中G为Gbits/s而非Gbytes/s。

例如rrdtool存储为x bytes/s。

转换成Gbites/s的单位CDEF聚合就是:x * 8 / 1024 / 1024 /1024。有的是CDEF使用的 x * 8 /1000 / 1000 / 1000。

而如果转换成G / s : x / 1024 / 1024 /1024。



关于带宽的测试:iperf3

两台机器,centos7 安装上iperf3,一台作为服务端iperf3 -s。

客户端: iperf3 -c server_ip -i 10 t 600 -B 192.168.1.4 -P 5 测上行速度

iperf3 -c server_ip -i 10 t 600 -B 192.168.1.4 -P 5 -R 测下行速度

R表示,服务端作为发送者,客户端作为接收者

P:代表并发

B:绑定网卡ip

二. rrdtool基本操作
#创建
rrdtool create --start 1633017600 --step 300 w03.rrd DS:ds1:COUNTER:600:U:U RRA:AVERAGE:0.5:1:8930

ds保存的为临时的pdp数据。

rra保存的为依赖cf聚合pdp的归档数据cdp。

heartbeat 心跳有效期600,也就是两个刷新周期。在t点的时候爬取到数据,
那么前后300S(共600S)的平均值就 会绘成t点的值。但如果在两个刷新周期内都没爬取到数据,必须更新一个UNKNOWN值。
#更新

#拉取
rrdtool fetch w03.rrd AVERAGE -s 1633017600 -e 1633050600 > /home/a.out

三.rrdtool的本地调试。
1. centos7中安装好rrdtool,自编译的。

2. vscode调试设置:



ctrl + shift + p 设置C++全局配置。





launch.json:如果有调试改动代码需要添入preLaunchTask。

带参运行调试如下

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/usr/local/rrdtool/bin/rrdtool",
// "program": "${workspaceFolder}/src/rrdtool",
"args": [
// "--help"
// -- restore cmd -- start
// "restore",
// "/home/1.xml",
// "/home/2.rrd"
// -- restore cmd -- end
// -- graph cmd -- start
"graph",
"/home/1234.png",
"--start=1639460203",
"--end=1639546603",
"--title='XGigabitEthernet7/0/4'",
"--rigid",
"--base=1000",
"--height=120",
"--width=500",
"--upper-limit='100'",
"--lower-limit='0'",
"COMMENT:'2021/12/14\\ 13\\:36\\:43~2021/12/15\\ 13\\:36\\:43'",//注意此处时间中不能有冒号,冒号是rrdtool的命令。用得转义
"COMMENT:'\\n'",
"--vertical-label='bit/s'",
"--slope-mode",
"--font",
"TITLE:10:",
"--font",
"AXIS:8:",
"--font",
"LEGEND:8:",
"--font",
"UNIT:8:",
"DEF:a=\"/home/401.rrd\":traffic_in:AVERAGE",
"DEF:b=\"/home/401.rrd\":traffic_out:AVERAGE",
"CDEF:cdefa=a,8,*",
"CDEF:cdefe=b,8,*",
"AREA:cdefa#00CF00FF:\"in:\"",
"GPRINT:cdefa:LAST:\"last-%8.2lf\\ %s\"", // 注意空格也需要转义\\,空格为rrdtool的命令分隔
"GPRINT:cdefa:AVERAGE:\"average-%8.2lf\\ %s\"",
"GPRINT:cdefa:MAX:\"max-%8.2lf\\ %s\n\"",
// "LINE1:cdefe#002A97FF:\"out:\"",
// "GPRINT:cdefe:LAST:\"last-%8.2lf\\ %s\"",
// "GPRINT:cdefe:AVERAGE:\"average-%8.2lf\\ %s\"",
// "GPRINT:cdefe:MAX:\"max-%8.2lf\\ %s\n\""
// -- graph cmd -- end
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}



————————————————
版权声明:本文为CSDN博主「x未知x」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weizhijava/article/details/122061120

相关文章