概 述

本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用。正所谓磨刀不误砍柴工,花点时间总结一下是值得的!

本文内容脑图如下:


top 命令

top 命令我想大家都挺熟悉吧! Linux 下的 top 命令有点类似于 Windows 下的任务管理器,能够实时动态地监控并显示系统中各个进程的资源占用状况,是 Linux 下常用的性能监控和分析工具。

一个常见的 top 命令的执行视图如下:

下面我们详细在图中标注出每个指标的含义,认真看图对比理解吧(必要时可保存该图备查哦):

怎么样,理解起来够直观了吧,至于 top 命令的其他一些带参数用法自行 help 吧,太多了,不再赘述了!


htop 命令

htop 是 Linux 下一个交互式的进程浏览器,可以完全替代上一小节中所讲的 top 命令,与 top 命令对比,htop 命令有如下优点:

  • 直接支持鼠标点击操作( 就问你 6 不 6 !)
  • 画面可以水平垂直滚动,更像一个窗口
  • 可以跟踪进程,显示进程打开的文件
  • 支持进程的树状图显示
  • 支持按照名称查找进程

总之可视化方面做得 66 的,我们来体验一下:

就该图来说,分成三部分:

  • 顶部是资源使用情况概览,这进度条看着就挺酷炫
  • 中间是进程表,和 top 命令的类似
  • 下面是操作指引和快捷键清晰明了

我们接下来再来看一些图形化的操作:

  • 进程树状图

  • 鼠标点击各种指标来排序

  • 跟踪进程功能


iotop 命令

iotop 是用来监控硬盘 IO 的使用情况,UI 界面和 top 类似,其中包括 PID、用户、I/O、进程 等相关信息。

Linux 下系统自带的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设备的读写情况,如果你想知道每个进程是如何使用 IO 的就比较麻烦,使用 iotop 命令可以很方便的查看。


iftop 命令

iftop 是 Linux 系统的流量和带宽监控工具,可用于查看实时的网络流量、监控 TCP/IP 连接等,也是非常有用的!

我们来做一下实验,命令执行后效果如下:

iftop 命令常用的参数如下,这里做个小规模总结:

  • -i 设定监测的网卡,如:# iftop -i eth1
  • -B 以 bytes 为单位显示流量 (默认是 bits),如:# iftop -B
  • -n 使 host 信息默认直接都显示 IP,如:# iftop -n
  • -N 使端口信息默认直接都显示端口号,如: # iftop -N
  • -F 显示特定网段的进出流量,如 # iftop -F 10.10.1.0/24 或 # iftop -F 10.10.1.0/255.255.255.0
  • -h( display this message ),帮助,显示参数信息
  • -p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的 IP 信息;
  • -b 使流量图形条默认就显示;

再来总结一下,进入 iftop 视图画面后的一些操作命令 (注意大小写):

  • 按 h切换是否显示帮助;
  • 按 n切换显示本机的 IP 或主机名;
  • 按 s切换是否显示本机的 host 信息;
  • 按 d切换是否显示远端目标主机的 host 信息;
  • 按 t切换显示格式为 2 行 /1 行 /只显示发送流量 /只显示接收流量;
  • 按 N切换显示端口号或端口服务名称;
  • 按 S切换是否显示本机的端口信息;
  • 按 D切换是否显示远端目标主机的端口信息;
  • 按 p切换是否显示端口信息;
  • 按 P切换暂停 /继续显示;
  • 按 b切换是否显示平均流量图形条;
  • 按 T切换是否显示每个连接的总流量;
  • 按 l打开屏幕过滤功能,输入要过滤的字符,比如 ip,按回车后,屏幕就只显示这个 IP 相关的流量信息;
  • 按 L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
  • 按 j或按k可以向上或向下滚动屏幕显示的连接记录;
  • 按 123可以根据右侧显示的三列流量数据进行排序;
  • <根据左边的本机名或 IP 排序;
  • >根据远端目标主机的主机名或 IP 排序;
  • o切换是否固定只显示当前的连接;

