在 CentOS 上搭建的 LAMP(Linux + Apache + MySQL + PHP) 环境访问缓慢,原因可能涉及系统、网络、服务配置、代码等多个层面。下面按常见原因 → 排查方法 → 解决建议给你系统梳理一下。
top 中 httpd / mysqld 占用高top
free -h
iostat -x 1
CentOS 默认可能是 prefork 模式,连接数低。
httpd -V | grep MPM
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 2000
</IfModule>
worker 或 event MPMKeepAlive On
KeepAliveTimeout 5
过长会占用连接,过短会增加握手。
SHOW PROCESSLIST;
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1
SELECT */etc/my.cnf 示例(小内存):
innodb_buffer_pool_size = 256M
max_connections = 100
大内存可提高到 50%~70% 物理内存
PHP 每次都重新解析代码,非常慢。
yum install php-opcache
opcache.enable=1
opcache.memory_consumption=128
解决:
Apache 默认反向解析客户端 IP
HostnameLookups Off
解决:
mod_deflate
getenforce
导致 SSL、日志异常
date
timedatectl
✅ 用浏览器开发者工具看 哪一步慢(TTFB?下载?)
✅ top 看 CPU / 内存
✅ SHOW PROCESSLIST 看 MySQL
✅ 是否开 OPcache
✅ Apache 并发配置
✅ 是否有外部请求
如果你愿意,可以把下面信息发我,我可以精准定位:
top 输出我可以直接帮你给一套最优 LAMP 调优配置。