Apache和Mysql的并发配置
2015-06-07 11:13
696 查看
在测试页面并发压力的时候,并发到80以后,响应速度急剧下降,CPU占用率急剧上升。经分析,是Apache并发数和Mysql并发数匹配问题。
Mysql并发瓶颈
Mysql的连接数到达150以上的时候,服务器4核cpu占有率会急增,性能会急剧下降。Apache并发80的情况下,mysql连接数基本上到了配置的满额200(max-connections=200)。
Apache与mysql的并发关系
Apache最大并发数配置是600,大于mysql最大并发数200,每个apache请求要对应一个mysql连接,而Apache的并发能力要远大于mysql服务器的并发能力。高并发情况下,mysql的查询还没有返回结果,但下一次的apache请求已经到了,堆积效果就是mysql都是满额并发运行,可能导致连接mysql错误:“too
many connections…”。
Apache做Mysql的连接池
从上面分析可以看出, mysql_pconnect连接Mysql,但没有控制和管理mysql连接数,可能导致Mysql服务器忙死。只要有连接池,就可以解决问题。
利用apache做mysql的连接池,即控制apache的并发数。apache配置最大并发数(如20)小于mysql最大连接数。当并发过大的时候,就自动利用apache的队列来达到连接池的目的。虽然牺牲了apache性能,但保证了业务的稳定性和安全性,也不会导致Mysql服务器忙死。
apache最大并发数配置的一个缺陷是:无法配置虚拟主机的并发数,只能配置全局并发数。
Mysql并发瓶颈
Mysql的连接数到达150以上的时候,服务器4核cpu占有率会急增,性能会急剧下降。Apache并发80的情况下,mysql连接数基本上到了配置的满额200(max-connections=200)。
Apache与mysql的并发关系
Apache最大并发数配置是600,大于mysql最大并发数200,每个apache请求要对应一个mysql连接,而Apache的并发能力要远大于mysql服务器的并发能力。高并发情况下,mysql的查询还没有返回结果,但下一次的apache请求已经到了,堆积效果就是mysql都是满额并发运行,可能导致连接mysql错误:“too
many connections…”。
Apache做Mysql的连接池
从上面分析可以看出, mysql_pconnect连接Mysql,但没有控制和管理mysql连接数,可能导致Mysql服务器忙死。只要有连接池,就可以解决问题。
利用apache做mysql的连接池,即控制apache的并发数。apache配置最大并发数(如20)小于mysql最大连接数。当并发过大的时候,就自动利用apache的队列来达到连接池的目的。虽然牺牲了apache性能,但保证了业务的稳定性和安全性,也不会导致Mysql服务器忙死。
apache最大并发数配置的一个缺陷是:无法配置虚拟主机的并发数,只能配置全局并发数。
相关文章推荐
- linux下的apache配置文件详解
- Apache Sqoop:连接 DB2 和 Hadoop 的桥梁
- 在apache上报错“The _imaging C module is not installed”
- Android中Apache包介绍
- apache配置php+多站点+多目录
- centOS查看apache版本的命令
- 在Apache服务器上利用Varnish优化移动端访问的方法
- Apache内容生成器3
- Apache内容生成器2
- Apache内容生成器 (1)
- 在Apache上隐藏服务器签名的方法
- myBatis org.apache.ibatis.reflection.ReflectionException
- apache commons-io相关介绍-IOUtils类
- apache commons-io相关介绍-DirectoryWalker类
- apache commons-io相关介绍-FileUtils类
- [note]配置apache 2.2+ php 5.4
- Apache Windows下关闭启动以及修改服务端口
- Apache与php在Windows下配置安装
- Spring MVC 中Apache Shiro 框架的使用步骤
- apache commons-io相关介绍-monitor包