linux – 从RHEL 5.6迁移到6.1后降低了httpd性能

我们最近用RHEL 6.1替换了RHEL 5.6 Web服务器.对于这两种环境,已使用(stock)Redhat发布的Apache httpd(即yum install httpd).服务器正在提供 PHP内容并且正忙(每分钟提供大约2500-4000页请求).两台服务器的规格在内存,存储和网络连接方面完全相同.我们看到的是RHEL 6.1盒子上的负载平均值明显更高 – 其中负载平均值(有时)峰值超过40(所有httpd进程)导致站点性能显着下降.我们已经监控RHEL 5.6环境,并且负载平均值不超过大约5个并发httpds.我们如何调查此问题?请记住,这是一个生产环境,但我们可以通过在5.6和6.1服务器之间切换来比较“苹果与苹果”.

解决方法

您每分钟2500 – 4000个请求转换为每秒40-60个请求.这种负载几乎不需要内核级别调整,但更可能是您的Apache或PHP设置有问题.一些典型的原因包括

> httpd.conf中的Long TimeOut值
>在httpd.conf中保持KeepAlive和/或长KeepAliveTimeOut值(可能导致额外的httpd进程)
>加载了一些不必要的httpd模块
>加载了一些不必要的PHP模块
>配置错误的memcached设置(如果使用)
>数据库连接/配置问题

您需要弄清楚与旧服务器相比有什么不同.您是否将配置值从旧服务器复制到新服务器?旧的服务器多年前是否经过精心调校,您忘记了一些重要的事情?

Apache的服务器状态页面向您展示了什么?

如果其他一切都失败了,你总是可以使用PHP的XDebug模块.这意味着您在服务器上执行页面加载,并让XDebug为您生成Valgrind兼容报告.然后,您可以使用KCacheGrind或其他分析器分析该文件,并查看宝贵的cpu时间消耗的位置.这可以让你知道什么是错的.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...