服务器 CPU 占用高怎么解决?PHP+MySQL 终极优化方案

一、前言

很多搭建网站的云服务器,经常出现 CPU 占用飙升、服务器负载过高、网站卡顿、打不开等问题。大部分情况不是配置不够,而是 PHP 未做限制、MySQL 慢查询拖垮、没开启缓存 导致。

本文整理一套可直接落地的 PHP + MySQL 服务器终极优化方案,新手也能照着一步步操作,彻底解决服务器 CPU 占用过高问题。

二、服务器 CPU 占用高常见原因

  1. PHP-FPM 不限制进程,访问量稍大就无限新建进程,吃满 CPU。
  2. MySQL 存在大量慢查询、全表扫描、缺少索引,数据库独占 50% 以上 CPU。
  3. 未开启 OPcache,每次访问都重新编译 PHP 代码,资源消耗极大。
  4. 恶意爬虫、刷流量、程序死循环、冗余插件拖垮整机性能。
  5. 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 辅助优化

  1. 开启 Gzip 页面压缩,减少传输体积与解析压力。
  2. 静态资源设置浏览器缓存,JS、CSS、图片长期缓存不重复请求。
  3. 限制单 IP 并发连接与请求频率,拦截恶意爬虫、CC 恶意访问。
  4. 关闭不必要的 Nginx 模块,精简负载。

六、常用自查命令

查看实时 CPU 与进程占用:

top

查看服务器整体负载:

uptime

查看 MySQL 当前正在执行的 SQL:

mysql -u root -p -e “SHOW PROCESSLIST;”

七、优化后效果

  1. 服务器 CPU 从 50%~100% 稳定降到 5%~20%。
  2. 服务器负载不再飙高,长期稳定在 0.5~1.5 安全区间。
  3. 网站打开速度明显变快,并发承载能力大幅提升。
  4. 彻底解决 PHP、MySQL 无故卡顿、CPU 爆满、网站打不开问题。

© 版权声明

相关文章

暂无评论

暂无评论...
本站主题由 OneNav 一为主题强力驱动