温馨提示×

centos lamp为何变慢

小樊
41
2026-10-23 19:43:31
栏目: 智能运维

CentOS 上 LAMP(Linux + Apache + MySQL/MariaDB + PHP)变慢 是很常见的问题,通常不是单一原因,而是多个环节叠加。下面按最常见 → 较少见给你一个系统性的排查思路。


一、最常见原因(80% 问题在这里)

1️⃣ Apache 配置不合理(连接数 / 模式)

现象:并发一高就卡,静态页也慢。

检查:

httpd -V | grep MPM

常见问题:

  • 使用 prefork 但 MaxClients 太小
  • 没开 KeepAlive 或开太久

建议:

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

或改用 event / worker(PHP 用 php-fpm)


2️⃣ PHP 未使用 PHP-FPM(CGI 模式慢)

现象:PHP 页面明显比 HTML 慢。

检查:

php -v
ps aux | grep php-fpm

✅ 推荐方案:

  • Apache + PHP-FPM(CentOS 7+ 强烈建议)

3️⃣ MySQL / MariaDB 性能问题(最常见“假死”原因)

现象:页面卡在数据库查询。

检查慢查询:

SHOW PROCESSLIST;

开启慢查询日志:

slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow.log
long_query_time = 1

常见问题:

  • 没索引
  • 一次查几万条
  • 连接数爆了

查看连接数:

SHOW STATUS LIKE 'Threads_connected';

4️⃣ 磁盘 I/O 瓶颈(CentOS 服务器常忽略)

现象:负载高,但 CPU 不高。

检查:

top
iostat -x 1

常见问题:

  • 机械硬盘
  • MySQL 日志频繁写
  • /tmp 在磁盘上

✅ 建议:

  • /tmp 使用 tmpfs
  • 数据库单独盘

二、系统层面原因

5️⃣ 内存不足 → 开始 Swap

现象:突然变慢,ssh 也卡。

free -m
swapon -s

✅ 解决:

  • 加内存
  • 限制 Apache / MySQL 内存

6️⃣ SELinux / Firewall 影响(较少但存在)

现象:首次访问慢,后续正常。

检查:

getenforce

可临时测试:

setenforce 0

7️⃣ DNS 反向解析(Apache 经典坑)

现象:访问日志慢,页面延迟几秒。

Apache 配置:

HostnameLookups Off

三、CentOS 特有原因

8️⃣ systemd + journald 日志爆炸

journalctl --disk-usage

清理:

journalctl --vacuum-size=200M

9️⃣ CentOS 版本太老(CentOS 6/7)

  • CentOS 6:已 EOL
  • CentOS 7:2024 年停止维护

✅ 建议迁移:

  • Rocky Linux
  • AlmaLinux
  • Ubuntu LTS

四、快速自检清单(30 秒版)

top
free -m
df -h
iostat -x 1
mysqladmin processlist
apachectl -S

五、如果你愿意,我可以更精准帮你

你可以贴出:

  1. CentOS 版本
  2. Apache / PHP / MySQL 版本
  3. 是 突然慢 还是 一直慢
  4. 是 前台慢 还是 后台慢
  5. top 或 htop 截图

我可以直接帮你定位是哪一层的问题。

0 踩