100% загрузка процессора при загрузке больших файлов
Пожалуйста, помогите мне решить проблему. У меня есть веб-сайт обработки изображений на выделенном сервере. После перехода на более мощный сервер я столкнулся со странными проблемами.
Первая конфигурация сервера была:
Core 2 Quad 6600
4 Гб оперативной памяти DDR2
2x500GB SATA + аппаратный Raid0
Fedora 32bit + PAE
Новая конфигурация сервера:
Core 2 Quad 6600
8 Гб оперативной памяти DDR2
2x300GB SAS + Аппаратное обеспечение Raid0
CentOS 64bit
движок использует Nginx + Apache + fastcgi + perl
Nginx - интерфейс, обслуживающий статический контент.
Apache - бэкэнд, обслуживает динамический контент с помощью fastcgi.
Причиной, по которой мне пришлось обновить сервер, является высокая загрузка диска, почти 90..100%
Теперь нет проблем с диском, но возникла новая проблема.
Теперь все процессы fastcgi вместе используют почти 100% CPU.
Я также заметил, что этот процесс использует много ресурсов ЦП, когда пользователь сайта загружает большой файл на сервер. И после загрузки файла загрузка процессора снова становится нормальной.
Вот первые строки сверху
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18306 apache 15 0 427m 45m 5576 S 97.4 0.6 0:23.83 index.fcgi
18294 apache 16 0 440m 58m 5312 S 68.8 0.7 0:22.81 index.fcgi
17612 apache 16 0 465m 82m 5728 R 59.8 1.0 1:03.95 index.fcgi
18164 apache 15 0 397m 79m 5628 S 40.9 1.0 0:35.59 index.fcgi
Я никогда не видел ничего подобного на старом сервере.
У вас есть идеи, что может вызвать такую проблему?
Дайте мне знать, если вам нужна дополнительная информация о сервере
Заранее спасибо!
1 ответ
Вполне естественно, что когда вы устраняете одно узкое место (дисковый ввод-вывод), система будет ускоряться до момента попадания в другое узкое место (в данном случае, по-видимому, ЦП). Вам следует повысить эффективность вашего кода (чтобы он лучше использовал одно ядро), распараллелить ваш код (чтобы он мог использовать несколько ядер одновременно), получить более качественные ЦП или научиться жить с ним. Ваш сайт работает медленнее, чем это приемлемо для вашей ситуации?