UAVpilot писал(а):А что происходило во время снятия второго и третьего скриншота?
Ты имеешь в виду большой процент CPU на mysql? Скорее всего так повезло, скорее всего несколько раз быстро обновил top - там сам топ тоже в топе с 28%.
Н а третьем ничего особенного не вижу.
Все эти скриншоты на сколько я помню сняты во время проблемы в течение 30 секуд, просто сортировка по разным столбцам.
UAVpilot писал(а):По первым прикидкам я бы порекомендовал добавить серверу RAM
Там 16Гб для обычной работы хватает. 90+% занято апачем. Я возможно не правильно умножил в статистике по памяти занимемой апачем, но его там много. Точно 0.1*500%, т.е. как минимум 50% есть, но скорее всего больше.
UAVpilot писал(а):Вообще для наблюдения за работой сервера имеет смысл запустить sar:
https://www.ibm.com/developerworks/ru/l ... index.html
Ещё полезная утилита для изучения текущего состояния - nmon.
+1 изучу вопрос.
Что думаешь на счет этого:
Nick писал(а):Странно, что запрос может долго висеть даже для маленьких файлов.
Удалось смоделировать похожую ситуацию, при помощи wget с ограничением скорости скачивания - подвисает поток в состоянии W - sending reply.
Не пробуйте повторять! Пожалуйста!
wget --limit-rate 6k
http://cncxxx-club.ru/forum/download/fi ... &mode=view
Меня удивляет, что проблема только с яндексом.
Вроде как ничего особенного в скрипте нет, все, что можно я убрал, остальное не должно зависеть от того кто качает файл.
И да, set_time_limit(20) не влияет - всеравно висят процессы с временем выполнения больше 2 минут. В php стоит глобальный лимит 30 секунд, он тоже ничего не дает.
При этом можно спокойно скачивать файл достаточно долго.
Хотя php может уже к жтому моменту заканчивает работу, я так понял, что дробление файла на куски нужно для того, чтобы не занимать память. Вполне возможно, что он быстро отдает файл в апач, а он уже долго отправляет его клиенту.