本文主要是介绍Linux常用监控命令(笔试面试常考),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.、free命令
[root@Rocky8-node1 ~]# free -htotal used free shared buff/cache available Mem: 1.7Gi 1.1Gi 69Mi 31Mi 554Mi 436Mi Swap: 2.0Gi 258Mi 1.7Gi
free
命令是Linux系统中用于显示内存使用情况的一个常用工具。它提供了关于系统内存使用的详细信息,包括物理内存(RAM)和虚拟内存。当你在终端中运行free
命令时,它会显示几个与内存使用相关的值。以下是这些值的含义:
-
total:表示系统中物理内存(RAM)的总量,单位可以是千字节(KB)、兆字节(MB)或吉字节(GB)。
-
used:显示当前正在被各种进程和操作系统本身使用的物理内存量。
-
free:表示当前未被使用的物理内存量。
-
shared:表示多个进程共享的内存量。
-
buffers:显示用于缓冲磁盘I/O操作的内存量。
-
cache:表示用于缓存从磁盘或其他存储设备频繁访问的数据的内存量。
-
available:表示估计的可用内存量,用于新进程分配。它考虑到了用于缓冲和缓存的内存,如果需要,可以被其他应用程序释放。
常用参数:
-
-b
以Byte为单位显示内存使用情况。 -
-k
以KB为单位显示内存使用情况。 -
-m
以MB为单位显示内存使用情况。 -
-h
以比较人性化的方式显示内存使用情况。 -
-o
不显示缓冲区调节列。 -
-s
<间隔秒数> 持续观察内存使用状况。 -
-t
显示内存总和列。 -
-V
显示版本信息
free 命令中的信息都来自于 /proc/meminfo 文件。/proc/meminfo 文件包含了更多更原始的信息
[root@Rocky8-node1 ~]# cat /proc/meminfo MemTotal: 1775928 kB MemFree: 71060 kB MemAvailable: 447344 kB Buffers: 0 kB Cached: 517980 kB SwapCached: 22436 kB Active: 562256 kB Inactive: 856496 kB Active(anon): 250516 kB Inactive(anon): 682180 kB Active(file): 311740 kB Inactive(file): 174316 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 1832956 kB Dirty: 8 kB Writeback: 0 kB AnonPages: 879252 kB Mapped: 137568 kB Shmem: 31924 kB KReclaimable: 49696 kB Slab: 121936 kB SReclaimable: 49696 kB SUnreclaim: 72240 kB KernelStack: 9584 kB PageTables: 42888 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 2985112 kB Committed_AS: 3238104 kB VmallocTotal: 34359738367 kB VmallocUsed: 31292 kB VmallocChunk: 0 kB Percpu: 78336 kB HardwareCorrupted: 0 kB AnonHugePages: 643072 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB FileHugePages: 0 kB FilePmdMapped: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB DirectMap4k: 194432 kB DirectMap2M: 1902592 kB DirectMap1G: 0 kB
2、df 命令
命令参数:
-
-a, --all:包括伪文件系统、重复文件系统、不可访问的文件系统。
-
-B, --block-size=SIZE:按SIZE缩放大小后打印它们;例如,'-BM'打印大小为1,048,576字节的单位。
-
--direct:显示文件的统计信息,而不是挂载点。
-
-h, --human-readable:以人类可读的格式打印大小,例如,1023M。
-
-H, --si:以1000的幂(而不是1024)打印大小,例如,1.1G。
-
-i, --inodes:列出inode信息而不是块使用情况。
-
-k:等同于--block-size=1K。
-
-l, --local:限制列表仅显示本地文件系统。
-
--no-sync:在获取使用信息之前不调用sync(默认)。
-
--output[=FIELD_LIST]:使用由FIELD_LIST定义的输出格式,或者如果省略FIELD_LIST则打印所有字段。
-
-P, --portability:使用POSIX输出格式。
-
--sync:在获取使用信息之前调用sync。
-
-t, --type=TYPE:限制列表仅显示类型为TYPE的文件系统。
-
-T, --print-type:打印文件系统类型。
-
-x, --exclude-type=TYPE:限制列表仅显示不是类型为TYPE的文件系统。
-
-v:(被忽略)。
-
--help:显示帮助信息并退出。
-
--version:输出版本信息并退出。
[root@Rocky8-node1 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 838M 0 838M 0% /dev tmpfs 868M 0 868M 0% /dev/shm tmpfs 868M 9.3M 858M 2% /run tmpfs 868M 0 868M 0% /sys/fs/cgroup /dev/mapper/rl-root 17G 6.9G 11G 41% / /dev/nvme0n1p1 1014M 272M 743M 27% /boot tmpfs 174M 12K 174M 1% /run/user/42 tmpfs 174M 0 174M 0% /run/user/0
-
文件系统(Filesystem):列出了当前挂载在你的系统上的文件系统。每个文件系统都由其设备名称或挂载点标识。
-
大小(Size):显示每个文件系统的总大小。
-
已用(Used):显示每个文件系统当前正在使用的空间量。
-
可用(Avail):显示每个文件系统上可用的空间量。
-
使用率(Use%):显示每个文件系统的使用率百分比。
-
挂载点(Mounted on):列出每个文件系统的挂载目录
3、 top命令
实时监控系统的运行状态,并且可以按照cpu及内存等进行排序
top
命令是Linux和其他类Unix系统上常用的实时系统监控工具,它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。这个命令是系统管理员最重要的工具之一,被广泛用于监视服务器的负载。top
命令是一个交互命令,在运行top
的时候还可以运行很多命令23。
命令行选项
-
-d <秒数>:指定
top
命令的刷新时间间隔,单位为秒。 -
-n <次数>:指定
top
命令运行的次数后自动退出。 -
-p <进程ID>:仅显示指定进程ID的信息。
-
-u <用户名>:仅显示指定用户名的进程信息。
-
-H:在进程信息中显示线程详细信息。
-
-i:不显示闲置(idle)或无用的进程。
-
-b:以批处理(batch)模式运行,直接将结果输出到文件。
-
-c:显示完整的命令行而不截断。
-
-S:累计显示进程的CPU使用时间。
显示信息
-
总体系统信息:包括系统的运行时间和平均负载、当前运行的进程和线程数目、总体CPU使用率和各个核心的使用情况、总体内存使用情况、可用内存和缓存。
-
进程信息:包括进程的标识符、运行进程的用户名、进程的优先级、进程的优先级调整值、进程使用的虚拟内存大小、进程实际使用的物理内存大小、进程共享的内存大小、进程占用CPU的使用率、进程占用内存的使用率、进程的累计CPU时间。
功能和交互操作
-
按键命令:在
top
运行时可以使用一些按键命令进行操作,如按下"k"可以终止一个进程,按下"h"可以显示帮助信息等。 -
排序:可以按照CPU使用率、内存使用率、进程ID等对进程进行排序。
-
刷新频率:可以设置
top
的刷新频率,以便动态查看系统信息。
实例
-
显示进程信息:
top
-
显示完整命令:
top -c
-
以批处理模式显示程序信息:
top -b
-
以累积模式显示程序信息:
top -S
-
设置信息更新次数:
top -n 2
(表示更新两次后终止更新显示) -
设置信息更新时间:
top -d 3
(表示更新周期为3秒) -
显示指定的进程信息:
top -p 139
(显示进程号为139的进程信息,CPU、内存占用率等) -
显示更新十次后退出:
top -n 10
-
使用者将不能利用交谈式指令来对行程下命令:
top -s
4、 htop命令
一个非常高级的交互式实时linux进程监控工具,和top相似,但更友好, 还支持鼠标。
[root@Rocky8-node1 ~]# yum install htop -y
5、 iftop命令
ftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。
[root@Rocky8-node1 ~]# iftop interface: ens160 IP address is: 192.168.110.41 MAC address is: 00:0c:29:bc:f9:5b
6、iostat命令
iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
iostat [参数] [时间] [次数]
命令参数说明如下:
-
-c 显示CPU使用情况
-
-d 显示磁盘使用情况
-
-k 以K为单位显示
-
-m 以M为单位显示
-
-N 显示磁盘阵列(LVM) 信息
-
-n 显示NFS使用情况
-
-p 可以报告出每块磁盘的每个分区的使用情况
-
-t 显示终端和CPU的信息
-
-x 显示详细信息
[root@Rocky8-node1 ~]# iotop
7、vmstat命令
-
实时监控操作系统的进程状态、内存、虚拟内存、磁盘IO、cpu。
-
一般是通过两个数字参数来完成的,第一个参数是采样时间间隔,单位是秒, 第二个参数是采样的次数
[root@Rocky8-node1 ~]# vmstat 2 2 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 332288 97804 0 537528 2 12 41 128 320 563 1 1 97 0 00 0 332288 97684 0 537612 0 0 0 1787 714 1305 1 2 98 0 0
-
r: 表示运行队列,如果队列过大说明CPU很繁忙,一般会造成CPU使用率高
-
b: 表示阻塞的进程数
-
swap: 虚拟内存已使用的大小,如果大于0,说明机器的物理内存不够了
-
free: 空闲的物理内存大小
-
buff: 系统占用的缓存大小(写缓存)
-
cache: 直接用来记忆我们打开的文件,给文件做缓冲,读缓存
-
si: 每秒从磁盘读入虚拟内存大小,如果这个值大于0,表示物理内存不足了
-
so: 每秒虚拟内存写入磁盘的大小,如果这个值大于0, 表示物理内存不足了
-
us: 用户cpu时间
-
sy: 系统CPU时间, 如果值 太高,说明系统调用,例如是IO操作频繁
-
id: 空闲CPU时间,一般来说 id + us + sy = 100
-
wt: 等待IO的CPU时间
8、netstat命令
-
实时网络监控,netstat命令用户显示本机网络链接、运行端口、路由表等信息。
[root@Rocky8-node1 ~]# netstat -lnupt | grep 22 #常用 tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1810/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 914/sshd tcp6 0 0 :::22 :::* LISTEN 914/sshd udp 0 0 192.168.122.1:53 0.0.0.0:* 1810/dnsmasq
netstat
命令的一些常用选项及其解释:
-
-r, --route:显示路由表。
-
-I, --interfaces=<Iface>:显示指定接口
<Iface>
的接口表。 -
-i, --interfaces:显示接口表。
-
-g, --groups:显示多播组成员关系。
-
-s, --statistics:显示网络统计信息(类似于SNMP)。
-
-M, --masquerade:显示伪装连接。
-
-v, --verbose:详细显示信息。
-
-W, --wide:不截断IP地址。
-
-n, --numeric:不解析名称。
-
--numeric-hosts:不解析主机名。
-
--numeric-ports:不解析端口名。
-
--numeric-users:不解析用户名。
-
-N, --symbolic:解析硬件名称。
-
-e, --extend:显示其他/更多信息。
-
-p, --programs:显示PID/程序名称对于套接字。
-
-o, --timers:显示计时器。
-
-c, --continuous:连续列表。
-
-l, --listening:显示监听服务器套接字。
-
-a, --all:显示所有套接字(默认:已连接)。
-
-F, --fib:显示转发信息基础(默认)。
-
-C, --cache:显示路由缓存而不是FIB。
-
-Z, --context:显示套接字的SELinux安全上下文。
9、pidstat命令
[root@Rocky8-node1 ~]# pidstat -w 1 2 Linux 4.18.0-513.5.1.el8_9.x86_64 (Rocky8-node1) 03/11/2024 _x86_64_ (2 CPU) 06:44:00 PM UID PID cswch/s nvcswch/s Command 06:44:01 PM 0 13 1.98 0.00 ksoftirqd/0 06:44:01 PM 0 14 21.78 0.00 rcu_sched 06:44:01 PM 0 15 0.99 0.00 migration/0 06:44:01 PM 0 44 1.98 0.00 kworker/0:1H-xfs-log/dm-0 06:44:01 PM 0 163 1.98 0.00 kworker/1:1H-xfs-log/dm-0 06:44:01 PM 0 438 6.93 0.00 kworker/u256:5-writeback 06:44:01 PM 0 832 0.99 0.00 irqbalance
-
cswch/s:进程每秒主动上下文切换的总数主动上下文切换发生在进程阻塞时,因为进程需要的资源不可用
-
nvcswch/s:进程每秒被迫上下文切换的总数进程被迫上下文切换发生在CPU时间切片时,强制进程放弃处理器
选项解释
-
-d:显示与系统相关的不同信息的输出。
-
-H:显示帮助信息。
-
-h:显示简短的帮助信息。
-
-I:显示接口统计信息。
-
-l:显示监听服务器套接字。
-
-R:显示路由表。
-
-r:显示路由表。
-
-s:显示网络统计信息。
-
-t:显示与选定任务关联的线程的统计信息。
-
-U [ <username> ]:显示指定用户名的进程的统计信息。
-
-u:显示用户统计信息。
-
-V:显示版本信息。
-
-v:详细显示信息。
-
-w:显示任务切换活动。
-
-C <command>:显示包含给定字符串的命令名的任务。
-
-G <process_name>:显示指定进程名的进程的统计信息。
-
--human:以人类可读的格式显示输出。
-
-p { <pid> [,...] | SELF | ALL }:显示指定PID的任务的统计信息,或者显示所有任务的统计信息。
-
-T { TASK | CHILD | ALL }:显示与选定任务关联的线程的统计信息。
10、ps命令
ps
命令是Linux系统中用于显示当前运行的进程信息的一个强大工具。它提供了许多选项,可以用来定制输出的内容和格式。以下是ps
命令的一些常用选项及其解释:
-
-d:显示与系统相关的不同信息的输出。
-
-H:显示帮助信息。
-
-h:显示简短的帮助信息。
-
-I:显示接口统计信息。
-
-l:显示监听服务器套接字。
-
-R:显示路由表。
-
-r:显示路由表。
-
-s:显示网络统计信息。
-
-t:显示与选定任务关联的线程的统计信息。
-
-U [ <username> ]:显示指定用户名的进程的统计信息。
-
-u:显示用户统计信息。
-
-V:显示版本信息。
-
-v:详细显示信息。
-
-w:显示任务切换活动。
-
-C <command>:显示包含给定字符串的命令名的任务。
-
-G <process_name>:显示指定进程名的进程的统计信息。
-
--human:以人类可读的格式显示输出。
-
-p { <pid> [,...] | SELF | ALL }:显示指定PID的任务的统计信息,或者显示所有任务的统计信息。
-
-T { TASK | CHILD | ALL }:显示与选定任务关联的线程的统计信息。
[root@Rocky8-node1 ~]# ps -ef | grep mysqld mysql 1186 1 2 13:37 ? 00:07:53 /usr/libexec/mysqld --basedir=/usr root 8146 2260 0 18:48 pts/0 00:00:00 grep --color=auto mysqld [root@Rocky8-node1 ~]# ps aux | grep mysqld mysql 1186 2.5 24.3 1906988 432240 ? Ssl 13:37 7:53 /usr/libexec/mysqld --basedir=/usr root 8149 0.0 0.0 221940 1196 pts/0 S+ 18:48 0:00 grep --color=auto mysqld
11、uptime命令
uptime
命令是Linux系统中用于显示系统运行时间、当前时间、登录用户数量以及系统负载平均值的一个简单而有用的工具。以下是uptime
命令的一些常用选项及其解释:
-
-p, --pretty:以更易于阅读的格式显示系统运行时间。
-
-h, --help:显示帮助信息。
-
-s, --since:显示系统自上次启动以来的时间。
-
-V, --version:输出版本信息。
[root@Rocky8-node1 ~]# uptime -p up 5 hours, 14 minutes
这篇关于Linux常用监控命令(笔试面试常考)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!