网站优化之系统瓶颈查找

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看看
  那些进程占用了大量的内存,适当关掉一些进程,部署在其它的服务器上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值