温馨提示×

centos lamp为何访问缓慢

小樊
45
2026-10-03 07:11:34
栏目: 智能运维

在 CentOS 上搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 后访问缓慢,原因通常集中在系统配置、服务参数、网络、资源瓶颈等方面。下面按常见原因 → 排查方法 → 解决建议系统性说明。


一、Apache 配置问题(最常见)

1. 使用了 prefork 且进程数不足

CentOS 默认 Apache 多用 prefork:

httpd -V | grep -i mpm

现象:并发稍高就卡死。

解决: 编辑:

vim /etc/httpd/conf.modules.d/00-mpm.conf

示例(prefork):

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 3000

或切换为 event(推荐):

LoadModule mpm_event_module modules/mod_mpm_event.so

重启:

systemctl restart httpd

2. KeepAlive 设置不当

vim /etc/httpd/conf/httpd.conf

建议:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

二、PHP 性能问题

1. 未使用 OPcache

PHP 每次请求都重新编译,极慢。

检查:

php -m | grep opcache

安装:

yum install php-opcache -y

配置 /etc/php.d/opcache.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.revalidate_freq=60

2. 使用了 mod_php 而非 php-fpm

CentOS 7+ 推荐:

yum install php-fpm
systemctl enable php-fpm

Apache 使用 proxy_fcgi 模式。


三、MySQL / MariaDB 慢(非常常见)

1. 查询慢或无索引

开启慢查询日志:

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

分析:

mysqldumpslow -s t /var/log/mariadb/slow.log

2. 最大连接数过小

show variables like 'max_connections';

修改:

[mysqld]
max_connections = 200

3. 未做基础优化

示例:

innodb_buffer_pool_size = 512M
query_cache_size = 0

四、DNS 解析导致 Apache 卡顿(经典坑)

Apache 默认做反向 DNS:

HostnameLookups Off

否则每请求一次卡几百毫秒。


五、SELinux / 防火墙影响

SELinux

临时测试:

setenforce 0

永久:

vim /etc/selinux/config
SELINUX=disabled

防火墙

只开放必要端口:

firewall-cmd --list-all

六、磁盘 / IO 瓶颈

1. 磁盘慢

iostat -x 1

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


2. 日志写入过多

du -sh /var/log/httpd

七、网络问题

1. 本地访问快,外网慢

  • 带宽不足
  • DNS 解析慢
  • CDN 未使用

2. 云服务器带宽限制

查看:

ethtool eth0

八、快速排查清单(按顺序)

# 1. 看负载
top

# 2. 看 Apache 连接
ss -ant | grep :80 | wc -l

# 3. 看 MySQL
mysqladmin processlist

# 4. 看 PHP
php -v
php -m | grep opcache

# 5. 看日志
tail -f /var/log/httpd/error_log

九、典型“慢但能访问”的原因总结

✅ Apache 进程不够
✅ PHP 没开 OPcache
✅ MySQL 没索引
✅ DNS 反向解析
✅ 云服务器带宽小
✅ 用了 HDD 而非 SSD


如果你愿意,可以告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Apache / PHP / MySQL 版本
  • 是本地慢还是外网慢
  • 是否 WordPress / Laravel / 自建程序

我可以直接给你针对性优化配置。

0 踩