apache和mysql连接性能优化
上一篇 /
下一篇 2011-12-19 12:53:47
/ 个人分类:服务器运维相关
一、关于apache
1、首先,在页面访问变慢情况发生时,使用 top 命令查看了服务器的负载情况,发现负载并不高,初步估计不是程序的问题。
2、然后,查看了线程中的 httpd 的数量, ps -aux | grep httpd | wc -l 发现,线程数已经达到了 apache 设置的最大值。由此断定是网站访问人数过多造成了访问过慢。
3、为了验证,查看了连接数和当前的连接数,分别是
netstat -ant | grep $ip:80 | wc -l
netstat -ant | grep $ip:80 | grep EST | wc -l
发现果然,连接数特别多,远远超过我们的估计值。
开始修改:
apache配置文件:httpd.conf
默认配置如下:
<IfModule mpm_prefork_module>
StartServers 5 起始进程数
MinSpareServers 5 最小空闲进程数(等待)
MaxSpareServers 10 最大等待进程数
ServerLimit 256 允许最大连接数上线
MaxClients 150 可同时处理的最大请求数
MaxRequestsPerChild 0 每个子进程能够处理的最大请求数,0为无限
</IfModule>
更改配置如下:
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
此更改后,web服务器性能会大大提高,LR测试时,就不会老出现server has shutdown the connecttions或者connect timeout之类的错误了,剩下的就是程序代码优化的问题了
二、关于mysql
另外,数据库比如mysql之类的,还有一个max_connections之类的配置,一般需要打开,使得不会因为数据库的限制导致连接数上不来
MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword
设置新的最大连接数为200:mysql> set GLOBAL max_connections=200
显示当前运行的Query:mysql> show processlist
显示当前状态:mysql> show status
退出客户端:mysql> exit
查看当前最大连接数:mysqladmin -uusername -ppassword variables
ps:增加mysql的连接数对系统消耗其实影响不大
收藏
举报
TAG: