随笔4-Linux探索(系统监控)

1. 网络情况监控

1.1 netstat 命令

netstat -options [t=tcp] [u=udp] [l=listening] [a=all] [n=numeric] [p=program]

netstat -ntlp
netstat -anp
netstat -anp|more
netstat -anp|grep sshd

1.2 ifstat 命令

ifstat工具是个网络接口监测工具,比较简单看网络流量

1.3 iftop 命令

  • iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。
  • 通过iftop的界面很容易找到哪个ip在霸占网络流量,这个是ifstat做不到的。

结果说明

显示项显示说明
TX发送流量
RX:接收流量
TOTAL:总流量
Cumn: 运行iftop 到目前时间的总流量
peak:流量峰值
rates: 过去 2s 10s 40s的平均流量
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumn: 运行iftop 到目前时间的总流量
peak:流量峰值
rates: 过去 2s 10s 40s的平均流量

Note :

iftop的流量显示单位是Mb,这个b是bit,是位,不是字节,而ifstat的KB,这个B就是字节了,byte是bit的8倍。初学者容易被误导。

2. 磁盘监控

2.1. 磁盘整体情况 df
df -h
df -lh
2.2. 查看指定目录的磁盘占用情况 du

du命令是对文件和目录磁盘使用的空间的查看

语法

du [option] [dir path]

参数说明

  • 指定目录占用大小汇总 (-s)
  • 带计量单位 (-h)
  • 包含文件 (-a)
  • 子目录深度 (–max-depth=n)

示例

查看opt目录的磁盘占用情况,深度为2

du -ach --max-depth=2 /opt

查看当前用户家目录的磁盘占用情况,深度为2

du -ach --max-depth=2 ~/

查看指定目录的所占空间

du -scf
2.3. 磁盘IO 情况(iostat)

iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

安装

yum install -y sysstat

语法

iostat [选项] [参数]

选项

optiondescription
-c:仅显示CPU使用情况;
-d:仅显示设备利用率;
-k:显示状态以千字节每秒为单位,而不使用块每秒;
-m:显示状态以兆字节每秒为单位;
-p:仅显示块设备和所有被使用的其他分区的状态;
-t:显示每个报告产生时的时间;
-V:显示版号并退出;
-x:显示扩展状态。

参数

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

示例

查看磁盘I/O的详细情况

[root@localhost ~]# iostat -x
Linux 3.10.0-1062.12.1.el7.x86_64 (localhost.localdomain)       04/12/2020      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.06    0.01    0.00   99.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.02    0.03    0.07     1.35     1.32    52.24     0.00   13.89    9.19   16.08   3.27   0.03
scd0              0.00     0.00    0.00    0.00     0.01     0.00   114.22     0.00    1.22    1.22    0.00   1.00   0.00
dm-0              0.00     0.00    0.03    0.09     1.28     1.31    46.67     0.00   29.93   11.14   35.65   2.98   0.03
dm-1              0.00     0.00    0.00    0.00     0.01     0.00    50.09     0.00    1.17    1.17    0.00   1.08   0.00

查看 sda 的详细情况

[root@localhost ~]# iostat -x sda
Linux 3.10.0-1062.12.1.el7.x86_64 (localhost.localdomain)       04/12/2020      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.06    0.01    0.00   99.92

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.02    0.03    0.07     1.35     1.33    52.20     0.00   13.88    9.19   16.06   3.26   0.03

输出说明

optiondescription
Device监测设备名称
rrqm/s每秒需要读取需求的数量
wrqm/s每秒需要写入需求的数量
r/s每秒实际读取需求的数量
w/s每秒实际写入需求的数量
rsec/s每秒读取区段的数量
wsec/s每秒写入区段的数量
rkB/s每秒实际读取的大小,单位为KB
wkB/s每秒实际写入的大小,单位为KB
avgrq-sz需求的平均大小区段
avgqu-sz需求的平均队列长度
await等待I/O平均的时间(milliseconds)
svctmI/O需求完成的平均时间
%util被I/O需求消耗的CPU百分比
2.4. 所有磁盘可用块设备信息(lsblk)

lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。

选项

-a, --all            显示所有设备。
-b, --bytes          以bytes方式显示设备大小。
-d, --nodeps         不显示 slaves 或 holders。
-D, --discard        print discard capabilities。
-e, --exclude <list> 排除设备 (default: RAM disks)。
-f, --fs             显示文件系统信息。
-h, --help           显示帮助信息。
-i, --ascii          use ascii characters only。
-m, --perms          显示权限信息。
-l, --list           使用列表格式显示。
-n, --noheadings     不显示标题。
-o, --output <list>  输出列。
-P, --pairs          使用key="value"格式显示。
-r, --raw            使用原始格式显示。
-t, --topology       显示拓扑结构信息。

示例

[root@localhost ~]# lsblk -a
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sr0              11:0    1  4.4G  0 rom  

说明

optiondescription
NAME这是块设备名。
MAJ:MIN本栏显示主要和次要设备号。
RM本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT本栏指出设备挂载的挂载点。

3. 内存监控

方式1. 使用 free 命令

命令演示

free -g
free -m
free -h

结果说明

  • total:内存总数
  • used:已经使用的内存数
  • free:空闲的内存数
  • shared:当前已经废弃不用
  • buffers Buffer:缓存内存数
  • cached Page:缓存内存数

Note :

total = used + free

方式2. 使用 top 命令

4. 整机监控

top 命令

vmstat

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

语法
vmstat [选项] [参数]
选项
optiondescription
a:显示活动内页;
f:显示启动后创建的进程总数;
m:显示slab信息;
n:头信息仅显示一次;
s:以表格方式显示事件计数器和内存状态;
d:报告磁盘状态;
p:显示指定的硬盘分区状态;
S:输出信息的单位。
参数
参数1 时间间隔:状态信息刷新的时间间隔
参数2 次数:显示报告的次数
说明
Procs(进程)

r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: 等待IO的进程数量。

Memory(内存)

swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
free: 空闲物理内存大小。
buff: 用作缓冲的内存大小。
cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

Swap

si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。

Note:

内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)

bi: 每秒读取的块数
bo: 每秒写入的块数

Note:

随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统)

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

Note:上面2个值越大,会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)

us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。

sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。

wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

id: 空闲时间百分比

sar

sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

语法

sar [选项] [参数]

选项

-A:显示所有的报告信息;
-b:显示I/O速率;
-B:显示换页状态;
-c:显示进程创建活动;
-d:显示每个块设备的状态;
-e:设置显示报告的结束时间;
-f:从指定文件提取报告;
-i:设状态信息刷新的间隔时间;
-P:报告每个CPU的状态;
-R:显示内存状态;
-u:显示CPU利用率;
-v:显示索引节点,文件和其他内核表的状态;
-w:显示交换分区状态;
-x:显示给定进程的状态。

参数

参数1 间隔时间:每次报告的间隔时间(秒)
参数2 次数:显示报告的次数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值