0


Linux 下的 /proc 目录介绍

Linux 下的 /proc 目录介绍

目录

在 Linux 系统中,/proc 目录是一个位于内存中的伪文件系统。该目录下保存的并不是真正的文件和目录,而是一些【运行时】的信息,如 CPU 信息、负载信息、系统内存信息、磁盘 IO 信息等。

Linux 内核提供了一种通过 proc 文件系统,在运行时访问内核内部的数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。通过ll -h 命令查看该目录下的文件,发现几乎所有的文件大小都是 0。但可以通过 vim、cat、less、more 等命令查看文件的内容。

/proc目录是内核提供给我们的查询中心,通过查询该目录下的文件内容,可以获取到有关系统硬件及当前运行进程的信息。

用户和应用程序可以通过 proc 得到系统的信息,并可以改变内核的某些参数。由于进程等系统信息是动态改变的,所以用户或应用程序读取 proc 文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。

/proc 目录下的文件或子目录取决于系统的内核配置和装载的模块。其中 sys 目录是可写的,可以通过它来访问或修改内核参数;而 net 和 scsi 则依赖于内核配置。如果系统不支持 scsi,则 scsi 目录不存在。还有一些以数字命名的目录,它们是进程目录。当前运行的每一个进程都有对应的一个目录在 /proc 下,以进程的 PID 号为目录名,它们是读取进程信息的接口。self 目录则是读取进程本身的信息接口,是一个link。

/proc 目录的内容如下图所示:

在这里插入图片描述

1、/proc 目录包含的文件及其作用

/proc/cmdline         # 保存操作系统的启动参数
/proc/cpuinfo         # 保存CPU的相关信息。对应lscpu命令。
/proc/devices         # 系统已经加载的所有块设备和字符设备的信息。
/proc/diskstats       # 统计磁盘设备的I/O信息。
/proc/filesystems     # 保存当前系统支持的文件系统。
/proc/kcore              # 物理内存的镜像。该文件大小是已使用的物理内存加上4K。
/proc/loadavg          # 保存最近1分钟、5分钟、15分钟的系统平均负载。
/proc/meminfo          # 保存当前内存使用情况。对应free命令
/proc/mounts -> self/mounts    # 系统中当前挂载的所有文件系统。mount命令。# mounts文件是链接到self/mounts。
/proc/partitions      # 每个分区的主设备号(major)、次设备号(minor)、包含的块(block)数目。
/proc/uptime          # 系统自上次启动后的运行时间。
/proc/version         # 当前系统的内核版本号
/proc/vmstat          # 当前系统虚拟内存的统计数据

2、/proc 目录包含的子目录及其内容

(1)/proc/bus

系统总线(Bus)信息,例如 pci、usb 等,目录内容如下:

[root@localhost proc]# ll /proc/bus
总用量 0
dr-xr-xr-x. 2 root root 011月 1211:41 input
dr-xr-xr-x. 4 root root 011月 1211:41 pci
[root@localhost proc]# ll /proc/bus/input
总用量 0
-r--r--r--. 1 root root 011月 1211:42 devices
-r--r--r--. 1 root root 011月 1211:42 handlers
[root@localhost proc]# ll /proc/bus/pci
总用量 0
dr-xr-xr-x. 2 root root 011月 1211:42 00
dr-xr-xr-x. 2 root root 011月 1211:42 02
-r--r--r--. 1 root root 011月 1211:42 devices

(2)/proc/driver

驱动信息,目录内容如下:

[root@localhost proc]# ll /proc/driver
总用量 0
-r--r--r--. 1 root root 011月 1211:43 nvram
-r--r--r--. 1 root root 011月 1211:43 rtc

(3)/proc/fs

文件系统信息,目录内容如下:

[root@localhost proc]# ll /proc/fs
总用量 0
dr-xr-xr-x. 2 root root 011月 1211:45 nfsd
dr-xr-xr-x. 2 root root 011月 1211:45 xfs
[root@localhost proc]# ll /proc/fs/nfsd
总用量 0[root@localhost proc]# ll /proc/fs/xfs
总用量 0
lrwxrwxrwx. 1 root root 2311月 1211:45 stat -> /sys/fs/xfs/stats/stats
-r--r--r--. 1 root root  011月 1211:45 xqm
-r--r--r--. 1 root root  011月 1211:45 xqmstat

