之前一直都是在做B2B产品的外贸网站,最近开始处理偏向B2C的外贸网站,其中有给一家生产工业订制齿轮的工厂做外贸代运营,这块的流量很大,虽然也是工业且面向B2B的,但是很多B2C端的流量也会关联进来,导致网站的访问量瞬时大,出现了CPU 100% 的情况,CPU跑满后 MySQL 就会默认停止服务,导致网站打不开,这给外贸网站维护带来很多麻烦。针对这种外贸网站流量暴增导致MySQL停止的情况,谷推科技整理了两个解决方案供各位参考。
谷推科技给客户配置的网站环境是一台QEMU Virtual CPU version (CPU64-rhel6) * 1 其中配置是1个物理CPU,3个物理核心,3个逻辑核心,这是一台云服务器。对于做外贸的网站来说,这个配置足够了。为了网站的最佳优化,谷推科技给每一位客户都提供独享的服务器,没有采用共享。
两种解决方案如下:
①升级网站服务器的配置,这个是最直接有最快的方案,能用钱快速解决的问题都不算是问题。
②设置MySQL自动重启
通过脚本实现MySQL自动重启,比如让MySQL每隔3分钟进行监护自动重启一次,通过这样的方案,就避免出现MySQL停止服务的情况。
由于我们采用的是宝塔的Linux控制面板,这里只需要在宝塔的后台增加一个自动执行的脚本即可。具体教程如下:
宝塔控制面板 - 计划任务 - Shell脚本 - 任务名称(这里可以写MySQL守护) - 执行周期(N分钟,根据自己的需求可以设置对应的时长,我们设置的是15分钟) - 执行脚本如下
pgrep -x mysqld &> /dev/null if [ $? -ne 0 ];then bash /www/server/panel/script/rememory.sh /etc/init.d/mysqld start fi
对于我们服务的这家客户来说,外贸的产品偏向B2C,流量增加的很明显,原本性能过剩的服务器竟然把CPU跑到了100% ,CPU跑满后 MySQL 就会默认停止服务,导致网站打不开。查询日志后发现,网站的CPU也只是偶尔峰值100%,感觉升级服务器配置增加性能不划算,最终还是选择了方案②增加一个脚本监控,经济环保。
如上图所示,网站的CPU也只是偶尔峰值100%。