Как ограничить использование процессора nginx моно-fastcgi сервера в условиях стресса
Приложение MVC4 / Mono 3.2.1 работает в Debian с сервером Nginx и mono-fastcgi-4. Запускается как
MONOSERVER=$(which fastcgi-mono-server45)
WEBAPPS="/:/var/www/html/test/"
${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 &
Для тестирования клавиша F5 браузера удерживается в течение 30 секунд. После этого происходит длительная задержка, браузер показывает значок загрузки страницы. После задержки сообщения
504 Gateway Time-out
nginx/0.7.67
появляется
и команда top (выходные данные ниже) показывает, что моно fastcgi сервер потребляет 200% ресурсов процессора навсегда или в течение длительного времени (2 ядра). Единственный способ остановить это - вручную убить моно fastcgi сервер и вручную перезапустить его.
Как заставить моно fastcgi немедленно возвращать страницы и не использовать столько процессоров?
Если одно и то же приложение размещено на Apache и mod_mono, удержание и отпускание клавиши F5 в браузере немедленно возвращает страницу, и загрузка процессора сразу же возвращается к 0 после того, как F5 будет выпущен в браузере.
top - 00:40:38 up 1:43, 3 users, load average: 16.49, 15.92, 15.35
Tasks: 59 total, 1 running, 58 sleeping, 0 stopped, 0 zombie
Cpu(s): 34.5%us, 65.5%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si,
0.0%st
Mem: 2097152k total, 744828k used, 1352324k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 120120k cached
PID VIRT RES SHR %CPU %MEM TIME+ COMMAND
4366 500m 121m 21m 198 5.9 6:24.45 /opt/mono-3.2/bin/mono
/opt/mono-3.2/lib/mono/4.5/fastcgi- ....
Обновить
рекомендует использовать одинаковое количество потоков в nginx и на сервере fastcgi.
Я использую конфигурацию по умолчанию nginx и моно fastcgi сервера, где оба, вероятно, позволяют 1024 потоков.
- Будет разрешать моно на самом деле меньше потоков. Может быть, это вызывает проблему, сервер fastcgi mono очень старый?
- Может ли добавление / мультиплексирование к серверу fastcgi mono это исправить?
- Разумно ли уменьшить количество потоков для этого не очень мощного VPS-сервера выше?
- Есть ли какие-то моно настройки, которые вызывают сбой?
- В файл журнала fastcgi ничего не пишется, как это диагностировать?
Дополнительная информация об этом размещена в https://stackru.com/questions/20512978/how-to-limit-mono-197-cpu-usage-in-mono-fastcgi-server