1 常用工具介绍
系统监控是一种向用户提供有关系统实际计时行为的数据的有用方法。用户可以使用这些监视器提供的数据执行进一步的分析。系统监控的目标之一是确定当前执行是否满足指定的技术要求。
这些监视工具检索通常查看的信息,可以通过命令行或图形用户界面(由系统管理员确定)使用。这些工具显示有关Linux系统的信息,如空闲磁盘空间、CPU温度和其他基本组件,以及网络信息,如系统IP地址和当前上传和下载速率。
1.1 常用的监控工具
Linux内核维护计数事件的反结构,当事件发生时,反结构增加。例如,磁盘读写和处理系统调用都是使用存储为无符号整数的值递增计数器的事件。监视工具读取这些计数器值。这些工具提供进程结构中维护的每个进程的统计信息,或内核中系统范围的统计信息。监视工具通常可由非特权用户查看。ps和top命令提供进程统计信息,包括CPU和内存。
1.1.1 使用ps命令监控进程
排除系统故障需要了解内核与进程之间的通信方式,以及进程之间的通信方式。在创建流程时,系统为流程分配一个状态。
#使用ps aux命令列出所有用户及其扩展的面向用户的详细信息;结果列表包括启动进程的终端,以及没有终端的进程。一个吗?TTY列中的符号表示进程不是从终端启动的。
[student@workstation ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 179004 13556 ? Ss 19:55 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0.0 0.0 0 0 ? S 19:55 0:00 [kthreadd]
#Linux版本的ps支持三种格式:
- UNIX (POSIX)选项,可以分组,并且前面必须有破折号。
- BSD选项,可以分组,但不能包含破折号。
- GNU长选项,前面有两个破折号。
[student@workstation ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:55 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
root 2 0 0 19:55 ? 00:00:00 [kthreadd]
root 3 2 0 19:55 ? 00:00:00 [rcu_gp]
#ps输出中的关键列
- PID: 此列显示唯一进程ID。
- TIME: 此列以小时:分:秒的格式显示自进程启动以来进程消耗的总CPU时间。
- %CPU: 这一列显示了前一秒内的CPU使用率,即所有CPU的使用率之和,以百分比表示。
- RSS: 此列在常驻集大小RSS列中以千字节为单位显示进程消耗的非交换物理内存。
- %MEM: 此列显示进程的驻留集大小与机器上的物理内存的比率,以百分比表示。
#使用-p选项和pidof命令一起列出正在运行的sshd进程。
[student@workstation ~]$ ps -p $(pidof sshd)
PID TTY STAT TIME COMMAND
985 ? Ss 0:00 /usr/sbin/sshd -D [email protected],[email protected],aes256-ctr,aes256-cbc,[email protected],ae 1896 ? Ss 0:00 sshd: student [priv]
1915 ? R 0:00 sshd: student@pts/0
#使用以下命令按内存使用量降序排列所有进程:
[student@workstation ~]$ ps ax --format pid,%mem,cmd --sort -%mem
PID %MEM CMD
1627 10.0 /usr/bin/gnome-shell
1675 2.9 /usr/libexec/ibus-x11 --kill-daemon
1644 2.2 /usr/bin/Xwayland :1024 -rootless -terminate -accessx -core -listen 4 -listen 5 -displayfd 6
1.1.2 使用top监控流程
top命令提供流程活动的实时报告,并提供一个供用户筛选和操作监视数据的接口。该命令的输出在顶部显示系统范围的摘要,在底部显示进程列表,默认情况下是根据使用CPU最多的任务排序的。
#-n 1选项在显示一次进程列表后终止程序。命令使用示例如下:
[student@workstation ~]$ top -n 1
top - 20:37:04 up 41 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 184 total, 2 running, 182 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 3.1 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1829.1 total, 923.8 free, 459.6 used, 445.7 buff/cache
top - 20:37:20 up 42 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 184 total, 3 running, 181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 3.1 sy, 0.0 ni, 96.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1829.1 total, 923.8 free, 459.5 used, 445.7 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1204.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2472 student 20 0 273720 4396 3748 R 6.2 0.2 0:00.01 top
1 root 20 0 179004 13556 8848 S 0.0 0.7 0:01.87 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
#用于字段排序的有用组合键
- RES: 使用Shift+M基于驻留内存对进程进行排序。
- PID: 使用Shift+N根据进程ID对进程进行排序。
- TIME+: 使用Shift+T根据CPU时间对进程进行排序。
按F并从列表中选择一个字段以使用其他字段进行排序。
#重要的由于各种系统调用,top命令会给系统带来很大的开销。运行top命令时,运行top命令的进程通常是cpu消耗最多的进程。
1.1.3 监控内存使用情况
free命令列出空闲和使用的物理内存和交换内存。选项-b、-k、m、-g分别显示以字节、KB、MB或GB为单位的输出。-s选项作为参数传递,用于指定两次刷新之间的秒数。例如,free -s1每1秒产生一次更新。
[student@workstation ~]$ free -m
total used free shared buff/cache available
Mem: 1829 459 924 17 445 1204
Swap: 0 0 0
[student@workstation ~]$ free -s 1
total used free shared buff/cache available
Mem: 1872980 470012 946500 17708 456468 1233388
Swap: 0 0 0
total used free shared buff/cache available
Mem: 1872980 469980 946532 17708 456468 1233420
Swap: 0 0 0
buff/cache和availbale接近零的值表示内存不足。如果可用内存超过总内存的20%,并且已使用内存接近总内存,那么这些值表示系统处于健康状态。
1.1.4 监控文件系统使用情况
与文件系统相关联的一个稳定标识符是它的UUID,这是一个非常长的十六进制数,充当通用唯一标识符。这个UUID是文件系统的一部分,只要不重新创建文件系统,它就保持不变。#lsblk - fp命令列出了设备的完整路径,以及uuid和挂载点,以及分区中的文件系统类型。如果文件系统未挂载,则挂载点显示为空。
[student@workstation ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 10G 0 disk
└─vda1 252:1 0 10G 0 part /
[student@workstation ~]$ lsblk -fp
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/vda
└─/dev/vda1 xfs 884f47c9-a69d-4c5b-915d-6b7c9c74c923 /
#findmnt命令允许用户快速查看在哪里挂载了什么,以及使用了哪些选项。在不带任何选项的情况下执行findmnt命令将以树的布局列出所有挂载的文件系统。使用- s选项从/etc/fstab文件中读取文件系统。使用- S选项按源磁盘搜索文件系统。
[student@workstation ~]$ findmnt -S /dev/vda1
TARGET SOURCE FSTYPE OPTIONS
/ /dev/vda1 xfs rw,relatime,seclabel,attr2,inode64,noquota
#df命令提供文件系统的总使用情况。h选项将输出转换为人类可读的形式。
[student@workstation ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 881M 0 881M 0% /dev
tmpfs 915M 0 915M 0% /dev/shm
tmpfs 915M 18M 898M 2% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/vda1 10G 5.1G 5.0G 51% /
tmpfs 183M 28K 183M 1% /run/user/42
tmpfs 183M 4.0K 183M 1% /run/user/1000
du命令显示给定目录及其子目录中所有文件的总大小。-s选项禁止输出详细信息,只显示总数。与df -h命令类似,-h选项将输出显示为人类可读的形式。
[student@workstation ~]$ du
12 ./.ssh
32 ./.config/pulse
0 ./.config/procps
40 ./.config
68 .
[student@workstation ~]$ du -s
68 .
[student@workstation ~]$ du -sh
68K .
标签:workstation,00,0.0,性能,常用,student,进程,监测,CPU
From: https://blog.51cto.com/u_15606628/6693331