这目前还是一个悬而未决的问题。
apache的版本是2.4.6,数据库是mariadb。在centos7上,以yum安装的。
因为做投票系统,所以并发数很高,登陆不上去。而且数据库连接过多报错。
更改数据库最大连接数。
show variables like '%max_connections%';
set global max_connections=1000;
数据库的问题解决了。
后台查看连接数
ps aux | grep httpd | wc -l
连接数是
258
查看mpm加载情况
httpd -M | grep mpm
httpd -V
发现加载的是prefork的mpm。
vi /usr/share/doc/httpd-2.4.6/httpd-mpm.conf
调整prefork模块下的MaxRequestWorkers参数,重启服务器,但是连接数仍然是258。没有效果。
vi /etc/httpd/conf.modules.d/00-mpm.conf
注释掉加载prefork的那一行,开启worker的mpm。
重启服务器
systemctl restart httpd
压力测试apache连接
ab -k -r -n 1000000 -c 512 'http://localhost/index.html'
返回的值在18以下。而且页面也能访问了。
遗留问题有3个。
第一,prefork的参数调整了,没有效果,是调整方法错误,还是调整的配置文件有错误?
第二,worker到底能承受多大的压力?
第三,worker的参数在httpd-mpm.conf中调整是不是有效?
星期一, 06/18/2018 - 12:40 — 杨超