网站没什么访问量,服务器 CPU 却经常会出现 100%,查看服务器带宽也是正常的,那为何 CPU 为什么会出现 100% 呢?
经过排查发现来自网站的数据库请求并发非常高,连接中的经常达 200+,也就是这导致了服务器一但有了稍微高一点的访问量,就会出现 CPU100%% 的情况。
找到问题后解决起来就容易了,就是要合理分配资源。
解决方法:
1. 进入软件商店,找到 mysql 数据库,进入设置。
2. 找到性能调整,根据自己的服务器配置选择相应的优化方案,比如我的是 4G 内存的,那么就选 2 -4G,可以选小的方案,但不要选大的,因为这样只会让数据库保持连接超过你服务器的承受范围,影响服务器性能。
选择完保存并重启数据库。
3. 找到使用的 PHP 版本,点击 PHP 设置——性能调整。网站如果每天只有 2000+IP 访问量的,建议选 50 或者 100 并发。
这里写的并发是让你的服务器一但达到这么多并发了,系统会自动清除掉进程,达到服务器优化目的,所以不是设置越大越好,因为一但你并发达 56 百的时候,系统却没有清除进程,一般服务器是受不住的,会出现卡慢设置打不开的状态,所以选择合适自己服务器配置的优化状态很重要。
设置保存后重启 PHP。
通过一周的观察没有再出现卡慢的情况了,CPU 也不会跳 100% 了。
以上都是在非被攻击的情况下设置有效,如果你是被人 CC 攻击的,那么还是给自己弄个高防 CDN 吧。