乐趣区

关于linux:Linux-系统监控命令整理汇总

以下命令以 Ubuntu 18.04 LTS 零碎为准。

命令 性能 实例
free 查看内存应用状况,包含物理内存和虚拟内存 free -h 或 free -m
vmstat 对系统的整体状况进行统计,包含内核过程、虚拟内存、磁盘、陷阱和 CPU 流动的统计信息 vmstat 2 100
top 实时显示零碎中各个过程的资源占用情况及总体情况 top
mpstat 实时系统监控工具,它会报告与 CPU 相干的统计信息 mpstat
sar 收集、报告和保留 CPU、内存、输入输出端口应用状况 sar -n DEV 3 100
netstat 测验本机各端口的网络连接状况,用于显示与 IP、TCP、UDP 和 ICMP 协定相干的统计数据 netstat -a
tcpdump 用于捕获或者过滤网络上指定接口上接管或者传输的 TCP/IP 包 tcpdump -i eth0 -c 3
iptraf 用来生成包含 TCP 信息、UDP 计数、ICMP 和 OSPF 信息、以太网负载信息、节点状态信息、IP 校验和谬误等等统计数据 iptraf
iostat 收集显示零碎存储设备输出和输入状态统计 iostat -x -k 2 100
lsof 查看过程关上的文件的工具,查看监听端口 lsof -i :3000
atop 显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的状况下进行了黑白标注 atop
htop 它和 top 命令十分相似,高级的交互式的实时 linux 过程监控工具 htop
ps 最根本同时也是十分弱小的过程查看命令 ps aux grep php
glances 监督 CPU,均匀负载,内存,网络流量,磁盘 I/O,其余处理器 和 文件系统 空间的利用状况 glances
dstat 全能零碎信息统计工具,可用于替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具 dstat
uptime 用于查看服务器运行了多长时间以及有多少个用户登录,疾速获知服务器的负荷状况 uptime
dmesg 次要用来显示内核信息。应用 dmesg 能够无效诊断机器硬件故障或者增加硬件呈现的问题 dmesg
mpstat 用于报告多路 CPU 主机的每颗 CPU 流动状况,以及整个主机的 CPU 状况 mpstat 2 3
nmon 监控 CPU、内存、I/O、文件系统及网络资源。对于内存的应用,它能够实时的显示 总 / 残余内存、替换空间等信息 nmon
mytop 用于监控 mysql 的线程和性能。它能让你实时查看数据库以及正在解决哪些查问 mytop
iftop 用来监控网卡的实时流量(能够指定网段)、反向解析 IP、显示端口信息等 iftop
jnettop 以雷同的形式来监测网络流量但比 iftop 更形象。它还反对自定义的文本输入,并能以敌对的交互方式来深度剖析日志 jnettop
ngrep 网络层的 grep。它应用 pcap,容许通过指定扩大正则表达式或十六进制表达式来匹配数据包 ngrep
nmap 能够扫描你服务器凋谢的端口并且能够检测正在应用哪个操作系统 nmap localhost
du 查看 Linux 零碎中某目录的大小 du -sh *
fdisk 查看硬盘及分区信息 fdisk -l

内存监控

free

free 命令能够显示以后零碎未应用的和已应用的内存数目,还能够显示被内核应用的内存缓冲区。

语法

free (选项)

罕用选项:
-b:以 Byte 为单位显示内存应用状况;
-k:以 KB 为单位显示内存应用状况;
-m:以 MB 为单位显示内存应用状况;
-g:以 GB 为单位显示内存应用状况;
-o:不显示缓冲区调节列;
-t:显示内存总和列;
-V:显示版本信息。

字段阐明:

  • total:内存总数;
  • used:曾经应用的内存数,包含 cached 和应用程序理论应用的内存;
  • free:闲暇的内存数;
  • shared:以后曾经废除不必;
  • buffers:缓存内存数;
  • cached:缓存内存数。

关系:total = used + free

vmstat

vmstat 命令 的含意为显示虚拟内存状态(“Viryual Memor Statics”),然而它能够报告对于过程、内存、I/ O 等零碎整体运行状态。

语法

vmstat (选项) (参数)

选项
-a:显示流动内页;
-f:显示启动后创立的过程总数;
-m:显示 slab 信息;
-n:头信息仅显示一次;
-s:以表格形式显示事件计数器和内存状态;
-d:报告磁盘状态;
-p:显示指定的硬盘分区状态;
-S:输入信息的单位。

参数

  • 事件间隔:状态信息刷新的工夫距离;
  • 次数:显示报告的次数。

