Apache TIME_WAIT соединения, php на солярис 11.2

У меня есть сервер с сервером Apache с PHP.

  • ТАК. Солярис 11.2
  • Apache 2.2
  • PHP 5.3.28

  • RAM 20G

  • 16 ядер

В 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.

пример:

использовать своп.

извлечь своп с pmap

swap: 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, чтобы увидеть, какой домен занимает больше времени

Любая идея, что еще я должен проверить?

1

Решение

Вы достигли максимального количества работников, вам нужно его увеличить. Мы разместили руководство по как увеличить максимальное количество рабочих Apache на WHM, в вашем случае вам нужно будет сделать это вручную в файле конфигурации Apache (измените MaxClients на 1024).

Теперь возникает вопрос: почему вы достигли максимального количества работников, это из-за реального трафика или из-за чего-то еще?

Мой совет — проверить журналы Apache (я не знаю, какова структура в Solaris, когда я в последний раз работал над этим в 2004 году) и посмотреть, какой веб-сайт имеет больше всего трафика (это трафик с наибольшим журнал). Затем вы должны проанализировать этот трафик: это реальный трафик? Это бот-трафик? Если это трафик ботов, то является ли он легальным трафиком ботов (если нет, то вам следует блокировать всех этих нелегитимных ботов)?

Если это реальный трафик, то много ли у вас 404? Если да, то вам нужно обратиться к этим 404-м — потому что каждому 404-му нужен будет другой работник в экземпляре Joomla.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]