`

网站优化之系统瓶颈查找

阅读更多

http://tech.ddvip.com/2009-05/1241492625117675.html

  网站响应慢了,用户开始埋怨,老大安排你去优化,可是优化如何开始呢。
  优化开始前一定要理清思路,问自己,网站的瓶颈在哪里。
  系统的瓶颈在何方呢?如果你的系统有完善的监控分析系统的话,可以从统计数据和图形上
  看到大致的系统瓶颈所在,但是如果你的系统没有这些数据,你又如何来确定系统的瓶颈呢。
  按照一般的思路,我们对系统进行逻辑功能的划分,如静态服务器,动态服务器,数据库服务器,业务逻辑服务器。分别针对对这些服务器的带宽、内存使用、cpu使用率、磁盘使用情况进行分析,如对于动态服务器而言,其cpu的使用率一般情况下是其瓶颈;而对于静态文件服务器,由于其逻辑简单,但需要传输大量的文件,其出口的带宽很有可能是其瓶颈;对于数据库服务器,cpu和磁盘都有可能是瓶颈。

  我们可以通过如下几个方面来进行查找和排除:

  1 网络带宽
  带宽可能是最直接的一个瓶颈,可以很容易的估计到。
  假如运营商给你提供了10M的带宽,注意带宽的单位是bit,
  如果你的一个页面的大小是10K字节,那么一秒钟的最多的并发量这样计算:
  10*1024/8/10=128
  如果每秒并发超过这个数字,你的带宽就无法接受了。
  或者通过netstat命令来观察一下你的网络收发包的情况,使用netstat -s来观察一些统计 的数据,如果发现等待包队列里总是有大量的包待处理,一方面说明可能你的程序有问题,另一方面说明可能你的并发量太大,系统已经处理不过来了,可能已经开始丢包了。
  按照这个两个思路去检查吧。

  2 CPU
  如果带宽不是问题,又有这么大的并发量,下一个很容易是问题的就是你的cpu了。
  如果你的网站有大量的动态请求,如php操作数据库后再返回,cgi代码逻辑里有大量的排序等耗费cpu的操作,或者是你的cgi程序写的不好,会死循环,这时你的cpu就将成为瓶颈。
  在linux上试试top命令,看看你的机子的负载,通过最右上角的1分钟、5、15分钟采样的平均负载可以看到你的机子在一段时间内的一个负载情况,如果过去15分钟你的机子的负载大于你的cpu的数目*5,说明你的机子很繁忙了,很多进程都需要等待处理了。
  或者vmstat -n 1命令,看看你的cpu idle的时间有多少,等待处理的进程数量有多少,磁盘块的读写有多少。
  如果cpu idle的时间很少,或者等待处理的进程数量很多,说明你的系统比较繁忙。

  3 磁盘操作
  如果你的带宽很大,cpu比较的空闲,接下来的瓶颈很可能是磁盘的io操作了。
  从内存读取数据是相当快的,但是从硬盘读取数据是内存读取数据的50到100倍的时间,使用iostat -dx查看一下你的硬盘操作的情况,如果有大量的block阻塞着等待写入到硬盘,你需要检查一下你的代码,看看是否有大量的日志操作,或者写文件的操作阻塞住了。

  4 业务逻辑服务器响应慢
  如果上述都ok,而且你的cgi又连接到其它的业务逻辑服务器请求数据的情况,你需要检查你与业务逻辑服务器之间的连接是否正常,带宽是否够用,你的业务逻辑服务器的性能如何。

  5 内存不够用
  对于一些大容量缓存的业务服务器,如果缓存过多的内容,淘汰策略不好的话,会导致使用掉过多的内存,从而引起操作系统进行大量的swap交换,进而影响到系统的性能,成为瓶颈。
  通过ipcs -a观看系统的使用的共享内存的情况,如果共享内存使用太多的话,考虑较少一点共享内存的大小。
  使用free来来观察系统的内存使用情况,如果发现空闲的内存空间少,使用top命令,然后ctl+M看看
  那些进程占用了大量的内存,适当关掉一些进程,部署在其它的服务器上。

分享到:
评论

相关推荐

    yahoo网站优化建议.doc

    【Yahoo网站优化建议】 在网站优化领域,Yahoo!的Exceptional Performance团队提出了一系列最佳实践,旨在提高Web性能,尤其对于面试准备和网站开发者来说,这些知识尤为重要。他们通过实验、工具开发和研究,总结...

    酒店网站 asp+access,代码优化

    【酒店网站 ASP+Access 代码优化】是针对使用ASP(Active Server Pages)脚本语言和Access数据库构建的酒店预订系统进行性能提升的一项技术工作。在ASP中,代码优化旨在提高网站运行速度,减少服务器资源消耗,提升...

    Yahoo!团队实践分享:网站性能优化的34条黄金守则

    操作系统和浏览器都有自己的DNS缓存,调整其缓存时间可以减少不必要的查找。减少页面中不同主机名的数量也能降低DNS查找次数。 3. **避免HTTP跳转**:HTTP跳转会增加额外的请求,影响页面加载速度。设计网站时应...

    网络优化源代码

    9. **负载测试与调优**:使用工具如JMeter、ab进行压力测试,找出瓶颈并针对性优化,确保服务器在高负载下依然稳定运行。 10. **监控与日志**:实施全面的网络性能监控,收集并分析日志,有助于及时发现并解决问题...

    ASP网站CMS程序源码——OKPHP 网站管理+论坛系统套装实例开发.zip

    ASP网站内容管理系统(CMS)是基于Active Server Pages(ASP)技术构建的一种用于快速开发网站的框架,它允许非程序员通过图形化的用户界面进行网站内容的管理和发布。在本实例中,我们关注的是"OKPHP",一个开源的...

    邓西网站帮助系统 v2.3_help.zip

    8. **性能优化**:分析系统的性能瓶颈,学习如何优化查询速度、减少加载时间,提高用户体验。 9. **错误处理和日志记录**:了解如何设置适当的错误提示和日志记录,以便于调试和故障排查。 10. **安全性**:学习...

    文章管理系统CMS系统

    6. 集成其他服务:如社交媒体分享、评论系统、SEO优化等功能,增强网站互动性和可发现性。 二、中小型文章管理系统的特性 1. 灵活性:对于中小型规模的网站,系统应具备轻量级和可扩展性,能随着业务增长而逐步...

    asp.net(c#)校园新闻管理系统源码

    9. 测试与优化:进行单元测试和集成测试,确保系统的稳定性和正确性,通过性能测试和负载测试找出并优化性能瓶颈。 【文件名称列表】中的内容: 1. "newsSystem":这是实际的新闻管理系统源代码,可能包含Web应用...

    Mysql性能优化教程

    对于需要快速检索的高频查询,如社区网站中查找与访问者同地区的异性并按最后登录时间排序的场景,合理的索引策略至关重要。通过复合索引(area+sex+lastlogin),可以在一次查找过程中完成按地区和性别过滤及按时间...

    网上购物系统ppt模板

    用户可以利用系统的关键词搜索功能,输入商品名称或描述,进一步精确查找所需商品。 如果用户对某个商品满意,可以选择将其添加到“购物车”,以便于批量购买和结算。购物车功能允许用户随时查看、修改或删除购物车...

    PHP性能优化大全.docx

    PHP性能优化是提升网站或应用程序运行效率的关键步骤,尤其是在处理大量用户请求时。本文主要从四个方面探讨如何优化PHP程序,包括系统调用优化、Apache配置优化、日志处理以及realpath()函数的使用。 首先,针对...

    LR-性能测试中如何定位性能瓶颈.docx

    在IT行业中,性能测试是一项非常重要的任务,它可以帮助我们了解软件系统在压力下的表现,并找出可能存在的性能瓶颈。本文将基于提供的文件标题“LR-性能测试中如何定位性能瓶颈.docx”及其描述来深入探讨如何在性能...

    Log Parser 网站访问统计分析系统

    4. **性能优化**:通过对网站访问日志的分析,Log Parser 可帮助识别性能瓶颈,例如,哪些页面加载慢,或者哪个时间段服务器压力最大,从而指导性能优化策略。 5. **安全审计**:Log Parser 还可用于安全监控,例如...

    MySQL性能优化实践.docx

    首先,MySQL适用于多种场景,如Web网站系统、日志记录系统、数据仓库系统和嵌入式系统。在这些应用场景中,MySQL的性能表现至关重要。 MySQL的架构主要包括服务器层、存储引擎层和客户端库。其中,存储引擎是MySQL...

    各类服务器性能瓶颈分析.docx

    服务器性能瓶颈分析涉及多个方面,包括硬件子系统,如内存、CPU、硬盘和网络。下面是对各类服务器性能瓶颈的详细解析: 1. **葵芳域控制服务器**:这类服务器主要用于网络认证和资源管理,性能瓶颈通常出现在内存、...

    网上人才系统

    系统中存储着海量的招聘信息和求职者的个人简历,借助先进的网络技术和数据库管理系统,求职者可以在任何时间、任何地点通过互联网接入平台,查找和申请自己感兴趣的工作。与此同时,用人单位也可以通过系统发布招聘...

    Android应用性能优化【高清】

    由于提供的部分内容主要为重复的网站链接,这部分内容将不会被纳入知识点的总结之中。 ### Android应用性能优化概述 #### 一、性能优化的重要性 在移动互联网时代,用户对于应用程序的体验要求越来越高。一款优秀...

    反伊网站压力测试

    这有助于识别性能瓶颈和优化点。 2. **并发测试**:模拟多个用户同时访问系统,检查系统处理并发请求的能力。这对于像“反伊”这样的网站尤其重要,因为可能会有大量用户在同一时间访问。 3. **耐久性测试**:长...

    金蝶K3数据库优化

    3. **寻找合适的补丁**:对于已知的性能问题,可以从官方网站或其他技术支持平台查找相关的补丁更新,这是快速解决问题的有效途径。 4. **优化数据库索引**:通过分析SQL Server事件探查器和查询分析器,找出执行...

    高性能网站的开发(开发经验)

    高性能网站的开发是一项综合性的技术实践,涉及到多个层面的技术优化和策略规划。以下是一些关键的知识点,帮助初学者理解和掌握高性能网站开发的关键要素: 1. **用户体验与性能指标**:网站的性能直接影响用户的...

Global site tag (gtag.js) - Google Analytics