Назад | Перейти на главную страницу

Apache2 много CLOSE_WAIT. ЛАМПА. Как найти проблему

У меня запущена установка LAMP, и у меня, кажется, много соединений CLOSE_WAIT для программы apache2, когда я использую netstat (несколько сотен). Это в конечном итоге приводит к тому, что мой apache перестает отвечать.

Ниже представлена ​​установка:

php:

PHP 5.3.10-1ubuntu3.6 with Suhosin-Patch (cli) (built: Mar 11 2013 14:31:48) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

apache2:

Server version: Apache/2.2.22 (Ubuntu) [running mpm-prefork]

mysql

Server version: 5.5.29-0ubuntu0.12.04.2-log (Ubuntu)

Бег Ubuntu 12.04 LTS

Linux numerink201 3.2.0-34-virtual #53-Ubuntu SMP Thu Nov 15 11:08:40 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

У меня есть пара вопросов:

  1. Как я могу узнать, на каком этапе процесса я нахожусь? Очевидно, что клиент отправил запрос FIN / RST, но как я могу узнать, какой, и если FIN, как мне узнать, отправил ли процесс свой собственный FIN / ACK или я жду клиентского ACK. Или если все было получено, но процесс не завершился?

  2. Если Apache не может должным образом закрыть процесс, как я могу найти проблему?

В настоящее время я уменьшил TimeOut для apache с 300 до 150 в качестве временной меры. Есть ли лучший способ сделать это?

Заранее спасибо.

Было бы полезно, если бы вы указали версию своего ядра и сообщили нам, какой MPM вы используете. Если это рабочий (потоковый) сервер, переключитесь на предварительную вилку (не потому, что Расмус сказал, что это была плохая идея в 2005 году - в Apache тоже есть проблемы).

много подключений CLOSE_WAIT

Для который сервер? httpd? MySQL? Что-то другое?

Очевидно клиент отправил запрос FIN

В прошлый раз, когда я рассмотрел это более подробно, и MSIE, и Firefox обычно закрывают соединения с помощью RST, а не «чистым» завершением работы.

Вы, по-видимому, не заботитесь о производительности, поэтому отключение сообщений поддержки активности может помочь в качестве временной отсрочки.