У 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
Ответ - «это зависит» - вещи, от которых это может зависеть:
Планируете ли вы использовать PHP в своей среде Apache? В таком случае использование рабочего MPM может быть не для вас. см. эту ссылку поскольку некоторые модули PHP не являются потокобезопасными.
Планируете ли вы выполнять операции, которые могут потребовать блокировки файлов? В таком случае использование рабочего MPM может быть не для вас. Потоки не являются полноценными процессами POSIX и поэтому не обязательно подчиняются операциям блокировки файлов.
Примером этого является версия Subversion <1.5 - в этих версиях использовались библиотеки apr и apr-util с использованием Berkeley DB для выполнения коммитов. Berkeley DB полагается на блокировку, поэтому это может привести к фиксации, которая повредит ваши репозитории.
Главное, что нужно сделать, - это выяснить, что вы пытаетесь сделать со своей службой Apache - как вы пытаетесь обслуживать вещи, как работают внутренние процессы для создания данных, которые будут обслуживаться.
YMMV - но в конечном итоге вам нужно понять архитектуру, лежащую в основе вещей, чтобы сделать истинное суждение об этом. Если вы не понимаете архитектуру, используйте префорк, так как это более безопасный путь.
Если вы используете только потокобезопасные модули (например, mod_php без каких-либо расширений, не связанных с потоками), вам определенно следует использовать MPM worker, поскольку он больше подходит для современных систем (несколько процессов, несколько потоков).