Не удалось инициализировать хранилище zend_mm [win32]

Стресс-тест, который я запускаю, устанавливает много подключений к моему Apache 2.2, работающему на Windows Server 2008 r2 64-bit одновременно. После ~ 500 (- / + 10) соединений я получаю эту ошибку в error.log Apache:

Не удалось инициализировать хранилище zend_mm [win32]

Я пытался увеличить memory_limit в php.init но не помогло. Почему после увеличения memory_limit все равно происходит сбой на том же количестве соединений?

1

Решение

Эта ошибка означает, что вы исчерпали свой пул памяти. Стресс-тестирование может сделать это. Даже если вы увеличите пределы PHP, у вас будет столько памяти на вашем сервере. Вы сказали, что ваш сервер 32-битный, то есть у вас есть максимум 4 ГБ ОЗУ плюс ваш файл подкачки. 500 соединений могут легко перегружать такой маленький сервер.

1

Другие решения

Итак, в конце концов выяснилось, что если бы число ThreadsPerChild в httpd-mpm.conf который был:

<IfModule mpm_winnt_module>
ThreadsPerChild      1500
MaxRequestsPerChild    0
</IfModule>

Я изменил это на:

<IfModule mpm_winnt_module>
ThreadsPerChild      64
MaxRequestsPerChild    0
</IfModule>

И это работает нормально.

0

По вопросам рекламы [email protected]