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

Страницы PHP время от времени работают медленно

У меня есть VPS с ограничением 2 ГБ оперативной памяти и 8 ядер процессора.

У меня есть 5 сайтов на этом VPS (один из них только для тестирования, кроме меня посетителей нет). Все 5 сайтов представляют собой галереи изображений, как и сайты обоев. На прошлой неделе я заметил проблему на одном сайте (основной домен, используемый для серверов имен, а также с наибольшим трафиком, посетителей). На этом сайте есть две галереи изображений, одна - это старая статическая html-галерея, созданная несколько лет назад, а другая, основная, работает на ZENPhoto CMS. Также у меня есть та же галерея CMS на двух других сайтах на том же VPS (на одном работающем сайте и на одном только для тестирования). На двух других сайтах у меня другая галерея, управляемая PHP.

Проблема в том, что через некоторое время (от 10 минут до нескольких часов после перезапуска apache) загрузка страниц на основном сайте становится очень медленной, или я получаю сообщение об ошибке 503 Service Tempoporary Unavailable. Таким образом страницы становятся недоступными. Но именно эта часть с новой галереей CMS, старая часть сайта со статическими html-страницами работает быстро и нормально. Также два других сайта с той же галереей CMS и два других сайта с другой галереей, управляемой PHP, работают нормально и быстро одновременно. Я подумал, что это должно быть что-то с CMS на этом основном сайте, потому что другие сайты работают хорошо. Затем я попытался открыть страницы контактов и гостевых книг на этом основном сайте, которые находятся за пределами этой CMS, но также и страницы PHP, и они тоже не загружаются, но те же самые контактные скрипты php работают на других сайтах одновременно.

Итак, когда сайт начинает зависать, ТОЛЬКО контент, созданный PHP, не работает, как я уже сказал, работают другие статические страницы. И ТОЛЬКО на этом главном сайте у меня проблемы. Затем мне нужно перезапустить Apache, после перезапуска все работает хорошо и быстро, в течение некоторого времени, опять же, только страницы PHP на основном сайте становятся медленнее. Если я не перезапущу apache, эта медлительность займет некоторое время (несколько минут, часов, в зависимости от трафика), и в течение этого времени содержимое погружения PHP загружается очень медленно или недоступно на этом сайте. Спустя какое-то время, в какие-то моменты все начинает работать и какое-то время снова быстро, и снова. В часы с большим объемом трафика PHP-контент загружается медленно или недоступен, в часы с меньшим объемом трафика он иногда выполняется быстрее, а иногда немного медленнее, чем обычно. И снова, только на этом основном сайте и только на страницах, управляемых PHP, статические страницы работают быстро даже в большинство часов трафика, также быстро работают другие сайты с такой же CMS.

В настоящее время у меня около 7000 уникальных посетителей на этом сайте, но сайт хорошо работал даже при 11500 посетителей в день. И всего около 17000 посетителей на VPS, всех сайтах (около 3 страниц на уникального посетителя).

Когда сайт иногда начинает тормозить в статусе apache, я вижу что-то вроде этого:

Статус mod_fcgid:

Всего процессов FastCGI: 37

Процесс: php5 (/ usr / local / cpanel / cgi-sys / php5) Состояние активного простоя Pid-доступа

11300 39 28 7 Рабочие

11274 47 28 7 Рабочий

11296 40 29 3 Рабочий

11283 45 30 3 Рабочий

11304 36 31 1 Рабочий

11282 46 32 3 Рабочие

11292 42 33 1 Рабочий

11289 44 34 1 Рабочий

11305 35 35 0 Рабочий

11273 48 36 2 Рабочий

11280 47 39 1 Рабочий

10125133 40 12 Выход (ошибка связи)

11294 41 41 1 Выход (ошибка связи)

11277 47 42 2 Выход (ошибка связи)

11291 43 43 1 Выход (ошибка связи)

10187108 43 10 Выход (ошибка связи)

10209 95 44 7 Выход (ошибка связи)

10171113 44 5 Выход (ошибка связи)

11275 47 47 1 Выход (ошибка связи)

