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

использовать prefork или worker в конфигурации apache?

У A есть версия сервера Apache (Apache / 2.2.13), и я хочу использовать модуль MPM. Но я не знаю, что использовать prefork или worker и какие конфигурации мне нужны?

Технические характеристики:

Оперативная память: 4G

Процессор: Intel (R) Xeon (R) CPU E5405 @ 2,00 ГГц

grep -c процессор / proc / cpuinfo 8

максимальный размер на процесс Apache: 23M

Ответ - «это зависит» - вещи, от которых это может зависеть:

  1. Планируете ли вы использовать PHP в своей среде Apache? В таком случае использование рабочего MPM может быть не для вас. см. эту ссылку поскольку некоторые модули PHP не являются потокобезопасными.

  2. Планируете ли вы выполнять операции, которые могут потребовать блокировки файлов? В таком случае использование рабочего MPM может быть не для вас. Потоки не являются полноценными процессами POSIX и поэтому не обязательно подчиняются операциям блокировки файлов.

    Примером этого является версия Subversion <1.5 - в этих версиях использовались библиотеки apr и apr-util с использованием Berkeley DB для выполнения коммитов. Berkeley DB полагается на блокировку, поэтому это может привести к фиксации, которая повредит ваши репозитории.

Главное, что нужно сделать, - это выяснить, что вы пытаетесь сделать со своей службой Apache - как вы пытаетесь обслуживать вещи, как работают внутренние процессы для создания данных, которые будут обслуживаться.

  • Вы просто взаимодействуете со службой Tomcat через mod_proxy или AJP? Обычно можно пойти с работником.
  • Вы работаете с модулями Apache (два примера - SVN и PHP)? В этом случае предварительная вилка может быть безопаснее.
  • Вы используете NFS (не всегда правильно поддерживает блокировку файловой системы)? Опять же, префорк, вероятно, более безопасный вариант.

YMMV - но в конечном итоге вам нужно понять архитектуру, лежащую в основе вещей, чтобы сделать истинное суждение об этом. Если вы не понимаете архитектуру, используйте префорк, так как это более безопасный путь.

Если вы используете только потокобезопасные модули (например, mod_php без каких-либо расширений, не связанных с потоками), вам определенно следует использовать MPM worker, поскольку он больше подходит для современных систем (несколько процессов, несколько потоков).