proc主要文件说明

本文详细介绍了Linux系统中的性能分析工具vmstat和iostat的使用,包括vmstat的进程、内存、IO和系统状态指标,以及iostat的CPU和磁盘I/O统计信息,帮助理解系统性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件或目录名称

描 述

apm

高级电源管理信息

cmdline

这个文件给出了内核启动的命令行

CPUinfo

中央处理器信息

devices

可以用到的设备(块设备/字符设备)

dma

显示当前使用的 DMA 通道

filesystems

核心配置的文件系统

ioports

当前使用的 I/O 端口

interrupts

这个文件的每一行都有一个保留的中断

kcore

系统物理内存映像

kmsg

核心输出的消息,被送到日志文件

mdstat

这个文件包含了由 md 设备驱动程序控制的 RAID 设备信息

loadavg

系统平均负载均衡

meminfo

存储器使用信息,包括物理内存和交换内存

modules

这个文件给出可加载内核模块的信息。lsmod 程序用这些信息显示有关模块的名称,大小,使用数目方面的信息

net

网络协议状态信息

partitions

系统识别的分区表

pci

pci 设备信息

scsi

scsi 设备信息

self

到查看/proc 程序进程目录的符号连接

stat

这个文件包含的信息有 CPU 利用率,磁盘,内存页,内存对换,全部中断,接触开关以及赏赐自举时间

swaps

显示的是交换分区的使用情况

uptime

这个文件给出自从上次系统自举以来的秒数,以及其中有多少秒处于空闲

version

这个文件只有一行内容,说明正在运行的内核版本。可以用标准的编程方法进行分析获得所需的系统信息

超全整理!Linux性能分析工具汇总合集 - 知乎

vmstat--虚拟内存统计

vmstat [参数][间隔时间][次数]

line1:平均值 ;line2:Now line3+:间隔N秒后

procs(进程):

r:多少进程在等待cpu,可判断是否需要增加CPU

b:多少进程正在不可中断的休眠(等待IO)

memory(内存):

swpd:使用虚拟内存大小

free: 空闲物理内存大小

buff: 用作缓冲的内存大小

cache: 用作缓存的内存大小

swpd:显示了多少块从块设备读取(si)和写出(so),通常反映了硬盘I/O。

si: 每秒从交换区写到内存的大小,由磁盘调入内存
so: 每秒写入交换区的内存大小,由内存调入磁盘

注意⚠️:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有人看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO:

bi: 每秒读取的块数
bo: 每秒写入的块数

注意⚠️:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统):

in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。

cpu:

us: 用户进程执行时间百分比(user time)

⚠️:us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。

sy: 内核系统进程执行时间百分比(system time)

⚠️:sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,应该检查原因。

id: 空闲时间百分比

wa: IO等待时间百分比

⚠️:wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。

内存不足的表现:free memory急剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa)

iostat--报告中央处理器(CPU)统计信息

报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息

Linux iostat命令详解 - 简书

iostat[参数][时间][次数]
-C 显示CPU使用情况
-d 显示磁盘使用情况
-k 以 KB 为单位显示
-m 以 M 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p[磁盘] 显示磁盘和分区的情况
-t 显示终端和CPU的信息
-x 显示详细信息
-V 显示版本信息

 
         

常见用法

iostat -d -k 2 4

cpu属性值说明:

%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。

disk属性值说明:

​​​​​​​rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rsec/s: 每秒读扇区数。即 rsect/s
wsec/s: 每秒写扇区数。即 wsect/s
rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu-sz: 平均I/O队列长度。
await: 平均每次设备I/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比

⚠️:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

dstat--系统监控工具

查看CPU信息(型号) [root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

24 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz

# 查看物理CPU个数 [root@AAA ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

2

# 查看每个物理CPU中core的个数(即核数) [root@AAA ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq

cpu cores : 6

# 查看逻辑CPU的个数 [root@AAA ~]# cat /proc/cpuinfo| grep "processor"| wc -l

24


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值