我们为Web应用程序设置了三个memcache服务器.
其中两个做得很好,处理成千上万的读写操作,同时每个连接保持不超过12个连接(根据memcache-top).
我们有第三个memcache服务器,负责存储管理客户端会话数据(使用内置在memcache会话处理程序中的PHP)和一些随机应用程序数据.由于某种原因,此盒子上的连接数量永远不会下降,只会随着时间的推移而增加.例如,我们最近重新启动了服务器,一小时后memcache-top记录了~300个连接.
代码库使用持久连接和动态连接的混合,但我无法想出一个简单的例子来重新创建连接永远不会死的情况.第三个memcache服务器实际上托管了我们Web应用程序中活动最少的部分,正如您在memcache-top中看到的那样:
memcache-top v0.6 (default port: 11211, color: on, refresh: 3 seconds) INSTANCE USAGE HIT % CONN TIME EVICT/s READ/s WRITE/s memcache1:11211 15.7% 83.5% 10 1.2ms 0.0 24.9K 34.5K memcache2:11211 15.8% 81.3% 10 1.0ms 0.0 19.1K 31.6K memcache3:11211 0.1% 0.0% 354 1.1ms 0.0 4 321 AVERAGE: 10.5% 55.0% 124 1.1ms 0.0 14.7K 22.1K TOTAL: 0.6GB/ 6.0GB 374 3.2ms 0.0 44.0K 66.4K
所以我的问题是:为什么这个memcache实例的连接永远不会死?