查看系统信息

一、查看CPU信息

1.1 文件查看

[root@localhost ~]# cat /proc/cpuinfo

文件中的内容说明:

processor :系统中逻辑处理核的编号。对于单核处理器,则课认为是其CPU编号,对于多核处理器则可以是物理核、或者使用超线程技术虚拟的逻辑核
vendor_id :CPU制造商     
cpu family :CPU产品系列代号
model   :CPU属于其系列中的哪一代的代号
model name:CPU属于的名字及其编号、标称主频
stepping   :CPU属于制作更新版本
cpu MHz   :CPU的实际使用主频
cache size   :CPU二级缓存大小
physical id   :单个CPU的标号
siblings       :单个CPU逻辑物理核数
core id        :当前物理核在其所处CPU中的编号,这个编号不一定连续
cpu cores    :该逻辑核所处CPU的物理核数
apicid          :用来区分不同逻辑核的编号,系统中每个逻辑核的此编号必然不同,此编号不一定连续
fpu             :是否具有浮点运算单元(Floating Point Unit)
fpu_exception  :是否支持浮点计算异常
cpuid level   :执行cpuid指令前,eax寄存器中的值,根据不同的值cpuid指令会返回不同的内容
wp             :表明当前CPU是否在内核态支持对用户空间的写保护(Write Protection)
flags          :当前CPU支持的功能
bogomips   :在系统内核启动时粗略测算的CPU速度(Million Instructions Per Second)
clflush size  :每次刷新缓存的大小单位
cache_alignment :缓存地址对齐单位
address sizes     :可访问地址空间位数
power management :对能源管理的支持,有以下几个可选支持功能:

1.2 命令查看

[root@localhost ~]# lscpu

image-20201027170805084

重要信息说明:

  Architecture: 		#架构
  CPU(s): 				#逻辑cpu颗数
  Thread(s) per core: 	#每个核心线程
  Core(s) per socket: 	#每个cpu插槽核数/每颗物理cpu核数
  CPU socket(s): 		#cpu插槽数
  Vendor ID: 			#cpu厂商ID
  CPU family: 			#cpu系列
  Model: 				#型号
  Stepping: 			#步进
  CPU MHz: 				#cpu主频
  Virtualization: 		#cpu支持的虚拟化技术
  L1d cache: 			#一级缓存(google了下,这具体表示表示cpu的L1数据缓存)
  L1i cache: 			#一级缓存(具体为L1指令缓存)
  L2 cache: 			#二级缓存

二、查看内存信息

2.1 文件查看

