Apache出现Cannot initialize zend_mm storage [win32]错误的解决办法
编辑: upupw 发布时间: 2015-09-30 15:00:47 来源: UPUPW绿色服务器平台 热度: 9198
Apache是大家经常在服务器中安装的webserver之一,配置Apache时往往有些参数设置不正确会引发很多问题。
今天UPUPW给大家详细解答下Apache错误报告中出现Cannot initialize zend_mm storage [win32]的原因:
知识要点:
1、在win32下单个进程的最大内存限制是1024MB
2、Apache源码中设置的单个线程堆栈是2M
错误分析:
1、如果Apache的线程设置大于或等于512,那么如果连接数达到512把线程都占满的情况下则httpd.exe的工作进程内存占用会达到1024MB最大值
2、Apache如果以isapi的形式加载的PHP则httpd.exe进程还需要留出php的运行内存,否则就会报Cannot initialize zend_mm storage [win32]。
3、PHP的运行内存限制一般为128MB,如果httpd.exe内存占用接近或者达到了1024MB则PHP没有足够的运行内存了。
解决思路:
1、降低Apache的线程数量
2、换64位操作系统用64位Apache获得更大的内存空间
解决方法:
1、打开upupw下Apache/conf/httpd.conf(正常的在httpd-mpm.conf下)
2、查找ThreadsPerChild把参数修改为350(有的教程说调到512以下即可,因为考虑到预留php的内存所以350或者以下更为合适)
3、最后重启下Apache配置即可生效。