通过Munin监控进行Varnish Cache优化

2013年4月24日 发表评论 阅读评论
近期在开发通知的提醒下进行了Varnish3.0.3缓存的优化处理,分析过程使用的是Munin监控数值做的分析,下面将优化过程进行叙述:

一、初期概况
  初期做的地图数据缓存,最高命中率在90%,认为命中率很高。后经过日志统计发现,全天的URL总的内存占用在12G,而分配的内存是是36G进行缓存,因此为何无法全部命中?
二、内存参数对比

# varnishstat -1|grep SMA
SMA.s0.c_req             5026210        30.84 Allocator requests
SMA.s0.c_fail                  0         0.00 Allocator failures
SMA.s0.c_bytes       13944480077     85547.91 Bytes allocated
SMA.s0.c_freed            454443         2.79 Bytes freed
SMA.s0.g_alloc           5025662          .   Allocations outstanding
SMA.s0.g_bytes       13944025634          .   Bytes outstanding
SMA.s0.g_space       39743065566          .   Bytes available
SMA.Transient.c_req          266         0.00 Allocator requests
SMA.Transient.c_fail           0         0.00 Allocator failures

  对于上述内存参数, SMA.s0.g_space 表示当前可以应用的内存量,如果接近很小说明为缓存分配的内存还是比较小,已经不够使用;如果如上述情况表明内存的分配上已经足够。 SMA.s0.g_bytes 表示的是当前cache实际的内存大小  SMA.s0.c_bytes= SMA.s0.g_bytes +SMA.s0.c_freed  ,所以 SMA.s0.c_bytes应该为Varnish不断调整分配内存情况,分配的内存要大约实际使用的, SMA.s0.c_bytes我认为属于自动调节的范围,只要小于等于 SMA.s0.g_space 即可。如果命中率低,而内存又使用的很小与提供的部分,那么既有极大的优化空间。
  内存的变化通过Munin还是比较直观的:
  
三、当前缓存缓存的对象数目
 当前内存中缓存的object个数受制于TTL的设置比较大(对于不同URL,取同一个object的情况要,修改URL或者域名优化成一个缓存object),可以根据munin的取图每日的变化情况也可以判断缓存的是否优化到最后。
    下图是我更改TTL后的前后的一个变化,之前TTL设置的过期是10小时,现在设置的是3天,目前object在内存中的中的数量还是在不断增长中,已经图片2.4M个。
    
 三、通过Munin查看object的过期消失的个数。
    
    从图中可以看出,增加TTL后,目前过期的个数已经到最低点。


四、缓存命中率如图:
    
   从图中可以看出,命中率目前已经增加到95以上,后前随着缓存object的增加还有继续提高。


总结:
   通过Munin进行Varnish的内存监控、过期监控整体进行分析考虑进行优化,避免资源浪费。

   目前Varnish的第三方工具还是比较少的,技术的成熟预测可以出现自动报告优化点的开源工具出现。


注:以上内容摘自于互联网。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 平台架构 标签:
  1. 小磊
    2013年7月1日12:32 | #1

    博主你好,请问你这个监控模板是哪里下载的呢?我找的模板没有你这些监控项目,可否共享下,谢谢!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.