[root@localhost ~]# cat /proc/meminfo
MemTotal:         995748 kB		# 总内存
MemFree:          378096 kB		# 空闲内存
MemAvailable:     653724 kB		# 可用内存
Buffers:            2076 kB		# 缓冲区大小
Cached:           387440 kB		# 缓存区大小
SwapCached:            0 kB		# 交换分区大小
Active:           349724 kB		# 活跃使用中的高速缓冲存储器页面文件大小
Inactive:         108464 kB		# 不经常使用中的告诉缓冲存储器文件大小
Active(anon):      69140 kB		# 活跃的匿名内存(进程中堆上分配的内存,是用malloc分配的内存)
Inactive(anon):     7320 kB		# 不活跃的匿名内存
Active(file):     280584 kB		# 活跃的file内存,//file内存:磁盘高速缓存的内存空间和“文件映射(将物理磁盘上的文件内容与用户进程的逻辑地址直接关联)”的内存空间,其中的内容与物理磁盘上的文件相对应
Inactive(file):   101144 kB		# 不活跃的file内存
Unevictable:           0 kB		# 不能被释放的内存页
Mlocked:               0 kB		# mlock()系统调用锁定的内存大小
SwapTotal:       1048572 kB		# 交换空间总大小
SwapFree:        1048572 kB		# 空闲交换空间
Dirty:                 0 kB		# 等待被写回到磁盘的大小
Writeback:             0 kB		# 正在被写回的大小
AnonPages:         68664 kB		# 未映射页的大小
Mapped:            26356 kB		# 设备和文件映射大小
Shmem:              7788 kB		# 已经被分配的共享内存大小
Slab:              84716 kB		# 内核数据结构缓存大小
SReclaimable:      43200 kB		# 可收回slab的大小
SUnreclaim:        41516 kB		# 不可回收的slab的大小
KernelStack:        3856 kB		# kernel消耗的内存
PageTables:         4524 kB		# 管理内存分页的索引表的大小
NFS_Unstable:          0 kB		# 不稳定页表的大小
Bounce:                0 kB		# 在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritebackTmp:          0 kB		# USE用于临时写回缓冲区的内存
CommitLimit:     1546444 kB		# 系统实际可分配内存总量
Committed_AS:     282144 kB		# 当前已分配的内存总量
VmallocTotal:   34359738367 kB	# 虚拟内存大小
VmallocUsed:      179268 kB		# 已经被使用的虚拟内存大小
VmallocChunk:   34359310332 kB	# malloc 可分配的最大的逻辑连续的内存大小
HardwareCorrupted:     0 kB		# 删除掉的内存页的总大小(当系统检测到内存的硬件故障时)
AnonHugePages:      6144 kB		# 匿名 HugePages 数量
CmaTotal:              0 kB		# 总的连续可用内存
CmaFree:               0 kB		# 空闲的连续内存
HugePages_Total:       0		# 预留HugePages的总个数
HugePages_Free:        0		# 池中尚未分配的 HugePages 数量
HugePages_Rsvd:        0		# 表示池中已经被应用程序分配但尚未使用的 HugePages 数量
HugePages_Surp:        0		# 这个值得意思是当开始配置了20个大页,现在修改配置为16,那么这个参数就会显示为4,一般不修改配置,这个值都是0
Hugepagesize:       2048 kB		# 每个大页的大小
DirectMap4k:       79744 kB		# 映射TLB为4kB的内存数量
DirectMap2M:      968704 kB		# 映射TLB为2M的内存数量
DirectMap1G:           0 kB		# 映射TLB为1G的内存数量

2.2 命令查看

image-20201027172702848

参数详解:

total		# 内存总数
used		# 已经使用内存数
free		# 完全空闲内存
shared		# 多个进程共享的内存
buffers		# 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等)
cached		# 用于文件内容的缓冲
availabl	# 真正剩余的可被程序应用的内存数
Mem			# 内存
Swap		# 交换分区

三、磁盘/挂载信息

3.1 文件查看

[root@localhost ~]# cat /proc/mounts 
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=487140k,nr_inodes=121785,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,net_prio,net_cls 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,seclabel,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,seclabel,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,seclabel,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,seclabel,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,seclabel,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,seclabel,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,blkio 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/sda3 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13421 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=99576k,mode=700 0 0

3.2 命令查看

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        476M     0  476M   0% /dev
tmpfs           487M     0  487M   0% /dev/shm
tmpfs           487M  7.7M  479M   2% /run
tmpfs           487M     0  487M   0% /sys/fs/cgroup
/dev/sda3        19G  1.9G   17G  10% /
/dev/sda1       197M  109M   89M  56% /boot
tmpfs            98M     0   98M   0% /run/user/0

四、负载信息

4.1 文件查看

[root@localhost ~]# cat /proc/loadavg 
8.13, 5.90, 4.94 1/115 2331

说明:

前三个数值是1、5、15分钟内的平均进程数
第四个数值的分子是正在运行的进程数,分母是进程总数
最后一个数值是最近运行的进程ID号

注意:

	一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于 上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。
	数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的。如果这个数除以CPU的数目,结果高于5的时候就表明系统在超负荷运转了。

4.2 命令查看

4.2.1 w 命令

[root@localhost ~]# w
 17:56:48 up  2:21,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.0.0.1         15:43    0.00s  0.05s  0.00s w
  • 功能说明:显示目前登入系统的用户信息。
  • 语  法:w [参数] [用户名称]

参数:

参数 说明
-f 开启或关闭显示用户从何处登入系统
-h 不显示各栏位的标题信息列
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息
-V 显示版本信息

4.2.2 uptime 命令

[root@localhost ~]# uptime 
 18:05:19 up  2:29,  1 user,  load average: 0.00, 0.01, 0.05
  • 功能说明:显示系统运行时间和用户
  • 语 法:uptime [参数]

参数:

参数 说明
-p 以漂亮的方式显示运行时间
-V 版本

4.2.3 tload 命令

