一、前言
很多搭建网站的云服务器,经常出现 CPU 占用飙升、服务器负载过高、网站卡顿、打不开等问题。大部分情况不是配置不够,而是 PHP 未做限制、MySQL 慢查询拖垮、没开启缓存 导致。
本文整理一套可直接落地的 PHP + MySQL 服务器终极优化方案,新手也能照着一步步操作,彻底解决服务器 CPU 占用过高问题。
二、服务器 CPU 占用高常见原因
- PHP-FPM 不限制进程,访问量稍大就无限新建进程,吃满 CPU。
- MySQL 存在大量慢查询、全表扫描、缺少索引,数据库独占 50% 以上 CPU。
- 未开启 OPcache,每次访问都重新编译 PHP 代码,资源消耗极大。
- 恶意爬虫、刷流量、程序死循环、冗余插件拖垮整机性能。
- MySQL 默认配置保守,没根据服务器内存做定制优化。
三、PHP 端优化设置(快速降低 CPU)
1、php.ini 基础参数优化
修改 PHP 配置文件,限制脚本执行时间与内存,防止单个程序卡死服务器:
max_execution_time = 60
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
2、禁用高危耗资源函数
找到 disable_functions,粘贴如下:
disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
3、开启 OPcache(必开,性能直接翻倍)
在 php.ini 最底部添加以下配置,大幅减少 PHP 重复编译,降低 CPU 消耗:
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=50
opcache.max_accelerated_files=100000
opcache.revalidate_freq=60
opcache.validate_timestamps=1
opcache.save_comments=1
opcache.fast_shutdown=1
保存配置,重启 PHP 服务生效。
4、PHP-FPM 进程限制(8G 服务器最佳配置)
宝塔面板 → 对应 PHP 版本 → 性能调整,按下面设置:
运行模式:静态模式
最大进程数:20
起始进程数:5
空闲保留进程数:5
作用:固定 PHP 进程数量,不会无限爆发,从根源杜绝 CPU 瞬间跑满。
四、MySQL 终极优化方案
1、临时急救方案
如果当前 MySQL 已经占用 CPU 很高,直接重启清空卡死进程与慢查询:
/etc/init.d/mysql restart
2、my.cnf 配置优化(8G 云服务器专用)
编辑 MySQL 配置文件,在 [mysqld] 节点下加入:
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2
max_connections = 300
wait_timeout = 60
interactive_timeout = 60
保存后重启 MySQL,内存与 CPU 占用会明显下降。
3、开启慢查询日志,定位问题源头
登录 MySQL 执行:
set global slow_query_log = ON;
set global long_query_time = 1;
开启后,所有执行超过 1 秒的 SQL 都会被记录,后续针对慢查询加索引、优化语句,彻底根治反复高 CPU。
五、Nginx 辅助优化
- 开启 Gzip 页面压缩,减少传输体积与解析压力。
- 静态资源设置浏览器缓存,JS、CSS、图片长期缓存不重复请求。
- 限制单 IP 并发连接与请求频率,拦截恶意爬虫、CC 恶意访问。
- 关闭不必要的 Nginx 模块,精简负载。
六、常用自查命令
查看实时 CPU 与进程占用:
top
查看服务器整体负载:
uptime
查看 MySQL 当前正在执行的 SQL:
mysql -u root -p -e “SHOW PROCESSLIST;”
七、优化后效果
- 服务器 CPU 从 50%~100% 稳定降到 5%~20%。
- 服务器负载不再飙高,长期稳定在 0.5~1.5 安全区间。
- 网站打开速度明显变快,并发承载能力大幅提升。
- 彻底解决 PHP、MySQL 无故卡顿、CPU 爆满、网站打不开问题。