zoukankan      html  css  js  c++  java
  • 寻找Linux单机负载瓶颈

    寻找Linux单机负载瓶颈

    image

    服务器性能上不去,是哪里出了问题?IO还是CPU?只有找到瓶颈点,才能对症下药;
    如何寻找Linux单机负载瓶颈,遵循的原则是不要推测,我们要通过测量的数据说话;

    负载分两类:
    1.CPU负载;
    2.IO负载;

    排查流程

    1.查看平均负载(top/uptime命令)
    2.确认CPU、IO有无瓶颈;(使用 sar vmstat)
    3.CPU负载过高时寻找流程:
    4.IO负载过高时寻找流程;

    查看平均负载

    先通过top命令查看服务器是否出现负载过重的状况,之后,再具体使用工具来分析出是CPU负载过高还是IO负载过高;
    比如,使用sar工具查看CPU使用率和IO等待率(sar的具体使用教程参考大CC的这篇文章:
    http://blog.me115.com/2013/12/468
    top的结果:
    load average:0.7, 0.66,0.59
    平均负载分别表明从左到右1分钟、5分钟、15分钟内,单位时间内处于等待状态的任务数;
    (等待 的意思 表明在等待cpu、或者等待IO)

    CPU负载过高时的寻找流程

    使用top、sar确认目标程序;
    再通过ps查看进程状态和CPU使用时间等;
    进一步寻找:通过strace 或 oprofile命令;

    IO负载过高的寻找流程

    IO负载过高,多半是程序发出的IO请求过多导致负载过高,或是发生页面交互导致频繁访问磁盘;
    应通过sar或vmstat确认交换区状态,以找出原因;
    如果是发生页面交互的情况,通过以下步骤调查:
    1.使用ps工具确认是否有进程消耗了大量内存;
    2.如果由于程序故障造成内存消息过大,应改进程序;
    3.内存不足则增加内存;

    如果没有交换发生,而且磁盘IO频繁,可能是用于缓存的内存不足;
    1.考虑扩大缓存,增加内存;
    2.考虑分散存储

    Posted by: 大CC | 04APR,2014
    博客:blog.me115.com
    微博:新浪微博

  • 相关阅读:
    java 继承(下)
    java继承
    java代码封装与编译
    使用Access-Control-Allow-Origin解决跨域
    java (基本语法)
    ZendStudio如何汉化
    如何让数据库在每天的某一个时刻自动执行某一个存储过程或者某一个sql语句
    百度地图不用密匙也可以使用
    .net在当前日期的基础上加一天
    当你的IIS需要运行ASP网站时,需要这样配置下你的IIS
  • 原文地址:https://www.cnblogs.com/me115/p/3643778.html
Copyright © 2011-2022 走看看