在我运行的VPS上,我最近经常碰到tcpsndbuf的软限制和硬限制,导致服务器几乎无法访问,因为负载高达45和更高。 我已经尝试限制允许的Apache连接的数量,但在用新的值重新设置服务器5分钟后,所有的事情都变得疯狂了。 现在我有:
KeepAlive off <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 20 MaxClients 20 MaxRequestsPerChild 1000 </IfModule>
该服务器目前推动大约1.5 TB的20kb-15MB文件,主要是apache,与vsftpd的partyl和主机约5个wordpress博客,每天接收约300-800人次。
/ proc / user_beancounters说:
uid resource held maxheld barrier limit failcnt 62327: kmemsize 27311616 27428538 193273527 214748364 0 lockedpages 0 0 2059 2059 0 privvmpages 316229 316352 1048576 1101004 0 shmpages 745 745 131072 131072 0 dummy 0 0 9223372036854775807 9223372036854775807 0 numproc 95 95 650 650 0 physpages 154998 155013 0 9223372036854775807 0 vmguarpages 0 0 524288 9223372036854775807 0 oomguarpages 154999 155014 9223372036854775807 9223372036854775807 0 numtcpsock 30 30 700 700 0 numflock 7 8 1000 1100 0 numpty 1 1 102 102 0 numsiginfo 0 0 1024 1024 0 tcpsndbuf 1573056 1619200 6720000 9408000 23663960828 tcprcvbuf 491520 491520 6720000 9408000 42 othersockbuf 224864 226176 5760000 8064000 0 dgramrcvbuf 0 8480 5376000 5376000 0 numothersock 139 139 600 600 0 dcachesize 1319995 1338775 28991028 32212254 0 numfile 3125 3145 17600 17600 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 71 71 9223372036854775807 9223372036854775807 0
什么是最有效的方法来减lesstcpsndbuf的要求?
作为一个旁注,每当我遇到tcpsndbuf限制时,我通过wget等工具下载文件的大多数尝试都会以“没有可用的缓冲区空间”之类的消息结束。