(转载)网站瓶颈发现和解决
2014-05-01 17:37
232 查看
网站速度定位
总体思想:
1、找瓶颈法。瓶子的颈部(口子)大小决定了出入量,从而决定了速度。不去改善瓶颈,使劲费力气把瓶子容量扩大,
速度也不会提高。不是什么都去改善就是好的。比如改善带宽,加缓存之类的。但是这些不是目前系统的瓶颈,改善
了也不会发生质的飞跃。所以找到瓶颈所在。
与哲学思想中的:找主要矛盾,解决主要矛盾,问题才会解决的思想类似。放到技术中叫做系统瓶颈。突破系统瓶颈。
找到当前的主要矛盾是重要的。去研究代码,获取几毫秒的性能,不如去看看数据库,干掉一条执行超过1000毫秒的语句。
遇到速度慢的问题,就想到“多多益善”的思维。把该加的先加了:把数据生成文件缓存啊,数据库加索引,硬件方面内存加,带宽加。
这种加,确实有好处,会改善,但没定位到瓶颈。就不会解决主要矛盾的。
系统的某方面瓶颈没有突破,其他带宽,内存再怎么加,做了观察一段时间后,就发现心里很纳闷了:确实是快那么点点了,但怎么还是没感觉到明显的快哦。有时候反而跟以前一样的慢。很郁闷啊。
2、使用排除法查找问题。这样将范围逐步缩小。避免胡乱猜测。胡乱去测验。导致浪费精力。
大体思路:前端(排查是不是带宽问题,图片、js文件加载是否是瓶颈)》》侦测php执行速度(这一步把问题可以更加精准定位到数据库层面去)》》数据库是否为瓶颈
3、以数据或者理论作为支撑。如果靠猜测,以往经验式的判断方式去改善,只会导致做无用功。以统计数据作为支撑比较靠谱。
因为网站运行是动态的,时常速度很快,时常速度稍微慢。今天有人反应昨天慢,等到技术人员去实际操作一下子,发现"速度还挺不错啊",无法还原当时的情况出来。
比如,sql执行时长,php脚本执行速度统计。收集大量在生成环境中统计到的数据。就能很快定位问题所在。
依靠理论作为支撑:比如了解http的请求原理,需要响应,浏览器没有得到服务器的响应(也就是php压根就没执行完毕,所以没到发送html给浏览器这一步),这种情况在浏览器左下角有明显的特点,显示:正在等待响应。
这种一看,大体可以排除网络带宽的原因。这种判断表面看是基于经验式(经验不可靠,因为网站是动态变化的),实际上是基于有理论基础支持的。
执行步骤如下:
第一步,编写脚本统计出php执行时长。通过这一步把每次执行时长记录在文本文件中的方式,分析数据发现,排除了
是带宽的原因。理由为:有些地址的php执行时长到3-4s。需要这个时长才能发html结果给浏览器。可想而知速度。于
是瓶颈不在带宽上。假设:php执行的时长是0.xs级别。那么在浏览器看到需要4秒才能看到页面,那可以排除是php执
行问题。将瓶颈定位在带宽或其他原因上。
第二步,进一步编写脚本,侦测是否为数据库速度问题。
具体步骤如下
1、开启mysql服务器的慢查询日志记录。
2、自己编写脚本,将每条执行的sql用了多长时间,记录到文本文件中去。
总体思想:
1、找瓶颈法。瓶子的颈部(口子)大小决定了出入量,从而决定了速度。不去改善瓶颈,使劲费力气把瓶子容量扩大,
速度也不会提高。不是什么都去改善就是好的。比如改善带宽,加缓存之类的。但是这些不是目前系统的瓶颈,改善
了也不会发生质的飞跃。所以找到瓶颈所在。
与哲学思想中的:找主要矛盾,解决主要矛盾,问题才会解决的思想类似。放到技术中叫做系统瓶颈。突破系统瓶颈。
找到当前的主要矛盾是重要的。去研究代码,获取几毫秒的性能,不如去看看数据库,干掉一条执行超过1000毫秒的语句。
遇到速度慢的问题,就想到“多多益善”的思维。把该加的先加了:把数据生成文件缓存啊,数据库加索引,硬件方面内存加,带宽加。
这种加,确实有好处,会改善,但没定位到瓶颈。就不会解决主要矛盾的。
系统的某方面瓶颈没有突破,其他带宽,内存再怎么加,做了观察一段时间后,就发现心里很纳闷了:确实是快那么点点了,但怎么还是没感觉到明显的快哦。有时候反而跟以前一样的慢。很郁闷啊。
2、使用排除法查找问题。这样将范围逐步缩小。避免胡乱猜测。胡乱去测验。导致浪费精力。
大体思路:前端(排查是不是带宽问题,图片、js文件加载是否是瓶颈)》》侦测php执行速度(这一步把问题可以更加精准定位到数据库层面去)》》数据库是否为瓶颈
3、以数据或者理论作为支撑。如果靠猜测,以往经验式的判断方式去改善,只会导致做无用功。以统计数据作为支撑比较靠谱。
因为网站运行是动态的,时常速度很快,时常速度稍微慢。今天有人反应昨天慢,等到技术人员去实际操作一下子,发现"速度还挺不错啊",无法还原当时的情况出来。
比如,sql执行时长,php脚本执行速度统计。收集大量在生成环境中统计到的数据。就能很快定位问题所在。
依靠理论作为支撑:比如了解http的请求原理,需要响应,浏览器没有得到服务器的响应(也就是php压根就没执行完毕,所以没到发送html给浏览器这一步),这种情况在浏览器左下角有明显的特点,显示:正在等待响应。
这种一看,大体可以排除网络带宽的原因。这种判断表面看是基于经验式(经验不可靠,因为网站是动态变化的),实际上是基于有理论基础支持的。
执行步骤如下:
第一步,编写脚本统计出php执行时长。通过这一步把每次执行时长记录在文本文件中的方式,分析数据发现,排除了
是带宽的原因。理由为:有些地址的php执行时长到3-4s。需要这个时长才能发html结果给浏览器。可想而知速度。于
是瓶颈不在带宽上。假设:php执行的时长是0.xs级别。那么在浏览器看到需要4秒才能看到页面,那可以排除是php执
行问题。将瓶颈定位在带宽或其他原因上。
第二步,进一步编写脚本,侦测是否为数据库速度问题。
具体步骤如下
1、开启mysql服务器的慢查询日志记录。
2、自己编写脚本,将每条执行的sql用了多长时间,记录到文本文件中去。
相关文章推荐
- 解决.VS2012+EF5.0开发的网站在window server2003上无法部署的问题(转载)
- 【转载】ASP.NET网站问题:删除或重命名站点下的任意目录导致站点重启(Session丢失)及解决办法
- poi读取Excel时日期为数字 的解决方法 转载 2017年12月14日 10:31:14 标签:poi /excel /java 19 在使用poi解析Excel文件时,会发现,表格中的日期解析出
- 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)
- 解决网站遭CC攻击(转载)
- 【转载】IOS性能调优系列:使用Time Profiler发现性能瓶颈
- [转载]虚拟机磁盘空间已满的发现和解决
- MyEclipse官方网站无法访问的解决方法(转载)
- [转载] 关于大型网站技术演进的思考(一)--存储的瓶颈
- IE浏览器下同一网页多图片显示的瓶颈与优化(转载,网站图片方面优化一篇堪称经典的文章)
- 发现好的网站,解决了一个技术问题
- 【转载】web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示的解决办法
- log4j:启动tomcat发现 log4j:WARN No appenders could be found for logger 解决办法 转载
- 最近在编写一些bat工具时,发现自己对lua的io和正则表达式使用没什么了解,网络上转载解决问题后的文章。
- 今天,突然发现,我的一篇文章被很多网站相继转载。
- 网站架构--分而治之解决网站瓶颈
- 归纳整理一些工作学习中发现的不错的网站、博客地址等(转载)
- 网站防止转载,复制的解决办法