今天查看监控,发现memory usage哪里不对劲,仔细一看,原来CacheMemory的图不见了,buffers和free的图还在,其余一切正常,google一下,发现这是由于rrdtools默认的内存上限为10G的原因造成的,问题以解决,分享一下解决方法:
网上的此问题大多数是出现在memory free不出图,修改*_mem_free*.rrd,我试过之后,等了一会发现没效果,仔细一看,我的问题出现在memory cache上,我修改错了文件了,当然没效果,后来修改自己的*_memory_cache*.rrd,果然有效果了,但仔细一想,这方法治标不治本,如果哪天把rrd文件删了,新生成的rrd上限还是10G,所以就想到了模版,以下整理出来的完整解决方法:
1.修改模版
Console—〉DataTemplates中有三个关于memory的模版文件,网上一般只改free,其实我们改的是上限,不影响别的,所以把三个都改了也没关系,因为如果内存足够大,你buffers一释放,free自然就大了,超过了限定值就不出图,多闹心,所以我直接把三个都改了,这样不管哪个增大,都不会超过上限,,依次点击每个关于memory的模版,修改里面的
MaximumValue 值,默认10G,加个0,变成100G了,依次保存,ok!
2.修改以生成的rra文件
#rrdtool info *_mem_cache_*.rrd (*值不固定,根据自己的来),到里面看,ds[mem_cache].max =1.0000000000e+07 一项都是10G,所以我们要改这里(另外两个也同理)
# rrdtool tune *_mem_free_*.rrd -amem_free:100000000
# rrdtool tune *_mem_buffers_*.rrd -a mem_buffers:100000000
# rrdtool tune *_mem_cache_*.rrd -amem_cache:100000000
修改之后,稍等片刻,就出图了,之前为nan的数据是不会出现的,出现的是后面新生成的数据,不管是你的free不出图,还是cache不出图,这回都该出来了,ok,搞定收工.