文件或目录名称 | 描 述 |
---|---|
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 | 这个文件只有一行内容,说明正在运行的内核版本。可以用标准的编程方法进行分析获得所需的系统信息 |
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 的输入/输出统计信息
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