颠覆与创新

超态信息插件 Sinfo

不想变成栏目的信息不是好信息

更新时间:2016-05-02
首页 > 帝国cms使用技巧 > 记一次优化网站:负载100%怎么办?

记一次优化网站:负载100%怎么办?

来源:东坡网原创   作者:有故事的人   发布日期:2019-01-24 03:03:45   阅读次数:5837

 经常有站长在我们东坡网的群里问网站cpu100%怎么办,网站速度慢怎么办,一直想写篇文章教大家,但不得空。这几天刚好有一位站长也为此困扰,我帮他优化了一下,效果良好,这里记录一下一下优化过程,给有需要的站长参考。

这位站长的网站基本情况是这样的:服务器上有2个网站,总IP3w,PV约30w,8核16G,带宽不详,宝塔面板,lamp。最近几天网站网站大部分时间处于负载100%情况。

接到任务后,就拿到了服务器的root账号密码,网站后台账号密码。登录网站后台,发现2个网站一个是帝国cms7.2,一个是帝国cms7.5.

一、用top命令查看网站负载情况

发现一个问题:每当cpu100%时,mysqld程序占cpu比较高,而且php-fpm进程数量大幅度增加。另外内存使用不多,有富余。

二、检查一下服务器环境配置

(1)还用的是PHP5.3

这个不能忍,都9012年了,升级到PHP7.1

PHP升级完后网站程序发生问题,ecms7.2的那个站不支持php7,于是给程序打补丁;有个插件在php7下也不能正常运行,出现乱码,修正。

(2)php-fpm的性能配置错误

原来用的是动态,50线程的设置,这个肯定不够。鉴于这台机器16G富余的大内存,调整为静态,500线程

以上2个操作后,持续观察24小时,发现负载100%的情况相较之前有较大幅度减少,但还在难以接受的范围内,继续优化。

三、查看服务器日志

(1)php-fpm的慢日志

打开慢日志slow.log发现,网站使用的一款前台关键性插件,经常性超时。解决方法:使用东坡网的动态缓存插件

(2)mysql的慢日志

此服务器的mysql慢日志没有开启,只能手动开启,然后等待。打开日志后,发现问题

select searchid,keyboard from phome_enewssearch where iskey=0 and classid='7' order by onclick desc limit 4;

update phome_ecms_news set onclick=onclick+1 where id='5635' limit 1;

以上两种语句,经常执行时间超过5秒,再对照时间与面板的负载曲线时间,基本吻合,至此找到问题的关键症结。

分析第一个sql语句,发现这是网站使用了热门搜索词标签导致的,其实这个标签在前台根本没有效果,客户写标签就是错误的,果断在模板里删除这个热门搜索功能

第二个语句,是动态页中的点击统计,这个语句每天执行约30w次,锁表并发不够导致问题,所以在动态页中屏蔽了这个统计,改用其它方法统计点击。

------------------------

至此,网站的负载100%问题解决。

 

插曲:在修改后观察网站负载过程中,有天凌晨负载突然升高,查看网站访问日志,发现有可疑IP段访问网站,防火墙禁用之

 

 

 

 

相关文档
    暂无相关信息
相关插件
    暂无相关信息
联系我们

技术支持:点击这里给我发消息

其它咨询:点击这里给我发消息

微信号:imDP1037,注明东坡网

ECMS互助QQ群:308293433

©2013-2019 DP1037.COM东坡网,致力于帝国cms插件和二次开发,为帝国cms加油! 备案号:粤ICP备14036885号-2

本页采用东坡网【动态页缓存插件】,当前页面缓存时间 2024-10-07 22:14:57
本次重新生成缓存,总耗时 0.0023939609527588 秒