字段阐明:
Procs(过程)

  • r: 运行和期待 CPU 工夫片的过程数,这个值如果长期大于零碎 CPU 个数,就阐明 CPU 资源有余,能够思考减少 CPU
  • b: 期待资源的过程数,比方正在期待 I / O 或者内存替换等

Memory(内存)

  • swpd: 应用虚拟内存大小,如果 swpd 的值不为 0,然而 SI,SO 的值长期为 0,这种状况不会影响零碎性能。
  • free: 闲暇物理内存大小(以 KB 为单位)。
  • buff: 用作缓冲的内存大小。
  • 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),而且 wa 值比拟大,则示意零碎磁盘 IO 性能瓶颈。

system(零碎)

  • in: 每秒中断数,包含时钟中断。
  • cs: 每秒上下文切换数。

留神:下面 2 个值越大,会看到由内核耗费的 CPU 工夫会越大。

CPU(以百分比示意)
us: 用户过程执行工夫百分比 (user time)
us 的值比拟高时,阐明用户过程耗费的 CPU 工夫多,然而如果长期超 50% 的应用,那么咱们就该思考优化程序算法或者进行减速。

  • sy: 内核零碎过程执行工夫百分比 (system time)

sy 的值高时,阐明零碎内核耗费的 CPU 资源多,这并不是良性体现,咱们应该查看起因。

  • id: 闲暇工夫百分比
  • wa: IO 等待时间百分比

wa 的值高时,阐明 IO 期待比较严重,这可能因为磁盘大量作随机拜访造成,也有可能磁盘呈现瓶颈(块操作)。

  • st:个别不关注,虚拟机占用的工夫百分比。

CPU 监控

top

top 命令 能够实时动静地查看零碎的整体运行状况。

语法:

top (选项)

选项:
-b:以批处理模式操作;
-c:显示残缺的治命令;
-d:屏幕刷新间隔时间;
-I:疏忽生效过程;
-s:窃密模式;
-S:累积模式;
-i< 工夫 >:设置间隔时间;
-u< 用户名 >:指定用户名;
-p< 过程号 >:指定过程;
-n< 次数 >:循环显示的次数。

字段阐明:

  • top:零碎以后工夫
  • up xxx days:零碎运行工夫
  • 1 users:以后登录用户个数
  • load average:零碎负载。即工作队列的均匀长度。三个数值别离为最近 1 分钟、最近 5 分钟、最近 15 分钟的均匀负载。——超过 N(CPU 核数)阐明零碎满负荷运行。
  • Tasks

    • total:总过程数
    • running:正在运行的过程数
    • sleeping:睡眠的过程数
    • stopped:进行的过程数
    • zombie:解冻的过程数
  • %Cpu(s)

    • us:用户过程耗费的 CPU 百分比
    • sy:内核过程耗费的 CPU 百分比
    • ni:扭转过优先级的过程占用 CPU 的百分比
    • id:闲暇 CPU 的百分比
    • wa:IO 期待耗费的 CPU 百分比
  • Mem

    • total:物理内存总量
    • free:闲暇物理内存总量
    • used:已用物理内存总量
    • buff:用作内核缓存内存总量
  • Swap

    • total:虚拟内存总量
    • free:闲暇虚拟内存总量
    • used:已用虚拟内存总量

mpstat

mpstat 命令 指令次要用于多 CPU 环境下,它显示各个可用 CPU 的状态系你想。

语法:

mpstat (选项) (参数)

选项:

-P:指定 CPU 编号。

参数:

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

ALL 示意显示所有 CPUs,也能够指定某个 CPU;2 示意刷新距离。

网络监控

sar

sar 命令 是 Linux 下零碎运行状态统计工具,它将指定的操作系统状态计数器显示到规范输出设备。

字段阐明:

  • IFACE:网络设备的名称
  • rxpck/s:每秒钟接管到的包数目
  • txpck/s:每秒钟发送进来的包数目
  • rxkB/s:每秒钟接管到的字节数
  • txkB/s:每秒钟发送进来的字节数

netstat

netstat 命令个别用于测验本机各端口的网络连接状况,用于显示与 IP、TCP、UDP 和 ICMP 协定相干的统计数据。

罕用实例:

netstat -aup      # 输入所有 UDP 连贯情况
netstat -atp      # 输入所有 TCP 连贯情况
netstat -s        # 显示各个协定的网络统计信息
netstat -i        # 显示网卡列表
netstat -r        # 显示路由表信息
netstat -l        # 只显示监听端口
netstat -lt       # 只列出所有监听 tcp 端口
netstat -lu       # 只列出所有监听 udp 端口
netstat -lx       # 只列出所有监听 UNIX 端口 

