linux故障监控处理必备四款监控软件

iotop:查看IO过大的进程。

vmstat:查看故障.

iostat: -x 查看硬盘IO.

nethogs:查看严重占用带宽的进程。CentOS/RHEL下建议先安装上EPEL,再执行:yum install libpcap nethogs 进行安装。

iftop:可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,使用iftop工具查出来是哪些个IP地址在请求主机的带宽资源,找出耗带宽的元凶, 找出耗带宽的IP地址或者段,分析是out方向还是in方向,使用iptables规则来进行控制

1、问题:

最近在做日志的实时同步,上线之前是做过单份线上日志压力测试的,消息队列和客户端、本机都没问题,但是没想到上了第二份日志之后,问题来了:

集群中的某台机器 top 看到负载巨高,集群中的机器硬件配置一样,部署的软件都一样,却单单这一台负载有问题,初步猜测可能硬件有问题了。

同时,我们还需要把负载有异常的罪魁祸首揪出来,到时候从软件、硬件层面分别寻找解决方案。

2、排查:

从 top 中可以看到 load average 偏高,%wa 偏高,%us 很低:

从上图我们大致可以推断 IO 遇到了瓶颈,下面我们可以再用相关的 IO 诊断工具,具体的验证排查下。

PS:如果你对 top 的用法不了解,请参考我去年写的一篇博文:

linux 系统监控、诊断工具之 top 详解

常用组合方式有如下几种:

用vmstat、sar、iostat检测是否是CPU瓶颈 
用free、vmstat检测是否是内存瓶颈 
用iostat、dmesg 检测是否是磁盘I/O瓶颈 
用netstat检测是否是网络带宽瓶颈

2.1 vmstat

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

它的相关字段说明如下:

Procs(进程)
r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: 等待IO的进程数量,也就是处在非中断睡眠状态的进程数,展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了
Memory(内存)
swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
ree: 空闲物理内存大小。
buff: 用作缓冲的内存大小。
cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
Swap
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO(现在的Linux版本块的大小为1kb)
bi: 每秒读取的块数   bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
us: 用户进程执行时间百分比(user time) us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time)  sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa: IO等待时间百分比  wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。   id: 空闲时间百分比

从 vmstat 中可以看到,CPU大部分的时间浪费在等待IO上面,可能是由于大量的磁盘随机访问或者磁盘的带宽所造成的,bi、bo 也都超过 1024k,应该是遇到了IO瓶颈。

2.2 iostat

下面再用更加专业的磁盘 IO 诊断工具来看下相关统计数据。

它的相关字段说明如下:

rrqm/s:    每秒进行 merge 的读操作数目。即 delta(rmerge)/s  wrqm/s:    每秒进行 merge 的写操作数目。即 delta(wmerge)/s  r/s:       每秒完成的读 I/O 设备次数。即 delta(rio)/s  w/s:       每秒完成的写 I/O 设备次数。即 delta(wio)/s  rsec/s:    每秒读扇区数。即 delta(rsect)/s  wsec/s:    每秒写扇区数。即 delta(wsect)/s  rkB/s:     每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算)

wkB/s:     每秒写K字节数。是 wsect/s 的一半。(需要计算)
avgrq-sz:  平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:  平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。
await:     平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm:     平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio)
%util:     一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)

可以看到两块硬盘中的 sdb 的利用率已经 100%,存在严重的 IO 瓶颈,下一步我们就是要找出哪个进程在往这块硬盘读写数据。

2.3 iotop

根据 iotop 的结果,我们迅速的定位到是 flume 进程的问题,造成了大量的 IO wait。

但是在开头我已经说了,集群中的机器配置一样,部署的程序也都 rsync 过去的一模一样,难道是硬盘坏了?

这得找运维同学来查证了,最后的结论是:

Sdb为双盘raid1,使用raid卡为“LSI Logic / Symbios Logic SAS1068E”,无cache。近400的IOPS压力已经达到了硬件极限。而其它机器使用的raid卡是“LSI Logic / Symbios Logic MegaRAID SAS 1078”,有256MB cache,并未达到硬件瓶颈,解决办法是更换能提供更大IOPS的机器。

不过前面也说了,我们从软硬件两方面着手的目的就是看能否分别寻求代价最小的解决方案:

知道硬件的原因了,我们可以尝试把读写操作移到另一块盘,然后再看看效果:

3、最后的话:另辟蹊径

其实,除了用上述专业的工具定位这个问题外,我们可以直接利用进程状态来找到相关的进程。

1.使用yum 安装iftop工具
使用yum安装的话比较简单,只要直接执行 yum install iftop –y命令即可,如果没问题的话系统就会自动执行安装,但是有使用yum可能安装不了,这时就需要使用编译安装了

2.编译安装iftop工具
(1)下载iftop工具的源码包;
http://oss.aliyuncs.com/aliyunecs/iftop-0.17.tar.gz

(2)CentOS下安装所需的依赖包
yum install flex byacc  libpcap ncursesncurses-devel libpcap-devel