后 记

  由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!

  注: 本文首发于 My Personal Blog,欢迎光临 小站

 
 
 
 

来源: https://www.v2ex.com/t/490287#reply22

一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)的更多相关文章

  1. 一文详解 Linux 系统常用监控工一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)具(top,htop,iotop,iftop)

    一文详解 Linux 系统常用监控工具(top,htop,iotop,iftop)     概 述 本文主要记录一下 Linux 系统上一些常用的系统监控工具,非常好用.正所谓磨刀不误砍柴工,花点时间 ...

  2. [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等

    详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...

  3. 详解Linux系统中的文件名和文件种类以及文件权限

    Linux文件种类与副文件名 一直强调一个概念,那就是:任何装置在Linux底下都是文件, 不仅如此,连资料沟通的介面也有专属的文件在负责-所以,你会瞭解到,Linux的文件种类真的很多- 除了前面提 ...

  4. 详解Linux系统中10个最危险的命令

    概述 大多数的朋友都是主要用的windows系统,基本用鼠标就可以完成所有的操作,但是在Linux系统中很多都是键盘+命令操作电脑的,Linux命令行使用很有趣,但有时候也很危险,尤其是在你不确定你自 ...

  5. 详解linux系统的启动过程及系统初始化

    一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...

  6. 详解Linux系统下PXE服务器的部署过程

    在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量. 但是批量自动化安装服务器的基础是网络启动服务器(bootserver). 下面我们就介绍一下 网络启动服务器的 安装和配置方 ...

  7. 详解linux运维工程师入门级必备技能

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

  8. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  9. 详解Linux运维工程师

    运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化.如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火) 之前写过运维 ...

随机推荐

  1. jquery ajax在跨域访问post请求的时候,包括ie9以下的浏览器无效,其他浏览器正常

    最近做的一个项目,原先没有要求兼容IE9以下,所以在写代码的时候也没有打开IE9以下去测试,这两天要去做IE9以下的兼容,在IE9以下打开本地的项目发现数据请求不成功,而通过发布道服务器上的链接打开是 ...

  2. innodb分配内存

    innodb分配内存有三种方法 1)使用OS的malloc 2)使用innodb自己实现的内存分配方法 3)使用goolge的Tmalloc innodb引擎分析之内存管理 在my.cn配置文件中可设 ...

  3. html基础+常用标签

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  4. #阿里云#云服务器部署Django(基础篇)

    前言 本人能力有限,本文只是简单介绍基础部署流程,没有过多考虑系统安全等因素,请谅解.初学者参考了解,大神勿喷. 纯测试部署,采用阿里云ECS,系统Ubuntu 16.04 64位,部署采用nginx ...

  5. Linux CentOS7系统中ssh的用法

    大家都知道,公司买上服务器,不可能实时在线操作虚拟机,也没有那个时间和精力登录到公司的云服务商官网进行操作,一来不安全,二来也效率不高. 如果是购买的虚拟主机,你可以使用ftp进行本地程序文件传输和从 ...

  6. android Service 学习总结

    学习android开发已经四五个月,由于项目中职责的原因一直没有接触过Service的实际项目,今天重新学一遍Service用法. 问题: 作为四大组件,为什么需要Service? 它与Thread又 ...

  7. Filter应用之2-设置某些页面缓存或是不缓存

    要想让所有浏览器不缓存页面,需要在每个jsp上加上: <% response.setHeader("expires","-1"); response.se ...

  8. Vue使用过渡类名实现动画和自定义前缀

    Vue使用过渡类名实现动画和自定义前缀 1.效果演示 2.相关代码 <!DOCTYPE html> <html lang="en"> <head> ...

  9. go语言接受者的选取

    何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型).2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存 ...

  10. Linux命令-用户、用户组、权限

    参考资料: http://www.linuxidc.com/Linux/2014-07/104445.htm    Linux入门教程:如何手动创建一个Linux用户 http://www.linux ...