由于在一些热门网站上的特色,我的网站已经从每天2万次访问到昨天的18.2万次。
该网站已经变得没有反应。 许多请求将导致超时。 然而,有足够的CPU和RAM可用。 CPU和RAM确实没有达到20%以上的高峰,平均在12%左右。
当试图用WGET下载主页时,它将在这里停滞:
parsingdomain.io(domain.io)… 91.121.220.92连接到domain.io(domain.io)| 91.121.220.92 |:80 …失败:连接超时。 重试。
但是,如果它确实连接,它会很快下载页面。 另外,我可以通过IP通过浏览器连接到phpMyAdmin,并且正常工作。
这使我相信Apache中存在一个问题
我的设置:
Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0 <IfModule mpm_event_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 MaxClients 150 MaxRequestsPerChild 0
不确定这些我正在使用,将现在检查。
有没有人有什么build议,在这里鼓捣什么? 在Apache或其他。
当我通过SSHlogin它说:
System load: 2.92 Processes: 289 Users logged in: 0 Memory usage: 9% Swap usage: 0%
该服务器是一个4核3.2Ghz与32GB内存和2x2TB,其中很less使用。
你应该启用mod_status ,看看你是不是达到了并发连接的Apache限制。 可能你已经把这个限制设置得太低了,应该增加MaxClients值, ThreadLimit和ThreadPerChild取决于你正在使用的mpm模块。
一些其他的东西来检查,在Apache的错误日志,chek像这样的条目:
apache server reached MaxClients setting, consider raising the MaxClients setting
这意味着您已达到configuration的最大进程/线程数
另一个很好的迹象表明,apache不跟上加载,也许是因为最大的线程/进程configuration是一个溢出,如果侦听队列,你可以这样检查:
netstat -s | grep -i listen
通常情况下,你不会得到输出,但在遇到麻烦的情况下,你会得到:
# netstat -s | grep -i listen 26760 times the listen queue of a socket overflowed 26760 SYNs to LISTEN sockets ignored #
希望这可以帮助