我整天都在处理这个问题,这让我疯了.所有Google搜索结果和搜索都会导致死胡同.我希望有人能与我合作,为自己和未来的受害者提供解决方案.开始了.
我正在运行一个非常受欢迎的网站,每天有超过3M的页面浏览量.平均每秒34次页面浏览量,但更实际的是,在高峰时段,每秒页面浏览量超过300次.将这些视为请求.
我正在运行一个带有2个E5620 CPU,12GB RAM和一个Micron P300 6Gb/s SSD的Ubuntu 10.04 64位服务器.在高峰时段,CPU和内存负载是平均的(CPU使用20-30%,使用一半内存).
支持该站点的软件是:NGINX,MySQL,PHP5-FPM,PHP-APC和Memcached.好的,现在终于帖子的内容,这里是我的错误日志.记录了一堆这些错误.
在/ var /日志/ PHP5-FPM
7月20日14:49:47.289895 [通知] fpm正在运行,pid 29373
7月20日14:49:47.337092 [注意]准备处理连接
7月20日14:51:23.957504 [错误] [池www]无法检索一个或多个子(ren)的进程活动.稍后再试.
7月20日14:51:1.846439 [警告] [池www]子29534从开始114.518174秒后退出代码1
7月20日14:51:41.846797 [注意] [池www]孩子29597开始了
7月20日14:51:41.896653 [警告] [池www]孩子29408在信号11 SIGSEGV退出后114.596706秒开始
7月20日14:51:41.897178 [通知] [池www]孩子29598开始了
7月20日14:51:1.903286 [警告] [池www]子29398从开始114.605761秒后退出代码1
7月20日14:51:41.903719 [通知] [池www]孩子29600开始了
7月20日14:51:41.907816 [警告] [池www]孩子29437从开始114.601417秒后退出代码1
7月20日14:51:41.908253 [注意] [池www]孩子29601开始了
7月20日14:51:41.916002 [警告] [池www]孩子29513从开始114.592514秒后退出代码1
7月20日14:51:41.916501 [通知] [池www]孩子29602开始了
7月20日14:51:41.916558 [警告] [池www]孩子29494从信号11 SIGSEGV退出114.597355秒后开始
7月20日14:51:41.916873 [通知] [池www]孩子29603开始了
7月20日14:51:41.921389 [警告] [池www]子29502从开始114.600405秒后退出代码1
/var/log/nginx/error.log 2011/07/20 15:48:42 [错误] 29583#0:*569743 readv()失败(104:通过对等方连接重置)在读取上游时,客户端:77.223.197.193 ,server:domain.com,request:"GET /favicon.ico HTTP/1.1",上游:"fastcgi://127.0.0.1:9000",主持人:"www.domain.com"
2011/07/20 15:48:42 [错误] 29578#0:*571695 readv()失败(104:通过对等方重置连接)在读取上游时,客户端:150.70.64.196,server:domain.com,request:" GET/page …
我在我的服务器上运行memcached,当它达到600+ req/s时,它变得不稳定并导致大量问题.当请求率变得那么高时,我的PHP应用程序在随机时间无法连接到memcache服务器,导致加载时间缓慢,这使得nginx和php-fpm发疯,我收到了一堆104:连接由同行重置我的nginx日志中的错误.
我想指出,在我的memcache服务器中,我有"热对象" - 有时会收到90%的memcache请求的对象.我还注意到,当有如此多的请求命中单个对象时,它会略微增加整个页面的加载时间(当它设法加载时).
我非常感谢对这个问题的任何帮助.非常感谢!