/proc虚拟文件系统

一:写在前面:记录/proc的常见使用目录
在Linux系统“一切都是文件”的思想贯彻指导下,所有进程的运行状态都可以用文件来获取。系统根目录/proc中,每一个数字子目录的名字都是运行中的进程的PID,进入任一个进程目录,可通过其中文件或目录来观察进程的各项运行指标,例如task目录就是用来描述进程中线程的,因此也可以通过下面的方法获取某进程中运行中的线程数量(PID指的是进程ID):ls /proc/PID/task | wc -l

在linux中还有一个命令pmap,来输出进程内存的状况,可以用来分析线程堆栈:
 pmap PID

二:/proc目录与linux监控工具展示结果的对应关系
大家都熟悉Linux下可以通过top命令来查看所有进程的内存,CPU等信息。除此之外,还有其他一些命令,可以得到更详细的信息。

# 进程相关
cat /proc/your_PID/status  
通过top或ps -ef | grep '进程名' 得到进程的PID。该命令可以提供进程状态、文件句柄数、内存使用情况等信息。
# 内存相关:vmstat -s -S M  
该可以查看包含内存每个项目的报告,通过-S M或-S k可以指定查看的单位,默认为kb。结合watch命令就可以看到动态变化的报告了。
也可用 cat /proc/meminfo  
# 要看cpu的配置信息可用
cat /proc/cpuinfo  
它能显示诸如CPU核心数,时钟频率、CPU型号等信息。
要查看cpu波动情况的,尤其是多核机器上,可使用
mpstat -P ALL 10 
该命令可间隔10秒钟采样一次CPU的使用情况,每个核的情况都会显示出来,例如,每个核的idle情况等。
只需查看均值的,可用
iostat -c 
IO相关
iostat -P ALL  
该命令可查看所有设备使用率、读写字节数等信息。

#/proc文件系统是一个虚拟的文件系统,不占用磁盘空间,它反映了当前操作系统在内存中的运行情况.其实,我们之前提到的所谓的程序都是在内存当中嘛!而内存当中的数据又都是写入到 /proc/* 这个目录下的。

查看/proc下的文件可以了解到系统的运行状态。查看系统平均负载使用“cat /proc/loadavg”命令。


三、Linux查看物理CPU个数、核数、逻辑CPU个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
 
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
 
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
 
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
 
 # 查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

 

posted @ 2018-08-21 16:25  蹲坑蘑菇  阅读(233)  评论(0编辑  收藏  举报