我有一台带有php的apache服务器的服务器。
PHP 5.3.28
RAM 20G
在apache中,我配置了40个域,具有以下特征:
<VirtualHost *:80>
ServerName domain.com
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined_t
ErrorLog "|/usr/apache2/2.2/bin/rotatelogs /opt/avv2002_data/logs/domain_err.%Y%m%d 86400"
CustomLog "|/usr/apache2/2.2/bin/rotatelogs /opt/avv2002_data/logs/domain_log.%Y%m%d 86400" combined_t
LogLevel info
DocumentRoot "/opt/www/apache/joomla/sites/"
DirectoryIndex index.htm index.html index.php
<Directory "/opt/www/apache/joomla/sites/">
Options -Indexes FollowSymlinks Includes MultiViews
AllowOverride All
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.html [NC,L]
</Directory>
</VirtualHost>
前几天开发用PHP上传了一个新的应用程序,我的服务器启动了ram和cpu的问题,看了一下我发现了以下内容:
进程太多,子进程和TIME_WAIT。
示例:
使用swap。
使用pmap提取交换
交换:212276字节pid:23158
# ps auxww | grep 23158
webservd 23158 0.1 0.121227628216 ? S 11:49:57 0:06 /usr/apache2/2.2/bin/httpd -k start
看太多TIME_WAIT
netstat -aun | grep 23158
serverip.80 serverip.61768 root 23158 httpd 44876 0 65160 0 TIME_WAIT
serverip.80 serverip.31254 root 23158 httpd 7843 0 65160 0 TIME_WAIT
serverip.80 serverip.55937 root 23158 httpd 7262 0 65160 0 TIME_WAIT
serverip.80 serverip.52572 root 23158 httpd 4845 0 65160 0 TIME_WAIT
serverip.80 serverip.49687 root 23158 httpd 7075 0 65160 0 TIME_WAIT
serverip.80 serverip.29891 root 23158 httpd 29310 0 65160 0 TIME_WAIT
serverip.80 serverip.57332 root 23158 httpd 9557 0 65160 0 TIME_WAIT
serverip.80 serverip.20296 root 23158 httpd 7262 0 65160 0 TIME_WAIT
serverip.80 serverip.16077 root 23158 httpd 61246 0 65160 0 TIME_WAIT
.......
netstat -aun | grep "ipserver.80" | wc -l
2077
ps auxww | grep "/usr/apache2/2.2/bin/httpd -k start" | wc -l
507
我的apache服务器状态显示完整wwwwwwwwwwwww
pache Server Status for serverip
Server Version: Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1h DAV/2 PHP/5.3.28 mod_fcgid/2.3.9
Server Built: Jun 17 2014 11:19:37
Current Time: Wednesday, 05-Apr-2017 13:50:10 CDT
Restart Time: Wednesday, 05-Apr-2017 13:12:10 CDT
Parent Server Generation: 0
Server uptime: 38 minutes
Total accesses: 125046 - Total Traffic: 3.6 GB
CPU Usage: u404.25 s342.99 cu0 cs0 - 32.8% CPU load
54.8 requests/sec - 1.6 MB/second - 30.4 kB/request
29 requests currently being processed, 0 idle workers
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWwWWWWWW
有什么办法可以查看哪个域名是流量大的域名?通过这种方式,您可以确切地知道开发团队修改了什么
我在想一个php的分析器,看看哪个域需要更长的时间
知道我应该检查什么?
答案 0 :(得分:0)
您已达到最大工人数,您需要增加它。我们在how to increase the max number of Apache workers on WHM上发布了一个指南,在您的情况下,您需要在Apache的配置文件中手动执行此操作(将MaxClients更改为1024)。
现在问题是,为什么你达到了最大数量的工人,是因为真正的交通,还是因为别的东西?
我的建议是检查Apache日志(我不知道Solaris上的结构是什么,上次我的工作是在2004年),看看哪个网站流量最大(这是流量)用最大的日志)。然后,您应该分析该流量:这是真正的流量吗?它是机器人流量吗?如果它是机器人流量,那么它是合法的机器人流量(如果没有,那么你应该阻止所有那些非法机器人)?
如果是真正的流量,那么你有很多404吗?如果是,那么你需要解决这些问题 - 因为每个404都需要Joomla实例中的另一个工作者。