Linux核心系统管理命令3

本文详细介绍了一系列系统管理命令,包括lsof、free、iftop、vmstat、mpstat、iostat、iotop和sar,涵盖了查看进程打开的文件、系统内存信息、网络接口流量、虚拟内存统计、CPU信息统计、I/O信息统计、磁盘I/O统计信息及系统信息收集等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lsof:查看进程打开的文件

lsof全名为list open files,也就是列举系统中已经被打开的文件,通过lsof命令,就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件
在这里插入图片描述
使用范例
(1)显示使用文件的进程
[root@Mr_chen ~]# lsof /var/log/messages #显示使用文件的进程
在这里插入图片描述
如果想知道某个特定的文件是由哪个进程在使用,就可以通过“lsof 文件名”的方式来得到。从上面的输出可以得知,/var/log/messages文件是由rsyslogd进程在使用。

输出中每列的含义具体如下:
COMMAND:命令,进程的名称。
PID:进程号。
USER:进程的所有者。
FD:文件描述符,它又包含如下内容 
  0:表示标准输出。
  1:表示标准输入。
  2:表示标准错误。
  u:表示该文件被打开并处于读取/写入模式
  r:表示该文件被打开并处于只读模式
  w:表示该文件被打开并处于写入模式
TYPE:文件类型,REG(regular)为普通文件
DEVICE:指定磁盘的名称。
SIZE/OFF:文件的大小
NODE:索引节点
NAME:文件名称

(2)显示指定进程所打开的文件
[root@Mr_chen ~]# lsof -c rsyslog #使用-c选项显示指定进程所打开的文件
在这里插入图片描述
(3)显示指定进程号说打开的文件
[root@Mr_chen ~]# lsof -p 1197 #使用-p选项显示指定进程号所打开的文件
在这里插入图片描述
(4)监听指定的协议,端口和主机等信息,显示符合条件的进程信息
语法格式:
lsof -i [46] [protocol] [@hostname] [:service|port]

其中各项的含义如下:
46:4代表IPv4,6代表IPv6
protocol:传输协议,可以是TCP或UDP
hostname:主机名称或者IP地址
service:进程的服务名,例如NFS,SSH和FTP等。
port:系统中与服务对应的端口号。例如HTTP服务默认对应的端口号为80,SSH服务默认对应的端     口号为22.

[root@Mr_chen ~]# lsof -i #查看所有进程
在这里插入图片描述
[root@Mr_chen ~]# lsof -i tcp #显示所有tcp网络连接的进程信息
在这里插入图片描述
[root@Mr_chen ~]# lsof -i:22 #显示端口为22的进程,这条命令很常用
在这里插入图片描述
[root@Mr_chen ~]# lsof -i tcp:22 #显示同时满足TCP和端口为22的进程
在这里插入图片描述
(5)显示指定用户使用的文件
[root@Mr_chen ~]# lsof -u Mr_chen #使用-u选项显示Mr_chen用户使用的文件
在这里插入图片描述
(6)显示所有socket文件
[root@Mr_chen ~]# lsof -U #使用-U选项显示所有socket文件
在这里插入图片描述

free:查看系统内存信息

free命令用于显示系统内存状态,具体包括系统物理内存,虚拟内存,共享内存和系统缓存等。
在这里插入图片描述
使用范例
(1)查看系统内存
[root@Mr_chen ~]# free #不加参数默认显示的是字节数,很难读懂
在这里插入图片描述
[root@Mr_chen ~]# free -m #使用-m选项,以MB为单位显示内存的使用情况
在这里插入图片描述

针对上面的输出,有以下说明
Linux系统的特性是将不用的物理内存缓存起来,因此897MB不是系统的真实剩余内存。
系统真正可用的内存为925MB
buffers为写入数据缓冲区
cache为读取数据缓存区

(2)定时查询内存
[root@Mr_chen ~]# free -s 10 #使用-s选项定时刷新内存的使用情况,单位为秒
在这里插入图片描述

iftop:动态显示网络接口流量信息

iftop是一款实时流量监控工具,可用于监控TCP/IP连接等,必须以root用户的身份运行。
一般最小化安装系统都是没有这个命令的,需要使用yum命令额外安装,而且还要从epel源下载。
epel源的安装帮助请参见:http://mirrors.aliyun.com/help/epel
安装iftop命令的步骤请参见:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install iftop
在这里插入图片描述
使用范例
(1)不接任何参数启动iftop命令监控流量。
[root@Mr_chen yum.repos.d]# iftop
interface: eth0 #默认监听系统的第一块网卡,可以使用-i选项指定监听网卡
IP address is: 192.168.0.233
MAC address is: 00:0c:29:a8:ca:50
在这里插入图片描述

