帮助中心 >  技术知识库 >  数据库 >  相关技术支持 >  如何分析网站打开太慢可能性及排查

如何分析网站打开太慢可能性及排查

2016-12-08 18:06:28 7225

一、网络问题

1、临时性

检查:ping, mtr,dig,dig+trace 等命令,检查网络状况,DNS

解决:联系机房或视具体情况而定

eg:http://www.landui.com/ 查看各地响应时间

2、网络不同或距离太远

检查:客户端和机房所在网络情况

解决:双线机房或分布式部署,动态DNS,需要考虑成本

3、资源加载慢

检查:chrome控制台

解决:CDN,合并请求,压缩页面代码,多域名请求(http协议中有对浏览器并发请求连接数的限制,IE10,火狐 chrome6)等

二、前端问题

1、浏览器太烂

2、页面设计不佳

检查:浏览器解析时间,是否DOM节点过多,JS有问题等

解决:优化页面代码

三、服务端问题

1、服务器状态

检查:负载,CPU, 网络,内存,磁盘空间等使用情况,日志切割

如果单台服务器性能受限,考虑调整为分布式架构,如nginx转发,DB分库分表等

2PHP响应慢

Xdebug,Webgrind等调试工具调试源码

检查webserver日志中的响应时间

如果服务器整体负载不高,但PHP的数据返回时间过长,在PHP代码中分段输出处理时间

如果是高访问量的在线调试,一般选取一定比例记录日志,防止日志过多带来的额外系统开销

调试指导思想:逐步缩小范围,定位、优化

平常开发原则:

编写代码注重效率,尽可能占用更少的资源

缓存复杂和耗时运算的结果

apc或者xcache等缓存PHPopcode

能异步处理的任务不要马上处理,如发邮件

依据资源情况对FastCGI配置合适的参数

负载均衡器设好阀值,不要无限制的给后端压力

接口api设置过期时间,1秒内等 

3DB响应慢

读取慢

检查:慢查询日志;

show processlist 查看当前DB状态,看哪些请求停留较多

top查看mysql进程的开销

代码中记录SQL和执行时间

解决:

手动执行可疑SQL(注意排除query cache的影响),用explainprofile等工具?析SQL性能

再考虑是否优化索引,或者分库分表,或者增加缓存

写入慢

检查:除读取慢的检查方法外,还有

iostat 检查磁盘IO

查看mysql binlog的写入速率

解决:增加缓存,分库分表,优化索引,从业务逻辑上考虑减少DB操作,合并写入

4、内部网络消耗太大

5、其他

被攻击,webserver进程数受限,甚至内网流量过高等原因,都有可能导致访问缓慢,具体情况具体分析

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: