目录
一、查看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
重要信息说明:
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 命令查看
参数详解:
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 界面说明
-
第一行(顶部进行)
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 命令名/命令行
自定义界面显示:
- 通过按f(或F)键进入选择显示列表,按a-z即可显示或隐藏对于的列,最后按回车确定。
- 按o键可以改变列的显示顺序。按a-z可以将对应的列向右移动,按A-Z可以向左移动,最后按回车确定。
- 按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 其他
- 默认进入top时,各进程是按照CPU占用率排序的,按数字“1”键可以监控每个CPU的状况。
- 按b键可以打开或关闭加亮效果
- 按x键可以打开或关闭排序列的加亮效果(可以按shift+>或shift+<左右改变排序序列)