上图为iftop界面,相关说明如下:
界面上显示的是类似刻度尺的刻度范围,是以标尺的形式显示流量图形的长条
中间的<=或=>这两个左右箭头,表示的是流量的反向
TX:发送流量
RX:接收流量
TOTAL:总流量
Cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去2s,10s,40s的平均流量

(2)常用命令组合
[root@Mr_chen yum.repos.d]# iftop -nNBP
interface: eth0
IP address is: 192.168.0.233
MAC address is: 00:0c:29:a8:ca:50
在这里插入图片描述

命令说明具体如下:
-n:不进行DNS解析,显示IP数字地址
-N:显示数字形式的端口号
-P:显示端口号
-B:默认是以bit为单位显示流量,需要经过计算才能符合我们的认知,但是使用-B选项就会直接显示以字节为单位的流量。
vmstat:虚拟内存统计

vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息,进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析。
在这里插入图片描述
使用范例
(1)显示虚拟内存的使用情况
[root@Mr_chen ~]# vmstat #如果省略“间隔时间”和“次数”的参数,则仅显示一次报告后就退出
在这里插入图片描述
[root@Mr_chen ~]# vmstat 5 #表示每5秒钟更新一次输出信息,循环输出,按Ctrl + C组合键停止输出
在这里插入图片描述
[root@Mr_chen ~]# vmstat 5 6 #表示每5秒钟更新一次输出信息,统计6次后停止输出
在这里插入图片描述

以下是命令结果的详解说明
第1列:procs
    r列表示运行和等待CPU时间片的进程数。
    b列表示正在等待资源的进程数。
第2列:memory
   swpd列表示使用虚拟内存的大小。
   free列表示当前空闲的物理内存数量.
   buff列表示buffers的内存数量.
   cache列表示cache的内存数量.
第3列:swap
   si(swap in)列表示由磁盘调入内存,也就是内存进入内存交换区的数量。
   so(swap out)列表示由内存调入磁盘,也就是内存交换区进入内存的数量。
第4列:I/O项显示磁盘读写状况
   bi列表示从块设备读入数据的总量(即读磁盘)(块/s)
   bo列表示写入块设备的数据总量(即写磁盘))(块/s)
第5列:system显示采集间隔内发生的中断数
   in列表示在某一时间间隔中观测到的每秒设备中断数。
   cs列表示每秒产生的上下文切换次数。
第6列:CPU项显示了CPU的使用状态
   us列显示了用户进程消耗的CPU时间百分比。
   sy列显示了系统(内核)进程消耗的CPU时间百分比。
   id列显示了CPU处在空闲状态的时间百分比。
   wa列显示了I/O等待所占用的CPU时间百分比
   st列显示了虚拟机占用的CPU时间的百分比。

(2)显示活跃和非活跃内存
[root@Mr_chen ~]# vmstat -a 2 5
在这里插入图片描述

inact:非活跃的内存大小(当使用-a选项时显示)
active:活跃的内存大小(当使用-a选项时显示)

(3)查看内存使用的详细信息
[root@Mr_chen ~]# vmstat -s
这些信息分别来自于/proc/meminfo,/proc/stat和/proc/vmstat
在这里插入图片描述
(4)查看磁盘的读/写
[root@Mr_chen ~]# vmstat -d
这些信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,系统一般会把多个连接/邻近的读/写请求合并到一起来操作。
在这里插入图片描述
(5)查看/dev/sda1磁盘的读写统计信息
[root@Mr_chen ~]# vmstat -p /dev/sda1
在这里插入图片描述

这些信息主要来自于/proc/diskstats。各列的说明具体如下
reads:来自于该分区的读的次数
read sectors:来自于该分区的读扇区的次数
writes:来自于该分区的写的次数
requested writes:来自于该分区的写请求次数。
mpstat:CPU信息统计