(3 解压缩下载的iftop文件
tarzxvf iftop-0.17.tar.gz

(4 进入到解压的的iftop目录中
cdiftop-0.17

配置并制定安装目录为/usr/local/iftop目录下
(5./configure –prefix=/usr/local/iftop

(6)编译并安装
make && make install

安装完成以后直接使用/usr/local/iftop/sbin/iftop 启动iftop程序查看流量使用情况,如果想使用iftop的方式直接开启程序,需要将iftop的程序添加到环境变量中即可

iftop安装http://www.cnblogs.com/chaichuan/p/4442610.html

nethogs 安装http://www.landui.com/help/show-2934.htm

安装iostat和mpstat工具 http://www.linuxidc.com/Linux/2013-10/91570.htm

转载于:https://blog.51cto.com/lookingdream/1919952

linux 故障监控必备五款软件相关推荐

  1. linux系统监控必备两款软件

    nethogs nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面.万一出现带宽使用突然激增的情况,用户迅 ...

  2. Mac软件推荐|Mac资深用户必备11款软件

    Mac有哪些必备软件?macw小编整理了11款Mac电脑装机必备软件,每一款都很实用哦!一.Permute它用于格式转换,包括视频.音频,图片乃至pdf,不仅效率高,而且完美配合downie.iTun ...

  3. 安卓系统手机软件_2M不到的安卓神器!有了这五款软件,iphone用户都羡慕

    一直以来,有IOS系统更稳定更流畅的普遍说法.但是,只要你的手机安装了下面这5款软件,安卓系统立马有远超IOS的不凡体验! 一.强力清理 推荐指数:★★★★★ 超简洁的操作界面,集垃圾清理.内存加速. ...

  4. 程序员装机必备爆款软件推荐与配置(windows版)

    做机也要做一只全能的机哦 值此新年来临之即,面对两百多个G的c盘.忍痛割爱将电脑系统重装,版本为(win10:1079)之后的所有电脑环境更新,专业软件安装均会记录在此文. 程序员装机必备爆款软件推荐 ...

  5. screenocr怎么卸载_如何截图识别文字?这五款软件教你轻松识别文字!

    原标题:如何截图识别文字?这五款软件教你轻松识别文字! 在我们日常学习和日常工作中,如果遇到截图识别文字该怎么办呢? 有时候我们会需要在电脑桌面或者浏览页上临时截图识别图中的文字,尤其是在写文章记录素 ...

  6. 五款软件快速解决网络故障问题

    网络故障的排查不止是网络工程师独有的事情,在弱电项目中也会经常遇到各种各样的网络故障,每当添加新的设备或网络发生变更时,新的问题就会出现,而且很难快速确定问题在哪里.每一位网络工程师或从事网络相关的人 ...

  7. linux安装音乐软件教程,Linux上好用的五款音乐播放器

    Jack Wallen 盘点他***的五款 Linux 音乐播放器. 不管你做什么,你都有时会来一点背景音乐.不管你是开发.运维或是一个典型的电脑用户,享受美妙的音乐都可能是你在电脑上最想做的事情之一 ...

  8. 电脑小白必备的五款软件,让你的电脑变身神器

    你想让你的电脑更好用吗?这里有五款电脑软件可以帮你,它们可以让你的电脑更高效.美观.安全,快来看看吧! 1.虚拟桌面--Dexpot Dexpot是一款虚拟桌面软件,可以让你在一个电脑上创建和使用多个 ...

  9. 追剧补番达人必备五款APP排行

    随着WIFI的普及,越来越多的人喜欢在移动端观看视频.追剧补番.但是因为版权的关系,小编常常要辗转N个视频软件才能找到自己想看的剧集,所以也就有了美剧看搜狐.综艺爱奇艺.动漫转B站.弹幕看爆点这样好记 ...

最新文章

  1. SCOM2012部署系列之九:部署审核收集报告(ACSReporting)
  2. 云时代的安全解读:云安全≠云计算安全
  3. C语言经典算法 11-20
  4. Leetcode987 二叉树的垂序遍历
  5. 检查图层当中是否存在高程基准(C++)ArcObject
  6. app自动化问题点整理
  7. 并发设计模式之Guarded Suspension模式
  8. FFMPEG解封装后的AVPACKET存储为可播放的h264文件
  9. linux自己写摄像头驱动,详解linux 摄像头驱动编写
  10. 上位机plc编程入门_PLC与上位机的通信-plc上位机程序开发
  11. 怎么修改PDF文件中的图片以及文字
  12. MySQL数据仓库基础
  13. 本地DLL通用验证码识别/滑块识别/文字点选/图标点选/推理/OCR文字识别
  14. SMART PLC如何修改运动控制向导生成的点动速度(JOG_SPEED)
  15. bmp文件数字水印c语言代码,图像数字水印+matlab程序文件.doc
  16. Java微服务架构实战,MySQL8
  17. 广大华软html5期末试卷,数据库原理与应用试题--含答案(华软)
  18. 【计算机考研必备常识】24考研你开始准备了吗?
  19. 5-RNN-06_剧本生成项目
  20. 台湾中央大学认知神经科学研究所所长洪兰对于男女脑活动的比较

热门文章

  1. Asp.Net MVC3.0网站统计登录认证的在线人数
  2. 模态框到阻止冒泡时间
  3. python学习笔记之运算符
  4. Js高设笔记1-2章 defer and async
  5. Ubuntu 基本概念之美元号的意义
  6. 用bash命令得到Windows一个目录下的所有文件并且把结果输入到一个文件
  7. linux 死锁介绍与简单分析
  8. 使用python爬虫抓站的一些技巧总结:进阶篇
  9. [shell] 让你提升命令行效率的 Bash 快捷键 [完整版]
  10. CentOS7.X更新gcc到5.3.0