10144125 48 8 Выход (ошибка связи)

10086149 48 20 Выход (ошибка связи)

10212 94 49 5 Выход (ошибка связи)

10158118 49 5 Выход (ошибка связи)

10169114 50 4 Выход (ошибка связи)

10105141 50 16 Выход (ошибка связи)

10094146 50 15 Выход (ошибка связи)

10115139 51 17 Выход (ошибка связи)

10213 93 51 9 Выход (ошибка связи)

10197103 51 7 Выход (ошибка связи)

Процесс: php5 (/ usr / local / cpanel / cgi-sys / php5) Состояние активного простоя Pid-доступа

7983 1079 2149 Готово

7979 1079 11151 Готово

Процесс: php5 (/ usr / local / cpanel / cgi-sys / php5) Состояние активного простоя Pid-доступа

7990 1066 0 57 Готово

8001 1031 64 35 Готово

7999 1032 94 29 Готово

8000 1031 91 36 Готово

8002 1029 34 52 Готово

Процесс: php5 (/ usr / local / cpanel / cgi-sys / php5) Состояние активного простоя Pid-доступа

7991 1064 29 115 Готово

При нормальной работе нет строк с надписью «Выход (ошибка связи)»

Active и Idle - это время активности и время с момента последнего запроса в секундах.

Вот системная информация.

Информация о Sysem:

Всего процессоров: 8

Производитель процессора №1 Подлинное название Intel (R) Xeon (R) CPU E5440 @ 2,83 ГГц Частота 88,320 МГц Кэш-память 6144 КБ

Все остальные семь такие же.

Системная информация

Linux vps.nnnnnnnnnnnnnnnnn.nnn 2.6.18-028stab099.3 # 1 SMP, среда, 7 марта 15:20:22 MSK 2012 x86_64 x86_64 x86_64 GNU / Linux

Текущее использование памяти общее количество используемых свободных общих буферов кэшировано Mem: 8388608 882164 7506444 0 0 0 - / + buffers / cache: 882164 7506444 Swap: 0 0 0 Всего: 8388608 882164 7506444

Текущее использование диска Размер файловой системы Используемый доступ Использование% Установлено на / dev / vzfs 100 ГБ 34 ГБ 67 ГБ 34% / нет

Сведения о системе:

Работает на: Apache / 2.2.22 Информация о системе: (Unix) mod_ssl / 2.2.22 OpenSSL / 0.9.8e-fips-rhel5 DAV / 2 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635 mod_fcgid / 2.3.6 Работает на: PHP / 5.3.10

Текущая конфигурация

Версия PHP по умолчанию (файлы .php) 5

Обработчик PHP 5 fcgi Обработчик PHP 4 suphp

Apache suEXEC на

Apache Ruid2 выключен

Обработчик PHP 4 suphp

Apache suEXEC на

Конфигурация Apache

Сохранены следующие настройки:

fileetag: Все

keepalive: Вкл.

keepalivetimeout: 3

максклиентов: 150

maxkeepaliverequests: 10

maxrequestsperchild: 10000

maxspareservers: 10

minзапасные серверы: 5

root_options: ExecCGI, FollowSymLinks, Includes, IncludesNOEXEC, Indexes, MultiViews, SymLinksIfOwnerMatch

serverlimit: 256

serverignature: Off

servertokens: Полный

sslciphersuite: ALL:! ADH: RC4 + RSA: + HIGH: + MEDIUM: -LOW: -SSLv2: -EXP:! kEDH

стартовые серверы: 5

тайм-аут: 30

Надеюсь, я хорошо объяснил свою проблему.

Любая помощь будет приятной.

По моему опыту работы с VPS, я бы посмотрел на ограничения для открытых файлов (/ sock). Это может привести к странным эффектам, особенно зависанию / запрету ввода-вывода (например, ваша ошибка связи), хотя очевидно, что доступно много бесплатных ресурсов.

Проверьте свою базу данных на наличие ошибок и убедитесь, что база данных не слишком велика. Также посмотрите журналы своей базы данных и журналы ошибок Apache, когда вы заметите замедление.