[root@localhost ~]# tload
  • 功能说明:显示负载信息
  • 语法:tload [-V][-d <间隔秒数>][-s <刻度大小>] [终端机编号]

参数:

参数 说明
-d 设置检测负载间隔,单位秒
-s 设置图表的垂直刻度大小,单位列

4.2.4 top 命令

  • 功能说明:查看系统信息(相当于Windows的资源管理器)

4.2.4.1 参数:

参数 说明
-d 设置更新速度,默认5秒
-b 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
-p 指定监控进程ID来仅仅监控某个进程的状态
-S 指定累计模式
-q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
-s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
-i 使top不显示任何闲置或者僵死进程
-c 显示整个命令行而不只是显示命令名

4.2.4.2 top界面常用命令:

命令 说明
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽
i 忽略闲置和僵死进程。这是一个开关式命令
q 退出程序
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10
S 切换到累计模式
s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加
f/F 从当前显示中添加或者删除项目
o/O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据驻留内存大小进行排序
T 根据时间/累计时间进行排序
P 根据CPU使用百分比大小进行排序
W 将当前设置写入~/.toprc文件中

4.2.4.3 界面说明

image-20201027185755536

  • 第一行(顶部进行)

    top - 18:57:32 up  3:21,  1 user,  load average: 0.05, 0.03, 0.05
    
    内容 说明
    18:57:32 表示当前时间
    up 3:21 表示系统运行时间,格式:时:分
    1 user 表示登录用户数
    load average: 0.05, 0.03, 0.05 系统负载
  • 第二行(进程信息)

    Tasks:  98 total,   2 running,  95 sleeping,   1 stopped,   0 zombie
    
    内容 说明
    98 total 进程总数
    2 running 正在运行的进程数
    95 sleeping 睡眠的进程数
    1 stopped 停止的进程数
    0 zombie 僵尸进程数
  • 第三行(CPU信息)

    %Cpu(s):  0.0 us,  0.3 sy,  0.0 ni,99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    
    内容 说明
    0.0 us 用户空间占用CPU百分比
    0.3 sy 内核空间占用CPU百分比
    0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
    99.7 id 空闲CPU百分比
    0.0 wa 等待输入输出的CPU时间百分比
    0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
    0.0 si 软中断(Software Interrupts)占用CPU的百分比
    0.0 st 这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
  • 第四行(内存信息)

    KiB Mem :   995748 total,   373872 free,   186972 used,   434904 buff/cache
    
    内容 说明
    995748 total 物理内存总量
    373872 free 空闲内存总量
    186972 used 使用内存总量
    434904 buff/cache 缓冲/缓存的空间总量
  • 第五行(交换分区信息)

    KiB Swap:  1048572 total,  1048572 free,        0 used.   651516 avail Mem
    
    内容 说明
    1048572 total 交换区总量
    1048572 free 空闲的交换区总量
    0 used 使用的交换区总量
    651516 avail Mem 代表可用于进程下一次分配的物理内存数量
  • 第六行(默认情况下进程的详细信息)

    列名 说明
    PID 进程id
    USER 进程所有者的用户名
    PR 优先级
    NI nice值。负值表示高优先级,正值表示低优先级
    VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR 共享内存大小,单位kb
    S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU 自从上一次更新时到现在任务所使用的CPU时间百分比
    %MEM 进程使用的可用物理内存百分比
    TIME+ 进程使用的CPU时间总计,单位1/100秒
    COMMAND 命令名/命令行

自定义界面显示:

  1. 通过按f(或F)键进入选择显示列表,按a-z即可显示或隐藏对于的列,最后按回车确定。
  2. 按o键可以改变列的显示顺序。按a-z可以将对应的列向右移动,按A-Z可以向左移动,最后按回车确定。
  3. 按F或O键,然后按a-z可以进行将进程按照相应的列进行排序;按R键可以将排序倒转。

对应关系:

序号 列名 说明
a PID 进程id
b PPID 父进程id
c RUSER Real User Name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志

4.2.4.4 其他

  1. 默认进入top时,各进程是按照CPU占用率排序的,按数字“1”键可以监控每个CPU的状况。
  2. 按b键可以打开或关闭加亮效果
  3. 按x键可以打开或关闭排序列的加亮效果(可以按shift+>或shift+<左右改变排序序列)
原文地址:https://www.cnblogs.com/os-linux/p/13887155.html