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

Apache: выделите определенное количество серверов для одного сценария с «высоким приоритетом».

У меня есть несколько скриптов, но некоторые из них имеют более высокий приоритет, чем другие:

/var/www/normal-priority/script1.pl
/var/www/normal-priority/script2.pl
/var/www/normal-priority/script3.pl

и

/var/www/high-priority/script1.pl
/var/www/high-priority/script2.pl
/var/www/high-priority/script3.pl

Все работает под мод-perl. Они находятся в отдельных каталогах.

Время от времени сценарии с нормальным приоритетом становятся очень загруженными, и серверы httpd «вытесняют» менее часто называемые высокоприоритетные.

Можно ли выделить n серверов httpd, чтобы они слушали только сценарии с «высоким приоритетом»?

Вы можете использовать директиву RLimitNPROC чтобы ограничить количество процессов, разрешенных для запуска, например каталог. Поскольку вы храните сценарии в отдельных каталогах, это должно работать:

<Directory /var/www/high-priority>
  RLimitNPROC Max
</Directory>

<Directory /var/www/normal-priority>
  RLimitNPROC 4711  # Change this number to something that works for you
</Directory>

Вы также можете установить ограничения для ЦПУ и использование памяти.