温馨提示×

centos apache为何慢

小樊
46
2026-09-11 21:14:11
栏目: 智能运维

在 CentOS 上 Apache 响应慢 的原因有很多,下面按最常见 → 较少见的顺序给你一个排查清单,基本能覆盖 90% 的情况。


一、最常见原因(先查这些)

1️⃣ DNS 反向解析导致慢

Apache 默认会做 客户端 IP 的反向 DNS 解析。

表现

  • 第一次访问慢
  • 日志里 HostnameLookups 开启

解决

grep HostnameLookups /etc/httpd/conf/httpd.conf

如果是:

HostnameLookups On

改为:

HostnameLookups Off

2️⃣ 防火墙 / SELinux 影响

CentOS 默认 SELinux + firewalld。

检查 SELinux

getenforce

如果是 Enforcing,可临时测试:

setenforce 0

检查防火墙

systemctl status firewalld

3️⃣ Apache 进程/线程不足(并发低)

CentOS 默认使用 prefork 模式,容易卡。

查看当前模式

httpd -V | grep MPM

优化 prefork(示例)

<IfModule mpm_prefork_module>
    StartServers        5
    MinSpareServers     5
    MaxSpareServers     10
    MaxClients          150
    MaxRequestsPerChild 3000
</IfModule>

4️⃣ PHP / 后端慢(非常常见)

如果是 PHP 网站:

  • PHP 执行慢
  • 数据库查询慢
  • 外部 API 调用慢

排查

top

看是不是 php-fpm 或 mysqld 占 CPU。


二、网络 & 系统层面

5️⃣ 带宽 / 网络延迟

ping 你的服务器IP
traceroute 你的服务器IP

6️⃣ 磁盘 IO 慢(云服务器常见)

iostat -x 1

如果 %util 接近 100%,说明磁盘瓶颈。


7️⃣ 内存不足 → 开始用 Swap

free -h

如果有大量 swap 使用:

swapon --show

三、Apache 配置细节

8️⃣ KeepAlive 设置不合理

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

太长会占用连接。


9️⃣ 日志写入慢

  • 日志在慢磁盘
  • 日志太大
du -sh /var/log/httpd

四、快速定位方法(推荐)

✅ 看 Apache 错误日志

tail -f /var/log/httpd/error_log

✅ 看访问日志时间差

tail -f /var/log/httpd/access_log

✅ 用 curl 测响应时间

curl -w "%{time_total}\n" -o /dev/null http://localhost

五、我可以继续帮你精确定位

你可以补充:

  1. CentOS 版本(7?8?Stream?)
  2. Apache 版本
  3. 是 静态页面慢 还是 PHP / 数据库慢
  4. 云服务器还是物理机
  5. 是否用了 php-fpm

我可以直接帮你给一套针对性优化方案。

0 踩