linux man在线手册
可以查看命令使用方法
Linux man pages online (man7.org)
top:实时显示系统中各个进程的资源占用状况
top [选项]
交互式命令
基本视图内容解释
top命令:
第一行队列任务信息
第二行 进程任务信息可以看到运行、休眠、停止、僵死状态的进程个数
第三行:CPU状态信息
%Cpu(s): 0.5 us, 0.4 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us:用户进程占用CPU百分比
sy:内核进程占用CPU百分比
ni:改变过优先级的进程占用
id:空闲进程占用
wa:CPU 在读写的时候,所产生的 IO 等待时间占 CPU 时间的百分比
hi:硬中断占用CPU百分比
si:软中断占用CPU百分比
st:虚拟机占用CPU百分比
st : time stolen from this vm by the hypervisor(被偷走的CPU)
st cpu 是指虚拟机被宿主机上的其他应用或 虚拟机抢走的 CPU。
"st"代表的是"time stolen from this vm by the hypervisor",指的是虚拟机被hypervisor(虚拟机监视器)窃取的时间。在虚拟化环境中,如果一个虚拟机在一段时间内没有收到CPU时间片,那么它的时间就会被hypervisor窃取,用于其他正在运行的虚拟机。这种窃取行为是为了平衡系统资源,确保所有虚拟机都能得到合理的CPU分配。
第四行:内存信息
KiB Mem : 16431440 total, 3815204 free, 9833880 used, 2782356 buff/cache
buffers:缓冲的内存量
第五行:交换分区信息
KiB Swap: 0 total, 0 free, 0 used. 6249880 avail Mem
cached缓存的内存量
真正可用的内存:第四行free+第四行buffers+第五行cached
第七行:进程状态监控
PR:进程优先级
NI:nice值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存数量,单位kb
RES:进程使用的未被换出的物理内存大小,单位kb
SHR:共享内存大小单位kb
S 进程状态。D=不可中断的睡眠状态R=运行S=睡眠T=跟踪/停止Z=僵尸进程
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+:进程使用的CPU时间总计单位1/100秒
COMMAND:命令行
mpstat CPU信息统计
安装
在CentOS上安装mpstat的步骤如下:
- 使用操作系统的包管理器,例如使用yum命令进行安装:
sudo yum install sysstat
- 安装完成后,可以在终端中使用mpstat命令。
mpstat是Multiprocessor Statistics的缩写,是一种实时系统监控工具。mpstat命令会输出CPU的一些统计信息
使用方法
mpstat命令的最大特点是:可以查看多核心CPU中每个计算核心的统计数据,而类似命令vmstat只能查看系统整体的CPU情况
1)在mpstat命令及后面的选项里,每个元素之间都至少要有一个空格。2)delay表示两次输出之间的时间间隔。3)count表示按照delay指定的时间间隔统计的次数。
mpstat命令的参数选项及说明
使用示例
mpstat 如果省略时间间隔和次数参数,则仅显示一次报告后就退出
mpstat 2 5 表示每2秒更新一次输出信息,统计5次后停止输出,这种会只输出all
mpstat -P ALL 2 5 输出所有CPU信息,2s一次共5次
mpstat -P 0指定CPU 0指的是第一个CPU
结果详细说明
CPU,all表示所有CPU,0表示第一个CPU……
·%usr:用户进程消耗的CPU时间百分比。
·%nice:改变过优先级的进程占用的CPU时间百分比。·
%sys:系统(内核)进程消耗的CPU时间百分比。·
%iowait:IO等待所占用的CPU时间百分比。
·%irq:硬中断占用的CPU时间百分比。
%soft:软中断占用的CPU时间百分比%steal:虚拟机强制CPU等待的时间百分比。
·%guest:虚拟机占用CPU时间的百分比。
·%idle:CPU处在空闲状态的时间百分比。
uptime:显示系统的运行时间及负载
uptime命令可以输出当前系统时间、系统开机到现在的运行时间、目前有多少用户在线和系统平均负载等信息。
[root@oldboy ~]# uptime 19:07:14 up 13 min, 1 user, load average: 0.00, 0.00, 0.00 系统时间 运行时长 登录用户数 平均负载 1min,5min,15min
uptime命令从如下两个文件读取信息
从/var/run/uptmp中读取用户登录信息。 从/proc中读取进程信息。
free:查看系统内存信息
free命令用于显示系统内存状态,具体包括系统物理内存、虚拟内存、共享内存和系统缓存等
free 选项
free -h比较好用。
直接用free命令不加参数很难读懂,建议带参数
·buffers为写入数据缓冲区。·cache为读取数据的缓存区。
·Linux系统的特性是将不用的物理内存缓存起来,因此系统的真实剩余内存。并不是free值
可用内存为available的值。
实时查询内存
free -h -s 10
vmstat:虚拟内存统计
vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用vmstat命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整体情况进行统计,无法对某个进程进行深入分析
第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
参数选项
vmstat # 仅显示一次报告后退出
vmstat 5 # 每5秒钟更新一次输出,按ctrl+C停止输出
vmstat 5 6 # 5秒钟更新一次,6次后退出
vmstat -a 2 5 显示活跃和非活跃内存,
memory列增加了inact和active两列,其说明具体如下。·inact:非活跃的内存大小(当使用-a选项时显示)。·active:活跃的内存大小(当使用-a选项时显示)
vmstat -s 查看内存使用详细信息 分别来自于/proc/meminfo、/proc/stat和/proc/vmstat
vmstat -d 查看磁盘读写 信息主要来自于/proc/diskstats。其中的merged表示一次来自于合并的写/读请求,系统一般会把多个连接/邻近的读/写请求合并到一起来操作。】
vmstat -p /dev/sda1 般会把多个连接/邻近的读/写请求合并到一起来操作。
这些信息主要来自于/proc/diskstats。各列的说明具体如下。·reads:来自于该分区的读的次数。·read sectors:来自于该分区的读扇区的次数。·writes:来自于该分区的写的次数。·requested writes:来自于该分区的写请求次数。
iotop:动态显示磁盘I/O统计信息
iostat:I/O信息统计
iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视
命令参数选项及说明
示例
iostat 省略时间间隔和次数,则显示一次报告就结束
第1~2行中各列的含义具体如下。·%user:用户进程消耗的CPU时间百分比。·%nice:改变过优先级的进程占用的CPU时间百分比。·%system:系统(内核)进程消耗的CPU时间百分比。·%iowait:IO等待所占用的CPU时间百分比。·%steal:虚拟机强制CPU等待的时间百分比。·%idle:CPU处在空闲状态的时间百分比。
第3~4行中各列的含义如下。·tps:表示该设备每秒的传输次数,“一次传输”的意思是“一次I/O请求”,多个逻辑请求可能会被合并为“一次I/O请求”,“一次传输”请求的大小是未知的。·KB_read/s:表示每秒读取的数据KB。·KB_wrtn/s:表示每秒写入的KB。·KB_read:表示读取的所有KB。·KB_wrtn:表示写入的所有KB。
iostat 2 3 2秒刷新一次,显示3次
iostat -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操作的百分比
iostat -c 只查看CPU信息
lscpu 显示与CPU相关的信息
lscpu是一个命令行工具,用于显示与CPU相关的信息。它从sysfs和/proc/cpuinfo收集CPU体系结构信息,并以易于阅读的方式输出这些信息。
输出的信息可能包括CPU数量、线程、核数、socket和Nom-Uniform Memeor Access (NUMA)等。
这个命令在使用时,不需要任何特殊的权限。
内容来自《跟老男孩学Linux运维》