寻找Linux单机负载瓶颈

服务器性能上不去,是哪里出了问题?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
微博:新浪微博

寻找Linux单机负载瓶颈的更多相关文章

  1. 查看LINUX当前负载

    Linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意一项使用过多,都将导致服务器负载的急剧攀升. [root@ok Desktop]# w 20:41:47 up  2:48, ...

  2. Linux系统负载查询

    查询Linux系统负载情况,一般需要了解三个方面的信息: 1.Linux系统配置.如Linux版本号.CPU.内存.网络.磁盘等: 2.收集系统负载信息的手段.常用的工具包有sysstat和procp ...

  3. Linux系统负载排查

    参考  http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html 在Linux系统中,我们一般使用uptime命 ...

  4. linux 平均负载 load average 的含义【转】

    文章来源: linux 平均负载 load average 的含义 load average 的含义 平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数 ...

  5. Linux单机环境下HDFS伪分布式集群安装操作步骤v1.0

    公司平台的分布式文件系统基于Hadoop HDFS技术构建,为开发人员学习及后续项目中Hadoop HDFS相关操作提供技术参考特编写此文档.本文档描述了Linux单机环境下Hadoop HDFS伪分 ...

  6. Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义

    原文 Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义 缙哥哥发现用了雅黑的探针,在 Linux 的 CPU 状态信息中发现,有“%us.%sy.%ni. ...

  7. linux 系统负载高 如何检查

    1:load Average 1.1:什么是Load?什么是Load Average?    Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a mea ...

  8. linux内存负载分析

    衡量内存负载的一个很重要的指标就是页面置换的频率.当linux系统频繁的对页进行换进换出 的时候,说明物理内存不过,不得不进行频繁的置换页面. 使用vmstat(virtual memory stat ...

  9. linux服务器负载问题排查

    目录 一.CPU和内存问题 top命令 vmstat命令 free命令 二.磁盘问题 iostat命令 iotop命令 du和df命令 三.网络问题 nload命令 nethogs tcpdump 最 ...

随机推荐

  1. Delphi 的各版本定义,用于预编译参数中,避免忘记备忘之

    DELPHI的版本宏: VER80 - Delphi 1 VER90 - Delphi 2 VER100 - Delphi 3 VER120 - Delphi 4 VER130 - Delphi 5 ...

  2. 【python cookbook】【字符串与文本】8.编写多行模式的正则表达式

    问题:用正则表达式对一段文本块做匹配,但是希望在进行匹配时能够跨越多行 解决方案: 1.正则表达式添加对换行符的支持: 2.re.compile()函数一个有用的标记-re.DOTALL使得正则表达式 ...

  3. armv8(aarch64)linux内核中flush_dcache_all函数详细分析【转】

    转自:http://blog.csdn.net/qianlong4526888/article/details/12062809 版权声明:本文为博主原创文章,未经博主允许不得转载. /* *  __ ...

  4. Web API 2 authentication with JWT

    Web API 2 authentication with JWT JSON Web Token (JWT) 使用 AngularJS & NodeJS 实现基于 token 的认证应用

  5. Valid Anagram

    class Solution { public: bool isAnagram(string s, string t) { if(t=="") return s=="&q ...

  6. Extended Data Type Properties [AX 2012]

    Extended Data Type Properties [AX 2012] This topic has not yet been rated - Rate this topic Updated: ...

  7. 字符编码的过滤器Filter(即输入的汉字,能在页面上正常显示,不会出现乱码)

    自定义抽象的 HttpFilter类, 实现自 Filter 接口 package com.lanqiao.javaweb; import java.io.IOException; import ja ...

  8. 会话标识未更新(AppScan扫描结果)

    最近工作要求解决下web的项目的漏洞问题,扫描漏洞是用的AppScan工具,其中此篇文章是关于会话标识未更新问题的.下面就把这块东西分享出来. 原创文章,转载请注明 ----------------- ...

  9. 20150813 Asp.net 关闭子窗体 刷新Tree控件

    主窗体************************************************************************************ using System ...

  10. 敌兵布阵(线段树HDU 1166)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...