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时间消耗的位置.这可以让你知道什么是错的.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...