寻找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. android 项目学习随笔十八(三级缓存)

    xUtils的BitmapUtils模块用的就是三级缓存,在项目中尽量还是应用BitmapUtils 三级缓存(机制) import com.itheima.zhsh66.R; import andr ...

  2. FireDac 与数据库连接时字符集及对应的字段类型问题

    近日在一个过程调用时发生一个奇怪现象, 异常返回意思是说, 数据的长度是[6], 而字段定义的长度是[3].  分析后认为:  调用过程你不涉及到对返回数据集的字段手动定义问题, 出现这个问题应是两边 ...

  3. Delphi中使用@取函数地址的问题(转)

    Delphi中使用@取函数地址的问题   例如以下代码:unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes ...

  4. Linux安装JDK、MyEclipse、MySql

    一.将下载好的 jdk-7u79-linux-x64.tar.gz 复制到要安装的目录 /usr/lib/jdk (注:jdk文件夹自己创建 sudo mkdir jdk)二.进入到目录 /usr/l ...

  5. Web SQL

    HTML5本地存储——Web SQL Database 基于 HTML5 中的 Web SQL Database 来构建应用程序 前端HTML5几种存储方式的总结 <!DOCTYPE HTML& ...

  6. java map 遍历

    转自http://rain-2372.iteye.com/blog/1615615 package com.spring.test_B11_aop1; import java.util.HashMap ...

  7. editPlus,3.7V 注册码

    editPlus,3.7V 注册码: username:linzhihui password:5A2B6-69740-D9CDE-79702-C9CCD

  8. android 比较靠谱的图片压缩

    第一:我们先看下质量压缩方法: private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteAr ...

  9. YTU 3022: 完全二叉树(1)

    原文链接:https://www.dreamwings.cn/ytu3022/2595.html 3022: 完全二叉树(1) 时间限制: 1 Sec  内存限制: 128 MB 提交: 26  解决 ...

  10. YTU 3008: 链串的基本运算

    3008: 链串的基本运算 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 题目描述 编写一个程序,实现链串的各种基本运算,主函数已给出,请补充每一种方法. 1.建立串s ...