(4)设备信息

# 网卡设备信息[root@localhost proc]# ll /proc/net
lrwxrwxrwx. 1 root root 811月 1211:47 /proc/net -> self/net
# 网络流量统计。接收、发送、发送时的错误和冲突情况。[root@localhost proc]# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
lo:   1863221200000018632212000000
ens33: 266978316271249000000711072375371000000# scsi设备信息[root@localhost proc]# ll /proc/scsi
总用量 0
-r--r--r--. 1 root root 011月 1211:48 device_info
dr-xr-xr-x. 2 root root 011月 1211:48 mptspi
-r--r--r--. 1 root root 011月 1211:48 scsi
dr-xr-xr-x. 2 root root 011月 1211:48 sg
#tty设备信息[root@localhost proc]# ll /proc/tty 
总用量 0
dr-x------. 2 root root 011月 1211:48 driver
-r--r--r--. 1 root root 011月 1211:48 drivers
dr-xr-xr-x. 2 root root 011月 1211:48 ldisc
-r--r--r--. 1 root root 011月 1211:48 ldiscs

(5)进程目录

/proc 目录下有很多以数字命名的目录,这些目录与进程的 pid 相对应。通过这些目录,可以查看进程相关的信息。比如,mysql 对应的进程号为 25787:

[root@localhost proc]# ps -ef |grep mysql
mysql     257871011月09 ?      00:02:27 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root      2755226884012:00 pts/0    00:00:00 grep --color=auto mysql

进程号为 25787 对应的目录内容如下:

[root@localhost proc]# cd 25787[root@localhost 25787]# pwd
/proc/25787
[root@localhost 25787]# ll
总用量 0
dr-xr-xr-x.  2 mysql mysql 011月 1212:02 attr
-rw-r--r--.  1 mysql mysql 011月 1212:02 autogroup
-r--------.  1 mysql mysql 011月 1212:02 auxv
-r--r--r--.  1 mysql mysql 011月 1212:02 cgroup
--w-------.  1 mysql mysql 011月 1212:02 clear_refs
-r--r--r--.  1 mysql mysql 011月 1212:00 cmdline
-rw-r--r--.  1 mysql mysql 011月 1212:02 comm
-rw-r--r--.  1 mysql mysql 011月 1212:02 coredump_filter
-r--r--r--.  1 mysql mysql 011月 1212:02 cpuset
lrwxrwxrwx.  1 mysql mysql 011月 1212:02 cwd -> /var/lib/mysql
-r--------.  1 mysql mysql 011月 1212:02 environ
lrwxrwxrwx.  1 mysql mysql 011月 1212:02 exe -> /usr/sbin/mysqld
dr-x------.  2 mysql mysql 011月 1212:02 fd
dr-x------.  2 mysql mysql 011月 1212:02 fdinfo
-rw-r--r--.  1 mysql mysql 011月 1212:02 gid_map
-r--------.  1 mysql mysql 011月 1212:02 io
-r--r--r--.  1 mysql mysql 011月 1212:02 limits
-rw-r--r--.  1 mysql mysql 011月 1212:02 loginuid
dr-x------.  2 mysql mysql 011月 1212:02 map_files
-r--r--r--.  1 mysql mysql 011月 1212:02 maps
-rw-------.  1 mysql mysql 011月 1212:02 mem
-r--r--r--.  1 mysql mysql 011月 1212:02 mountinfo
-r--r--r--.  1 mysql mysql 011月 1212:02 mounts
-r--------.  1 mysql mysql 011月 1212:02 mountstats
dr-xr-xr-x.  5 mysql mysql 011月 1212:02 net
dr-x--x--x.  2 mysql mysql 011月 1212:02 ns
-r--r--r--.  1 mysql mysql 011月 1212:02 numa_maps
-rw-r--r--.  1 mysql mysql 011月 1212:02 oom_adj
-r--r--r--.  1 mysql mysql 011月 1212:02 oom_score
-rw-r--r--.  1 mysql mysql 011月 1212:02 oom_score_adj
-r--r--r--.  1 mysql mysql 011月 1212:02 pagemap
-r--r--r--.  1 mysql mysql 011月 1212:02 personality
-rw-r--r--.  1 mysql mysql 011月 1212:02 projid_map
lrwxrwxrwx.  1 mysql mysql 011月 1212:02 root -> /
-rw-r--r--.  1 mysql mysql 011月 1212:02 sched
-r--r--r--.  1 mysql mysql 011月 1212:02 schedstat
-r--r--r--.  1 mysql mysql 011月 1212:02 sessionid
-rw-r--r--.  1 mysql mysql 011月 1212:02 setgroups
-r--r--r--.  1 mysql mysql 011月 1212:02 smaps
-r--r--r--.  1 mysql mysql 011月 1212:02 stack
-r--r--r--.  1 mysql mysql 010月 3119:53 stat
-r--r--r--.  1 mysql mysql 011月 1212:02 statm
-r--r--r--.  1 mysql mysql 011月 1212:00 status
-r--r--r--.  1 mysql mysql 011月 1212:02 syscall
dr-xr-xr-x. 30 mysql mysql 011月 1212:02 task
-r--r--r--.  1 mysql mysql 011月 1212:02 timers
-rw-r--r--.  1 mysql mysql 011月 1212:02 uid_map
-r--r--r--.  1 mysql mysql 011月 1212:02 wchan

