zoukankan      html  css  js  c++  java
  • 系统定位[开发人员须知的一些运维知识] 1 系统瓶颈的定位

    最近研究系统定位,稍微总结一下,以后继承补充:

        第一篇 系统瓶颈的定位

        目标:

        明确linux系统的瓶颈所在,以及快速定位程序的问题

        场景:

        人物:小程和小维

        小维:过去看看,你的程序跑满CPU了,当初系统load average很高。

        小程:嗯,是喔。是不是JVM配的太小啦,加大点啊,难道这台机器要加内存呢?

        分析:

        相信很多友人都试过自己的程序把系统跑到满负载,怎么解决?最简单的方法应当就是加大内存了吧。

        真的能解决吗,我们看看下面准确的分析方法。

    top - 16:44:01 up 1277 days, 20:51,  1 user,  load average: 0.00, 0.00, 0.00
    Tasks: 214 total,   1 running, 213 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.6%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem: 1035136k total, 1016708k used, 18428k free, 73884k buffersSwap: 2076208k total, 1038104k used, 1038104k free, 112100k cached

        下面是top命令出来结果,里头有个很主要的指标是load average,它的含义是系统中处于运行状态的进程的队列长度。

        它一定程度反应了系统忙的程度,数值越大,表现系统越忙,用逗号分开的三个数值表现是最近1分钟,5分钟,15分钟的平均数。

        每日一道理
    那蝴蝶花依然花开花落,而我心中的蝴蝶早已化作雄鹰飞向了广阔的蓝天。

        系统变忙,绝大多数load average都是变高的,但是这个变高只是表现排队等待CPU处置的进程队列变长,但是为什么会变长?

        
    这就要看其他系统参数来肯定。

        
    我简单把系统资源粗略的分成3大类:CPU,内存,IO。
    还是通过下面的top命令结果,我们注意以下这句

        

    Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.6%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st

        具体每一个数值的含义我就不一一列出来,因为就算把那么多的含义列出来,读者真正记得的也只是自己想晓得的那几个,所以我这里就只说须要晓得的那个。

        我们判断IO是不是有瓶颈一般看wa就能够了,如果这个数字长时间达到50+的话,那么证明系统的IO已负荷过大,因为下面罗列的资源3大类来讲,IO是最容易瓶颈的,所以有经验的运维人员一般是排查IO是不是有问题。

        假如这一步就肯定是IO问题了,下面怎么继承呢?

        IO包含两方面:磁盘和网络两大块,磁盘可以用iostat这个工具来判断,网络可以用ifconfig和netstat来判断,具体这里就不展开了。

        接下面,假如IO没问题,那就先回归考察内存吧。

        我们的场景是java程序,java程序一个很主要的观点是JVM。

        

        准备吃饭了,先搁笔。。。有想看下去的友人,留个言,起码让我晓得这个话题值不值得写下去,谢谢大家了。

    文章结束给大家分享下程序员的一些笑话语录: AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

    --------------------------------- 原创文章 By
    系统和定位
    ---------------------------------

  • 相关阅读:
    equals比较对象
    解决打包时出现的Failed to verify bitcode
    苹果的MDM简介
    unable to boot the simulator,无法启动模拟器已解决
    利用NSCalendar类实现日期的比较
    服务器开启https协议
    解决NSTimer存在的内存泄漏的问题
    ipad和iphone的适配
    集成shareSDK错误总结(新浪微博)
    AFN解析器里的坑
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3100756.html
Copyright © 2011-2022 走看看