Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266089
  • 博文数量: 53
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 509
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:02
文章分类

全部博文(53)

文章存档

2014年(1)

2013年(1)

2011年(14)

2010年(37)

我的朋友

分类: LINUX

2014-06-13 16:29:19

Hi

         昨天一个PD提到偶尔会有memcached无法建立连接的case,根据这个情况做了一些功课,发现我们线上memcached 的参数需要调整:

l  线程数:由默认的4个线程调至8

max simultaneous connections 调整至10000

 
另外有一个问题:我们线上的client和memcached 之间是否都是长连接?

 

目前存在这个风险的instance主要有:(连接数超过500)

    982 192.168.49.32:11218

    975 192.168.49.31:11218

    856 192.168.79.89:11220

    833 10.8.8.31:11236

    829 192.169.7.188:11220


分析和debug过程如下:

 

1、确认问题的存在

24小时中每隔一秒对memcached instance发起get请求,有646次处理时间超过100ms,其中甚至有超过200s的请求

 

2、观察instance 的情况

观察发现,前端clientmemcached instance建立的是长连接,连接数基本稳定在900+,也就是说如果有新的请求数超过10个,超时的可能性很大

而我们线上跑的memcached instance 最大连接数是1024,并且经过在测试服务器测试,在最大连接数设置为20的情况下,实际可用连接是4,也就是说当最大连接数是1024的情况下,实际可建立连接数是1008

 

3、测试验证

而在连接数不足的情况下,会发生处理时间大大增加的情况,for example

在测试机器并发测试:


阅读(2671) | 评论(0) | 转发(0) |
0

上一篇:谈谈对互联网运维的理解和认识

下一篇:没有了

给主人留下些什么吧!~~