进程目录下的子目录与文件的含义如下:

cmdline  # 保存了当前进程的启动命令。[root@localhost 25787]# cat cmdline
/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pid

cwd     # 链接到进程当前工作目录
lrwxrwxrwx.  1 mysql mysql 011月 1212:02 cwd -> /var/lib/mysql

exe     # 指向启动进程的可执行文件
lrwxrwxrwx.  1 mysql mysql 011月 1212:02 exe -> /usr/sbin/mysqld

environ  #包含与进程相关的环境变量[root@localhost 25787]# cat environLANG=zh_CN.UTF-8PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binHOME=/var/lib/mysqlLOGNAME=mysqlUSER=mysqlSHELL=/bin/false

fd    # fd目录包含了进程打开的每一个文件的文件描述符。这些描述符都指向实际文件。[root@localhost 25787]# ll ./fd
总用量 0
lr-x------. 1 mysql mysql 6411月 1212:07 0 -> /dev/null
l-wx------. 1 mysql mysql 6411月 1212:07 1 -> /var/log/mysqld.log
lrwx------. 1 mysql mysql 6411月 1212:07 10 -> /var/lib/mysql/ibdata1
lrwx------. 1 mysql mysql 6411月 1212:07 11 -> /var/lib/mysql/ibtmp1
lrwx------. 1 mysql mysql 6411月 1212:07 12 -> /tmp/ibbdwaLR (deleted)
lrwx------. 1 mysql mysql 6411月 1212:07 13 -> /var/lib/mysql/mysql/servers.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 14 -> /var/lib/mysql/mysql/help_topic.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 15 -> /var/lib/mysql/mysql/help_relation.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 16 -> /var/lib/mysql/mysql/help_keyword.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 17 -> /var/lib/mysql/mysql/time_zone_name.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 18 -> /var/lib/mysql/mysql/time_zone.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 19 -> /var/lib/mysql/mysql/time_zone_transition.ibd
l-wx------. 1 mysql mysql 6411月 1212:07 2 -> /var/log/mysqld.log
lrwx------. 1 mysql mysql 6411月 1212:07 20 -> /var/lib/mysql/mysql/time_zone_transition_type.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 21 -> /var/lib/mysql/mysql/time_zone_leap_second.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 22 -> /var/lib/mysql/mysql/server_cost.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 23 -> /var/lib/mysql/mysql/engine_cost.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 24 -> /var/lib/mysql/sys/sys_config.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 25 -> /var/lib/mysql/mydb/t11.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 26 -> /var/lib/mysql/mysql/plugin.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 27 -> /var/lib/mysql/mysql/innodb_table_stats.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 28 -> /var/lib/mysql/mysql/innodb_index_stats.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 29 -> /var/lib/mysql/mysql/gtid_executed.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 3 -> /var/lib/mysql/ib_logfile0
lr-x------. 1 mysql mysql 6411月 1212:07 30 -> /dev/urandom
lrwx------. 1 mysql mysql 6411月 1212:07 31 -> socket:[65067]
lrwx------. 1 mysql mysql 6411月 1212:07 32 -> socket:[65068]
lrwx------. 1 mysql mysql 6411月 1212:07 33 -> /var/lib/mysql/mysql/user.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 34 -> /var/lib/mysql/mysql/user.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 35 -> /var/lib/mysql/mysql/db.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 36 -> /var/lib/mysql/mysql/db.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 37 -> /var/lib/mysql/mysql/proxies_priv.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 38 -> /var/lib/mysql/mysql/proxies_priv.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 39 -> /var/lib/mysql/mysql/tables_priv.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 40 -> /var/lib/mysql/mysql/tables_priv.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 41 -> /var/lib/mysql/mysql/columns_priv.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 42 -> /var/lib/mysql/mysql/columns_priv.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 43 -> /var/lib/mysql/mysql/procs_priv.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 44 -> /var/lib/mysql/mysql/procs_priv.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 45 -> /var/lib/mysql/mysql/event.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 46 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 47 -> /var/lib/mysql/mysql/proc.MYI
lrwx------. 1 mysql mysql 6411月 1212:07 48 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 49 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 5 -> /tmp/ibFDWuzF (deleted)
lrwx------. 1 mysql mysql 6411月 1212:07 50 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 51 -> /var/lib/mysql/mysql/event.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 52 -> /var/lib/mysql/dzh/tb_department.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 53 -> /var/lib/mysql/dzh/tb_large_group.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 54 -> /var/lib/mysql/dzh/tb_team.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 55 -> /var/lib/mysql/dzh/tb_employee.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 56 -> /var/lib/mysql/dzh/tb_competing_goods_classification.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 57 -> /var/lib/mysql/dzh/tb_competing_goods.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 58 -> /var/lib/mysql/dzh/tb_brand.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 59 -> /var/lib/mysql/dzh/tb_product.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 6 -> /tmp/ibsmaK4i (deleted)
lrwx------. 1 mysql mysql 6411月 1212:07 60 -> /var/lib/mysql/dzh/tb_goods.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 61 -> /var/lib/mysql/dzh/tb_packaged.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 62 -> /var/lib/mysql/dzh/tb_product_packaged_relation.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 63 -> /var/lib/mysql/dzh/tb_platform.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 64 -> /var/lib/mysql/dzh/tb_store.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 65 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 66 -> /var/lib/mysql/mysql/proc.MYD
lrwx------. 1 mysql mysql 6411月 1212:07 67 -> /var/lib/mysql/dzh/tb_goods_sales_info.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 68 -> /var/lib/mysql/dzh/tb_packaged_sales_info.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 69 -> /var/lib/mysql/dzh_example/goods.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 7 -> /tmp/ibBGQ0zW (deleted)
lrwx------. 1 mysql mysql 6411月 1212:07 70 -> /var/lib/mysql/dzh_example/team.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 71 -> /var/lib/mysql/dzh_example/product.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 72 -> /var/lib/mysql/dzh_example/goods_product.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 73 -> /var/lib/mysql/dzh_example/not_package_sales.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 74 -> /var/lib/mysql/dzh_example/package_sales.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 75 -> /var/lib/mysql/dzh_example/package_product_sales.ibd
lrwx------. 1 mysql mysql 6411月 1212:07 8 -> /tmp/ib4oxxSd (deleted)
lrwx------. 1 mysql mysql 6411月 1212:07 9 -> /var/lib/mysql/ib_logfile1

task   # task目录下包含了当前进程的每一个线程的相关信息,与进程运行时的相关文件一样。[root@localhost 25787]# ll ./task
总用量 0
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25787
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25788
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25789
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25790
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25791
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25792
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25793
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25794
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25795
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25796
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25797
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25798
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25799
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25801
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25802
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25803
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25804
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25805
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25806
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25807
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25808
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25809
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25810
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25811
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25812
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25813
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25814
dr-xr-xr-x. 6 mysql mysql 011月 1212:09 25816

limits  # 保存了进程使用资源的限制信息,软限制、硬限制及单位。[root@localhost 25787]# cat limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             72087208                 processes 
Max open files            50005000                 files     
Max locked memory         6553665536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       72087208                 signals   
Max msgqueue size         819200819200               bytes     
Max nice priority         00                    
Max realtime priority     00                    
Max realtime timeout      unlimited            unlimited            us        
标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/weixin_44377973/article/details/127818660
版权归原作者 睿思达DBA_WGX 所有, 如有侵权,请联系我们删除。

“Linux 下的 /proc 目录介绍”的评论:

还没有评论