Linux /proc 文件系统及相关运维指标(上)

321 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

** 1. /proc 文件系统**

Linux内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。 在/proc下还有三个很重要的目录:net,scsi和sys。 Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。 /proc 文件系统下还有一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。

** 2. /proc/net/dev**

   proc/net/dev就是提供给用户读取或更改网络适配器及统计信息的途径。
   

捕获.PNG

   第一行最左边的表示接口的名字,Receive表示收包,Transmit表示发包;

   第二行中每一项的含义是:
  1. bytes: 接口发送或接收的数据的总字节数
    
  2. packets: 接口发送或接收的数据包总数
    
  3. errs: 由设备驱动程序检测到的发送或接收错误的总数
    
  4. drop: 设备驱动程序丢弃的数据包总数
    
  5. fifo: FIFO缓冲区错误的数量
    
  6. frame: 分组帧错误的数量
    
  7. colls: 接口上检测到的冲突数
    
  8. compressed: 设备驱动程序发送或接收的压缩数据包数
    
  9. carrier: 由设备驱动程序检测到的载波损耗的数量
    
  10. multicast:设备驱动程序发送或接收的多播帧数