mpstat是Multiprocessor Statistics的缩写,是一种实时系统监控工具。mpstat命令会输出CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPU的系统里,此命令不但能用来查看所有CPU的平均状态信息,而且还能够用来查看特定CPU的信息。
mpstat命令的最大特点是:可以查看多核心CPU中每个计算核心的统计数据,而类似命令vmstat只能查看系统整体的CPU情况。
在这里插入图片描述
使用范例
(1)显示CPU信息统计
[root@Mr_chen ~]# mpstat #如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出
在这里插入图片描述
[root@Mr_chen ~]# mpstat 5 6 #表示每5秒更新一次输出信息,统计6次后停止输出。

在这里插入图片描述

以下是命令结果的详细说明
第1列:06:13:34 PM,表示当前时间
第2列:CPU,all表示所有CPU,0表示第一个CPU...
后面9列的含义分别如下:
%usr:用户进程消耗的CPU时间百分比。
%nice:改变过优先级的进程占用的CPU时间百分比
%sys:系统(内核)进程消耗的CPU时间百分比
%iowait:IO等待所占用的CPU时间百分比
%irq:硬中断占用的CPU时间百分比
%soft:软中断占用的CPU时间百分比
%steal:虚拟机强制CPU等待的时间百分比
%guest:虚拟机占用CPU时间的百分比
%idle:CPU处于空闲状态的时间百分比 

(2)显示指定CPU信息的统计
[root@Mr_chen ~]# mpstat -P 0 #显示第一个CPU信息
在这里插入图片描述

iostat:I/O信息统计

iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视。它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况。同vmstat命令一样,iostat命令也不能对某个进程进行深入分析,仅会对系统的整体情况进行分析。
在这里插入图片描述
使用范例
(1)显示所有设备的负载情况
[root@Mr_chen ~]# iostat #如果省略“时间间隔”和“次数”参数,则仅显示一次报告后就退出
在这里插入图片描述

以下是命令结果说明
第1~2行中各列的含义具体如下
%user : 用户进程消耗的CPU时间百分比
%nice : 改变过优先级的进程占用的CPU时间百分比
%system : 系统(内核)进程消耗的CPU时间百分比
%iowait : IO等待所占用的CPU时间百分比
%steal : 虚拟机强制CPU等待的时间百分比
%idle : CPU处在空闲状态的时间百分比
第3~4行中各列的含义如下
tps : 表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被
      合并为“一次I/O请求”,“一次传输”请求的大小是未知的。
Blk_read/s : 表示每秒读取的数据块数
Blk_wrtn/s : 表示每秒写入的数据块数
Blk_read : 表示读取的所有块数
Blk_wrtn : 表示写入的所有块数

(2)定时显示所有信息
[root@Mr_chen ~]# iostat 2 3 #每隔2秒刷新显示一次,共显示3次
在这里插入图片描述
(3)只显示磁盘统计信息
[root@Mr_chen ~]# iostat -d #选项-d只显示磁盘的统计信息
在这里插入图片描述
[root@Mr_chen ~]# iostat -d -k #选项-k以KB为单位显示数据
在这里插入图片描述
[root@Mr_chen ~]# iostat -d -m #选项-m以MB为单位显示数据
在这里插入图片描述
(4)查看扩展信息
[root@Mr_chen ~]# iostat -d -x -k #选项-x显示扩展信息
在这里插入图片描述

以下是命令结果说明
rrqm/s:每秒进行merge的读操作数目
wrqm/s:每秒进行merge的写操作数目
r/s:每秒完成的读I/O设备次数
w/s:每秒完成的写I/O设备次数
rkB/s:每秒读入的千字节数
wkB/s:每秒写入的千字节数
avgrq-sz:设备平均每次进行I/O操作的数据大小(扇区)
avgqu-sz:平均I/O队列长度
await:设备平均每次I/O操作的等待时间(毫秒)
svctm:设备平均每次I/O操作的服务时间(毫秒)
%util:每秒钟用于I/O操作的百分比

(5)只查看CPU的统计信息
[root@Mr_chen ~]# iostat -c #使用-c选项只显示系统CPU的统计信息
在这里插入图片描述

iotop:动态显示磁盘I/O统计信息

iotop命令是一款实时监控磁盘I/O的工具,但必须以root用户的身份运行。使用iotop命令可以很方便地查看每个进程使用磁盘I/O的情况。
最小化安装系统一般是没有这个命令的,需要使用yum命令额外安装,安装命令如下:yum -y install iotop
在这里插入图片描述
使用范例
(1)不接任何参数启动iotop命令
[root@Mr_chen ~]# iotop
在这里插入图片描述

