linux – rrdgraph生成在高IO负载下失败
我们有一个4核CPU生产系统,它可以执行大量的cronjobs,具有恒定的proc队列和通常的~1.5的负载.
在夜间我们用postgres做一些IO密集型的东西. 我的“正常”解决方案是使用postgres的东西,并增加图形生成的prio. 假设没有收集数据,另外的问题是ionice / nice在某种程度上仍然无法正常工作. 可悲的是,我无法在测试中完全重现这一点(只有一个虚拟的开发系统) 版本: 内核2.6.32-5-686-bigmem * * * * * root flock -n /var/lock/rrd-updates.sh nice -n-1 ionice -c1 -n7 /opt/bin/rrd-updates.sh 似乎有一个somhow可能与来自Oetiker先生在github上为rrdcache有关的BUG: 这实际上可能是我的问题(并发写入),但它没有解释cronjob没有失败. 输出示例: 根据评论,我添加了更新脚本的重要来源. rrdtool update /var/rrd/cpu.rrd $(vmstat 5 2 | tail -n 1 | awk '{print "N:"$14":"$13}') rrdtool update /var/rrd/mem.rrd $(free | grep Mem: | awk '{print "N:"$2":"$3":"$4}') rrdtool update /var/rrd/mem_bfcach.rrd $(free | grep buffers/cache: | awk '{print "N:"$3+$4":"$3":"$4}') 我想念什么或在哪里可以进一步检查? 记住:生产系统所以没有开发,没有堆栈跟踪或类似的可用或可安装. 解决方法
我想这不是rrdtool无法更新图形,而是此时无法测量数据.顺便说一句,你测量CPU和内存统计数据的方法是错误的,因为它可以为你提供即时结果. CPU和内存负载可能会在60秒间隔内发生剧烈变化,但您只需要一个值.您应该考虑使用SNMP数据,它会在一定时间间隔内提供平均数据.此外,整个管道看起来更加昂贵,而且很慢.可能是差距的主要原因.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |