深夜、点钱(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) |