最近在调试阿里云199元/年的ECS,说是说2核心4G内存,实际才2核3.5G内存的乞丐配置。
装了宝塔+Nginx1.26+PHP8.2+MariaDB10.6+Redis7.x,跑个日IP5000的WordPress站点,结果CPU天天100%蹦迪!这哪是服务器啊,根本是电暖气!今天把完整优化过程分享出来,SSH手把手操作,亲测CPU从满血降到50%以下。
一、先揪出吃CPU的元凶(SSH诊断篇)
连上SSH,用这些命令找出瓶颈:
# 实时监控CPU杀手 top -c # 查看进程资源占用(按CPU排序) htop # 分析PHP-FPM进程状态 sudo bt 22 # 宝塔查看PHP日志 sudo grep -i 'cpu' /www/server/php/82/var/log/php-fpm.log # 数据库进程诊断 mysqladmin -u root -p processlist
通常会发现:PHP-FPM进程疯狂创建、MySQL查询阻塞、Nginx处理静态资源吃力
二、暴力优化Nginx配置(SSH操作版)
# 编辑Nginx配置文件 sudo nano /www/server/nginx/conf/nginx.conf # 在http区块加入这些参数: gzip on; # 开启压缩 gzip_min_length 1k; gzip_types text/plain application/javascript application/x-javascript text/css; # 静态资源缓存(加到server区块) location ~* \.(jpg|jpeg|gif|png|js|css)$ { expires 30d; add_header Cache-Control "public"; } # 限制超时时间(预防进程卡死) keepalive_timeout 30; client_header_timeout 15; client_body_timeout 15;
致命细节:宝塔默认不开启gzip压缩,5000IP下能省30%带宽!
三、PHP-FPM进程调优(根治CPU飙升)
# 修改PHP-FPM配置 sudo nano /www/server/php/82/etc/php-fpm.conf # 关键参数调整(2核3.5G内存建议值): pm = dynamic pm.max_children = 30 # 原值50+的直接砍半! pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10 pm.max_requests = 500 # 预防内存泄漏 # 调整PHP执行超时(避免卡死进程) request_terminate_timeout = 60
血泪教训:宝塔默认pm.max_children=50,对2G内存机器就是自杀!
四、MariaDB数据库加速(SSH操作)
# 优化my.cnf配置 sudo nano /etc/my.cnf # 在[mysqld]区块加入: innodb_buffer_pool_size = 1G # 核心参数!设为内存的1/3 query_cache_size = 64M thread_cache_size = 16 max_connections = 50 # 默认100会导致CPU爆满 skip-name-resolve # 禁用反向解析 log_queries_not_using_indexes = 1 # 记录无索引查询
重启数据库:sudo systemctl restart mariadb
五、Redis缓存终极加速
# 安装Redis扩展(宝塔已装可跳过) sudo pecl install redis # WordPress配置wp-config.php添加: define('WP_REDIS_HOST', '127.0.0.1'); define('WP_REDIS_PORT', '6379'); define('WP_CACHE_KEY_SALT', '你的域名');
搭配插件:Redis Object Cache
六、WordPress核弹级优化(SSH操作)
# 禁用XML-RPC(防暴力攻击) sudo nano /www/wwwroot/你的站点/.htaccess # 文件末尾添加: <Files xmlrpc.php> order deny,allow deny from all </Files> # 清理无用插件(CPU大户) cd /www/wwwroot/你的站点/wp-content/plugins rm -rf hello.php # 示例删除默认插件
必装插件:WP Super Cache(生成静态页)、Query Monitor(监控慢查询)
七、系统级暴力优化(压轴操作)
# 开启Zswap内存压缩(相当于白嫖内存) sudo nano /etc/default/grub # 找到GRUB_CMDLINE_LINUX行添加: zswap.enabled=1 zswap.compressor=lz4 # 更新grub并重启 sudo update-grub sudo reboot # 禁用非必要服务(宝塔默认很多用不到) sudo systemctl stop postfix # 示例停用邮件服务 sudo systemctl disable postfix
最终效果实测
优化前:CPU持续100%,后台卡成PPT
优化后:高峰CPU 40%-55%,页面加载<1s
避坑提示:阿里云突发性能实例要用sudo apt install cpufrequtils
监控CPU积分,避免积分耗尽降频!
总结
2核3.5G服务器跑5000IP的WordPress,关键在暴力压制资源占用:砍PHP进程数、控MySQL连接数、开内存压缩、删无用插件。按本教程操作后,CPU直接腰斩!
没有回复内容