memcached Timed out(x milliseconds) waiting for operation while connecte的排查过程

       系统使用了memcached,客户端使用了xmemcached2.0,最近系统执行MemcachedClient的get方法时一直报错误“memcached Timed out(x milliseconds) waiting for operation while connecte”,其中标红的x是设置的超时时间。由于本人对memcached的知识也比较缺乏,所以首次排查也遇到不少问题,这里简单说下步骤以供其他和我一样的小白摸索。

        首先就根据其他网友的资料,怀疑是服务端连接数量超过了,可是查资料说默认memcached的最大连接数是1024个。我们客户端端的“connectionPoolSize”配置是300,远比这个数量小啊。那么服务端的数量到底是多少?怎么查看?经过查找资料,可以使用telnet的方式查看,如果你的机子上telnet命令没有开启需要打开下。

         第一步:在cmd中启动telnet客户端,命令类似于:telnet localhost 11211,你可以把localhost换成你自己机子的IP。这个时候就会弹出一个黑色的界面,上边啥也没有。

         第二步:不要着急,你输入命令“stats",如果经过了一分钟时间这个界面还是没有反应的话,就说明memcached的服务端连接数已经超过其负载能力了。这个时候你需要把客户端的connectionPoolSize连接数设置的更小些。切记,最好重启memcached服务端,否则常常还是连不上。然后再重复以上说的第一步的和第二步的步骤,直到connectionPoolSize设置的足够小,服务端可以连上了。这个时候connectionPoolSize就是你当前memcached可以承载的连接数。

        第三步:连接上后就可以查看当前的连接数,比如我这里是:STAT curr_connections 51。

        以上就是解决查看服务端连接的问题时,顺带验证了自己的推测,问题找到了再想办法解决提高连接数的问题,这是后话。

        这里暂时留下问题:网上资料说memcached服务端的默认最大连接数是1024个,可是为啥我这里到50个就再也连不上了,太晚了随后再搞清楚这个问题。

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值