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:I/O等待占用CPU的百分比
hi:硬中断占用CPU百分比
si:软中断占用CPU百分比
st:虚拟机占用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:命令行
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统计信息
lscpu 显示与CPU相关的信息
lscpu是一个命令行工具,用于显示与CPU相关的信息。它从sysfs和/proc/cpuinfo收集CPU体系结构信息,并以易于阅读的方式输出这些信息。
输出的信息可能包括CPU数量、线程、核数、socket和Nom-Uniform Memeor Access (NUMA)等。
这个命令在使用时,不需要任何特殊的权限。
内容来自《跟老男孩学Linux运维》