Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2320527
  • 博文数量: 535
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7066
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(535)

文章存档

2024年(4)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2012-04-05 10:37:02





 深夜、点钱(329322054)  10:35:41
分享一下经验


在高并发情况下,varnish不提供服务,wget去下载http一直等待回应,同时流量异常,表现为流量往下掉,上不去。并且varnishlog会看到如下信息。
No more "Create worker thread failed 11 Resource temporarily" messages.

即使你在varnish启动配置文件中把线程数设置为最大50000 -p thread_pool_max=5000,结果在varnishstat中查看n_wrk_create - N worker threads created 也不会超过1024,并且你会看到有多少个请求超出负载,drop掉了多少个请求。
651706       157.04       220.47 N overflowed work requests
460396       262.07       155.75 N dropped work requests

解决:增加系统进程数的限制
Centos6系centos5有些不同,操作如下
ulimit -u 50000

vi /etc/security/limits.d/90-nproc.conf
*          soft    nproc     65535
*          hard    nproc     65535

vi /etc/security/limits.conf
* hard nofile 65535
* soft nofile 65535

注意:次设置需要varnish重新启动才会生效。

原来在linux里,nproc(在/etc/security/limits.conf中的nproc既对应ulimit的max user processes)限制的是线程数。当然因为在linux里一个进程至少包含一个线程,所以间接也起到了对进程数的限制。
%E5%92%8Credhat6-root%E7%94%A8%E6%88%B7%E4%B8%8D%E5%90%8C%E7%9A%84ulimits 
阅读(1794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~