磁盘监控

df

df 命令 用于显示磁盘分区上的可应用的磁盘空间。如果没有文件名被指定,则显示以后所有被挂载的文件系统,默认以 KB 为单位。

语法:

df (选项) (参数)

选项:
-a 全副文件系统列表
-h 以不便浏览的形式显示
-i 显示 inode 信息
-T 显示文件系统类型
-l 只显示本地文件系统
-k 以 KB 为单位
-m 以 MB 为单位

参数:

  • 文件:指定文件系统上的文件。

iostat

iostat 命令 被用于监视系统输入输出设施和 CPU 的应用状况。

语法:

iostat (选项) (参数)

选项:
-c:仅显示 CPU 应用状况;
-d:仅显示设施利用率;
-k:显示状态以千字节每秒为单位,而不应用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设施和所有被应用的其余分区的状态;
-t:显示每个报告产生时的工夫;
-V:显示版号并退出;
-x:显示扩大状态。

参数:

  • 间隔时间:每次报告的间隔时间(秒);
  • 次数:显示报告的次数。

字段阐明:

  • r/s: 每秒实现的读 I/O 设施次数。
  • w/s: 每秒实现的写 I/O 设施次数。
  • rkB/s: 每秒读 K 字节数. 是 rsect/s 的一半, 因为每扇区大小为 512 字节。
  • wkB/s: 每秒写 K 字节数. 是 wsect/s 的一半。
  • avgrq-sz: 均匀每次设施 I / O 操作的数据大小 (扇区)。
  • avgqu-sz: 均匀 I / O 队列长度。
  • await: 均匀每次设施 I / O 操作的等待时间 (毫秒)。
  • svctm: 均匀每次设施 I / O 操作的服务工夫 (毫秒)。
  • %util: 一秒中有百分之多少的工夫用于 I/O 操作, 或者说一秒中有多少工夫 I/O 队列是非空的。

iotop

iotop 命令 是一个用来监督磁盘 I / O 应用情况的 top 类工具。

iotop 具备与 top 类似的 UI,其中包含 PID、用户、I/O、过程等相干信息。Linux 下的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设施的读写状况,如果你想晓得每个过程是如何应用 IO 的就比拟麻烦,应用 iotop 命令能够很不便的查看。

语法:

iotop (选项)

选项:
-o:只显示有 io 操作的过程
-b:批量显示,无交互,次要用作记录到文件。
-n:NUM:显示 NUM 次,次要用于非交互式模式。
-d SEC:距离 SEC 秒显示一次。
-p PID:监控的过程 pid。
-u USER:监控的过程用户。

iotop 罕用快捷键:

  • 左右箭头:扭转排序形式,默认是按 IO 排序。
  • r:扭转排序程序。
  • o:只显示有 IO 输入的过程。
  • p:过程 / 线程的显示方式的切换。
  • a:显示累积使用量。
  • q:退出。

过程

ps

ps(Process Status,过程状态)命令 用于报告以后零碎的过程状态。

ps 的用法十分多,这里仅列举一些罕用的:

ps -aux | grep <name>      # 查看 name 过程详细信息
ps -p <pid> -L             # 显示过程 <pid> 的所有线程
ps -o lstart <pid>         # 显示过程的启动工夫
ps -f --forest -C <name>   # 用树的格调显示过程的档次关系
ps -e -o pid,uname,pcpu,pmem,comm,etime  # 定制显示的列
ps -o lstart <pid>         # 显示过程的启动工夫 

系统监控全能工具

glances

glances 是一个用来监督 GNU/Linux 和 FreeBSD 操作系统的 GPL 受权的全能工具。

Glances 会用一下几种色彩来代表状态:

  • 绿色:OK(一切正常)
  • 蓝色:CAREFUL(须要留神)
  • 紫色:WARNING(正告)
  • 红色:CRITICAL(重大)。

阀值能够在配置文件中设置,个别阀值被默认设置为(careful=50、warning=70、critical=90)。

dstat

dstat 命令 是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具。

间接应用 dstat,默认应用的是 -cdngy 参数,别离显示 cpu、disk、net、page、system 信息,默认是 1s 显示一条信息。

参考链接

  • Linux 系统监控命令整顿汇总 - 把握 CPU, 内存, 磁盘 IO 等找出性能瓶颈
退出移动版