zoukankan      html  css  js  c++  java
  • /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

  • 相关阅读:
    git整理
    oracle中utl_raw
    mysqltest语法整理
    oracle存储过程中拼接字符串及转义逗号
    oracle存储过程中循环游标,变量的引用
    oracle触发器
    oracle序列相关
    编译1
    面向对象的脚本语言的类的实现
    词法分析器
  • 原文地址:https://www.cnblogs.com/move-on-change/p/9512119.html
Copyright © 2011-2022 走看看