Как ограничить использование процессора 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- ....

Обновить

Ответьте в Bad gateway 502 после небольшого нагрузочного теста на fastcgi-mono-server через nginx и ServiceStack

рекомендует использовать одинаковое количество потоков в 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

0 ответов

Другие вопросы по тегам