以下是命令结果的具体说明
Total DISK READ:总的磁盘读取速度
Total DISK WRITE:总的磁盘写入速度
TID:进程pid值
PRIO:优先级
USER:用户
DISK READ:磁盘读取速度
DISK WRITE:磁盘写入速度
SWAPIN:从swap分区读取数据占用的百分比
IO:I/O占用的百分比
COMMAND:消耗I/O的进程名
sar:收集系统信息

通过sar命令,可以全面地获取系统的CPU,运行队列,磁盘I/O,分页(交换区),内存,CPU中断和网络等性能数据

在这里插入图片描述
使用范例
(1)查看系统CPU的整体负载情况
[root@Mr_chen ~]# sar -u 2 3
在这里插入图片描述

以下是命令结果的详细说明
%user:用户进程消耗的CPU时间百分比
%nice:改变过优先级的进程占用的CPU时间百分比
%system:系统(内核)进程消耗的CPU时间百分比
%iowait:IO等待所占用的CPU时间百分比
steal:虚拟机强制CPU等待的时间百分比
idle:CPU处在空闲状态的时间百分比

(2)显示运行队列的大小
[root@localhost ~]# sar -q 2 3 #使用-q选项显示运行队列的大小
在这里插入图片描述

以下是命令结果的详解说明
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(process)和线程(thread)的数量
ldavg-1:最后一分钟的系统平均负载(system load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

(3)显示系统内存的使用状况
[root@localhost ~]# sar -r 2 3 #使用-r选项显示系统内存在采样时间内的使用状况
在这里插入图片描述

以下命令结果的详细说明
kbmemfree:空闲物理内存量
kbmemused:使用中的物理内存量
%memused:物理内存量的使用率
kbbuffers:内核中作为缓冲区使用的物理内存容量
kbcached:内核中作为缓存使用的物理内存容量
kbcommit:应用程序当前使用的内存大小
%commit:应用程序当前使用的内存大小占总大小的使用百分比

(4)显示缓冲区的使用情况
[root@localhost ~]# sar -b 2 3 #使用-b选项显示缓冲区在采样时间内的使用情况
在这里插入图片描述

以下是命令的详细结果说明
tps:每秒钟物理设备的I/O传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为块/s

(5)显示网络的运行状态
我们先来看一下显示网络接口信息的命令
[root@localhost ~]# sar -n DEV 2 3 #使用-n DEV显示网络接口的信息
在这里插入图片描述

以下是命令结果的详细说明
IFACE:网络接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxkB/s:每秒钟接收的字节数
txkB/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包

下面的命令用来显示网络错误的统计数据
[root@localhost ~]# sar -n EDEV 2 3 #使用-n EDEV显示网络错误的统计数据
在这里插入图片描述

以下是命令结果的详细说明
IFACE:网络接口
rxerr/s:每秒钟接收的坏数据包
txerr/s:每秒钟发送的坏数据包
coll/s:每秒的冲突数
rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s:发送数据包时,每秒载波错误数
rxfram/s:每秒接收数据包的帧对齐错误数
rxfifo/s:接收的数据包每秒FIFO过速的错误数
txfifo/s:发送的数据包每秒FIFO过速的错误数

下面的命令用于显示套接字信息
[root@Mr_chen ~]# sar -n SOCK 2 3 #使用-n SOCK显示套接字信息
在这里插入图片描述

以下是命令结果的详细说明
totsck:使用的套接字总数量
tcpsck:使用的TCP套接字数量
udpsck:使用的UDP套接字数量
rawsck:使用的raw套接字数量
ip-frag:使用的IP段数量
tcp-tw:处于TIME_WAIT状态的TCP套接字数量

(6)查看系统磁盘的读写性能
[root@Mr_chen ~]# sar -d 2 3 #使用-d选项显示系统所有硬盘设备在采样时间内的使用状况
在这里插入图片描述

以下是命令结果的详细说明
DEV:表示磁盘的设备名称
tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合    并为“一次I/O请求”,“一次传输”请求的大小是未知的。
rd_sec/s:表示每秒从设备读取的扇区数
wr_sec/s:表示每秒写入设备的扇区数目
avgrq-sz:设备平均每次I/O操作的数据大小(扇区)
avgqu-sz:平均I/O队列长度
await:设备平均每次I/O操作的等待时间(毫秒)
svctm:设备平均每次I/O操作的服务时间(毫秒)
%util:每秒钟用于I/O操作的百分比
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值