查看: 6761|回复: 0
打印 上一主题 下一主题

Memcached Cache客户端的一个参数

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-2 16:40:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
今天,有一个使用我优化的Memcached cache Client给我发了邮件问到一个参数的作用,觉得还是比较重要的一个参数,因此也说一下,同时也在这里说一下,当前优化过的客户端已经作了几次小的升级,修复了一些边界数据的问题,大家如果在使用的话,最好能够升级。(http://code.google.com/p/memcache-client-forjava/
   邮件如下:

   你好:
<socketpool name="pool0" failover="true" initConn="5" minConn="5"
  maxConn="250" maintSleep="5000" nagle="false" socketTO="3000"
  aliveCheck="true" >
  <servers>10.0.0.16:11111</servers>
  <weights>10</weights>
</socketpool>
能解释下maintSleep这个意思么?我看有的资料说吧它设置为0性能更好,能给些建议么?谢谢!!我们现在的PV大约每天500万。

    这个参数是对此连接池维护线程的检查间隔时间的配置,如果配置小于等于0,则将不会有后台线程维护此连接池,参数单位为毫秒,下面解释一下维护连接池的含义,其实就和其他的资源池一样,资源池的目的就是为了解决资源的申请和释放的开销增加系统压力的问题,将资源通过池的方式回收重用,有利于系统性能的提高。memcached cache client 其实是通过socket来和服务端进行通信,建立socket连接也是比较消耗时间的工作,因此配置了池的初始连接数(initConn),最小连接数(minConn),最大连接数(maxConn)。这三者关系如下图,维护他们之间状态转移的就是后台线程。





    后台进程维护资源池的作用就是将有限资源回收,例如数据库连接,如果一台oracle只有500个连接数可以支持,那么如果一个应用都占用了50个闲置,那对于其他需要资源的应用来说无疑是一种浪费。但如果配置了资源管理,但由于应用属于忙时和闲时交替比较频繁的情况,那么如果时间配置的不是很合适,就会达不到原来资源池的作用,资源反复回收和申请。所以对于这个参数的配置,个人觉得一定要配,配置的值需要注意,初始化和最小的值可以是自己预估平时平均并发处理的均值,最大的连接数当然依赖于资源的总数,而维护时间间隔则最好是能够根据闲时和忙时的情况来考虑配置,这样既不会浪费资源,同时也不会使资源池时效。

    顺带说一句,如果对于数据丢失要求不是很苛刻,然后网络情况也不错的时候,可以将aliveCheck设置为false,因为如果是true,在每一次发送任何数据操作之前都会去做心跳检查,这个未来也会考虑去优化。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表