Linux /proc目录总结

news2024/11/24 4:27:34

1、概念

在Linux系统中,/proc目录是一个特殊的文件系统,通常被称为"proc文件系统"或"procfs"。这个文件系统以文件系统的方式为内核与进程之间的通信提供了一个接口。/proc目录中的文件大多数都提供了关于系统状态的信息,如运行的进程、内存使用、设备驱动等。

2、常用目录文件

2.1 /proc/cpuinfo

提供关于CPU的信息,如型号、缓存大小、频率等,可以直接通过cat命令查看:

  • processor: 表示 CPU 的编号,从 0 开始计数。
  • BogoMIPS: 这是一个用于粗略衡量 CPU 性能的指标,称为 "Bogomips"。它表示每秒百万条指令(MIPS),但是这个值与真实的性能并不直接对应,主要用于比较不同 CPU 的相对性能。
  • Features: 表示 CPU 支持的功能,包括:
    • fp: 浮点运算
    • asimd: ARM SIMD 指令集
    • aes: AES 加密指令集
    • pmull: 乘法指令集
    • sha1: SHA-1 哈希算法
    • sha2: SHA-2 哈希算法
    • crc32: CRC32 校验算法
  • CPU implementer: 表示 CPU 的制造商,0x41 表示 ARM 公司。
  • CPU architecture: 表示 CPU 的架构,8 表示 ARMv8 架构。
  • CPU variant: 表示 CPU 的变种,0x0 表示标准 ARMv8 架构。
  • CPU part: 表示 CPU 的型号,0xd03 表示 ARM Cortex-A53 处理器。
  • CPU revision: 表示 CPU 的修订版本,4 表示特定的修订版本。

2.2 /proc/meminfo

提供关于系统内存使用情况的统计信息,可以直接通过cat命令查看:

  • MemTotal: 系统的总物理内存,单位为 kB。
  • MemFree: 系统当前空闲的物理内存,单位为 kB。
  • MemAvailable: 系统当前可用的物理内存,单位为 kB。这个值比 MemFree 大,因为其还考虑了缓冲区和缓存的可用空间。
  • Buffers: 用于存储磁盘块的缓冲区大小,单位为 kB。
  • Cached: 缓存了磁盘数据的内存大小,单位为 kB。
  • Active: 最近被访问过的内存页,单位为 kB。
  • Inactive: 一段时间没有被访问的内存页,单位为 kB。
  • Active(anon): 匿名内存页,即不映射到任何文件,如进程堆栈、堆内存等。
  • Inactive(anon): 匿名内存页中长时间未被访问的页面。
  • Active(file): 文件映射到内存的页,如文件的内容、库函数等。
  • Inactive(file): 文件映射到内存中长时间未被访问的页面。

2.3 /proc/mounts

显示当前系统上已挂载的文件系统,可以直接通过cat命令查看:

其大致按以下格式:

<设备节点> <挂载点> <文件系统类型> <挂载选项> <挂载次数> <文件系统检查顺序>
  • 设备节点 (Device node): 表示文件系统的设备节点或者分区的路径,比如 /dev/mmcblk0p1
  • 挂载点 (Mount point): 文件系统被挂载到的目录路径,比如 / 表示根目录。
  • 文件系统类型 (Filesystem type): 表示文件系统的类型,比如 ext4。
  • 挂载选项 (Mount options): 表示文件系统被挂载时指定的选项,比如 rw 表示可读写,ro 表示只读。
  • 挂载次数 (Mount count): 表示文件系统被挂载的次数。
  • 文件系统检查顺序 (File system check order): 如果文件系统需要进行检查,该字段指示了文件系统检查的顺序。

2.4 /proc/partitions

列出所有已识别的磁盘分区,可以直接通过cat命令查看:

  • major: 主设备号,用于标识设备类型,例如 1 表示 RAM 设备。
  • minor: 次设备号,用于区分同类型设备的不同分区,例如 0 和 1 表示 RAM 设备的两个不同分区。
  • #blocks: 分区的大小,以块为单位。
  • name: 分区的名称,例如 ram0 和 ram1

2.5 /proc/version

显示当前运行的内核版本信息,可以直接通过cat命令查看:

  • Linux version: 指明了当前运行的 Linux 内核版本号,这里是 4.9.170-sun50iw9
  • (root@Katarina): 表示内核是在名为 "Katarina" 的机器上编译的。
  • (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))): 说明了编译内核所使用的 GCC 编译器的版本信息,包括版本号、编译日期和目标平台信息。
  • #34: 表示内核的补丁版本号,即在最初的版本基础上进行了 34 次修改。
  • SMP: 表示内核支持对称多处理器(Symmetric Multi-Processing),即系统可以同时运行在多个 CPU 上。
  • PREEMPT: 表示内核支持抢占式内核,即进程可以被其他更高优先级的进程抢占,提高系统响应速度。

2.6 /proc/net

包含网络相关的统计和配置信息

其中:

  • route: 这个文件显示了系统的路由表,包含了系统中各个网络的路由信息。可以通过查看这个文件来查看当前系统路由的配置情况。

  • tcp, udp: 这两个文件分别显示了系统当前的 TCP 和 UDP 连接情况,列出了系统中所有的 TCP 和 UDP 连接的详细信息。

2.7 /proc/sys

/proc/sys 目录下存储着 Linux 内核运行时的系统参数,通过读取和写入这些文件,可以控制和配置系统的许多功能。这些参数通常用于调整内核的行为,优化系统性能或修改网络设置等。

  • /proc/sys/kernel/

    • hostname: 可以通过读取和写入这个文件来获取和更改系统的主机名。
    • osrelease: 包含正在运行的内核版本信息。
    • panic: 设置系统在遇到致命错误后自动关闭之前的延迟时间。
  • /proc/sys/net/

    • ipv4/
      • ip_forward: 控制系统是否允许 IP 转发功能。
      • ipv4/tcp_keepalive_time: 设置 TCP 连接的保活时间。
    • core/
      • rmem_default, rmem_max: 指定 TCP 接收缓冲区的默认和最大大小。
      • wmem_default, wmem_max: 指定 TCP 发送缓冲区的默认和最大大小。
  • /proc/sys/vm/

    • swappiness: 控制系统在内存不足时使用 swap 分区的程度。
    • overcommit_memory: 控制内存过量分配的行为。

2.8 /proc/interrupts

 这个文件显示了系统中各个硬件设备正在使用的中断请求(IRQ)的情况,可以帮助用户查看系统中断的分配情况,以及了解每个设备所占用的中断资源。

  • 每行对应一个硬件设备,在每一行中列出了设备名称、中断请求号(IRQ)以及该设备触发的中断次数。
  • 可以通过查看这个文件来检查系统中是否存在中断冲突(IRQ conflict),了解系统中硬件设备的使用情况,以及定位可能的硬件问题。

2.9 /proc/uptime

显示系统自上次启动以来的运行时间,以及空闲时间。

  • 第一个值(25221.66)表示系统自上次启动以来运行的时间(单位为秒)。
  • 第二个值(100623.29)表示系统空闲时间的总计(单位为秒)。

2.10 /proc/loadavg

显示系统的负载平均值

  • 前三个数值(1.00 1.00 1.00)表示系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。这些数字是指任务队列中平均活跃的进程数。
  • 第四个值(1/167)表示正在运行/总进程数。
  • 第五个值(3608)是最近运行的进程的进程 ID。

2.11 /proc/stat

提供关于CPU活动的统计信息

每一列的含义如下:

  • 用户态时间 (user): CPU 花在用户进程上的时间(以节拍计)。
  • 内核态时间 (nice): CPU 花在优先级较低的进程上的时间(以节拍计)。
  • 系统调用时间 (system): CPU 花在系统调用上的时间(以节拍计)。
  • 空闲时间 (idle): CPU 处于空闲状态的时间(以节拍计)。
  • 等待 I/O 时间 (iowait): CPU 等待 I/O 操作完成的时间(以节拍计)。
  • 硬件中断时间 (irq): CPU 处理硬件中断的时间(以节拍计)。
  • 软中断时间 (softirq): CPU 处理软件中断的时间(以节拍计)。
  • 窃取时间 (steal): CPU 被虚拟机窃取的时间(以节拍计)。
  • 虚拟化时间 (guest): CPU 花在运行虚拟机上的时间(以节拍计)。
  • 虚拟化时间 (guest_nice): CPU 花在运行虚拟机中优先级较低的进程上的时间(以节拍计)。

例如,第一行 cpu 7963 13 16873 9957357 409 0 460 0 0 0 代表了所有 CPU 核心的统计信息:

  • cpu: 表示所有 CPU 核心的总统计信息。
  • 7963: 所有 CPU 核心的用户态时间。
  • 13: 所有 CPU 核心的内核态时间。
  • 16873: 所有 CPU 核心的系统调用时间。
  • 9957357: 所有 CPU 核心的空闲时间。
  • 409: 所有 CPU 核心的等待 I/O 时间。
  • 0: 所有 CPU 核心的硬件中断时间。
  • 460: 所有 CPU 核心的软件中断时间。
  • 0: 所有 CPU 核心的窃取时间。
  • 0: 所有 CPU 核心的虚拟化时间。
  • 0: 所有 CPU 核心的虚拟化时间(优先级较低)。

2.12 /proc/bus

包含有关系统总线和连接到这些总线的设备的信息

  • /proc/bus/pci/ 目录包含有关 PCI 总线设备的信息,可以查看系统中的PCI设备列表。
  • /proc/bus/usb/ 目录包含有关 USB 设备的信息,可以查看 USB 设备的配置信息和状态。
  • 这些文件和目录可以帮助用户了解系统中连接的总线设备的情况,进行总线级别的故障排除和信息查询。

2.13 /proc/devices

列出当前内核所识别的设备驱动程序的主设备号:

2.14 /proc/fs

包含有关当前系统上支持的文件系统的信息。

  • /proc/fs/nfsd/exports:显示 NFS 服务器的导出列表。
  • /proc/fs/nfsd/version:显示 NFS 服务器模块的版本信息。
  • /proc/fs/nfs:包含 NFS 客户端和服务器相关的信息。

2.15 /proc/[pid]

对于每个正在运行的进程,都有一个以其进程ID(PID)命名的目录。这些目录包含了关于该进程的详细信息,如命令行、环境变量、内存映射、打开的文件描述符等。

  • attr:进程的访问控制列表(ACL)权限设置。
  • cmdline:进程启动时的命令行参数。
  • cwd:进程的当前工作目录。
  • environ:进程的环境变量列表。
  • exe:进程的可执行文件路径。
  • fd:进程打开的文件描述符列表。
  • status:包含有关进程当前状态的信息,如进程状态、内存使用情况等。
  • sched:显示进程的调度器相关信息。
  • maps:显示进程内存映射的详细信息。
  • limits:显示进程资源限制。
  • stat:显示进程状态信息。
  • io:显示进程的I/O统计信息。
  • oom_score:OOM(Out Of Memory)调度分数,决定进程在内存不足时被系统杀死的优先级。
  • smaps:显示进程的内存使用情况,包括详细的内存映射信息。
  • task:包含有关进程的线程信息。
  • syscall:显示进程的系统调用统计信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1876682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算Dice损失的函数

计算Dice损失的函数 def Dice_loss(inputs, target, beta1, smooth 1e-5):n,c, h, w inputs.size() #nt,ht, wt, ct target.size() #nt,if h ! ht and w ! wt:inputs F.interpolate(inputs, size(ht, wt), mode"bilinear", align_cornersTrue)temp_inputs t…

MySQL之如何分析慢查询

1、一个SQL语句执行很慢&#xff0c;如何分析&#xff1f; 可使用“explain”或者“desc”命令获取MySQL如何执行select语句的信息。 语法&#xff1a;直接在select语句前加关键字 explain或desc explain select job_desc from xxl_job_info where id 1; 2、执行计划中五个重…

【刷题】初步认识深搜(DFS)

送给大家一句话&#xff1a; 拥有希望的人&#xff0c;和漫天的星星一样&#xff0c;是永远不会孤独的。 -- 《星游记》 初步认识深搜&#xff08;DFS&#xff09; dfs算法二叉树中的深搜Leetcode 129. 求根节点到叶节点数字之和题目描述算法思路 Leetcode 814. 二叉树剪枝题…

FreeRTOS的裁剪与移植

文章目录 1 FreeRTOS裁剪与移植1.1 FreeRTOS基础1.1.1 RTOS与GPOS1.1.2 堆与栈1.1.3 FreeRTOS核心文件1.1.4 FreeRTOS语法 1.2 FreeRTOS移植和裁剪 1 FreeRTOS裁剪与移植 1.1 FreeRTOS基础 1.1.1 RTOS与GPOS ​ 实时操作系统&#xff08;RTOS&#xff09;&#xff1a;是指当…

C语言中常用的运算符、表达式和语句

C语言是一种通用的、高级的编程语言&#xff0c;其历史可以追溯到20世纪60年代末至70年代初。C语言最初是由丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;在贝尔实验室为开发UNIX操作系统而设计的。它继承了许多B语言的特性&#xff0c;而B语言则是由迷糊老师&#xff08;…

基于YOLOv9+pyside的安检仪x光危险物物品检测(有ui)

安全检查在公共场所确保人身安全的关键环节&#xff0c;不可或缺。X光安检机作为必要工具&#xff0c;在此过程中发挥着重要作用。然而&#xff0c;其依赖人工监控和判断成像的特性限制了其应用效能。本文以此为出发点&#xff0c;探索了基于Torch框架的YOLO算法在安检X光图像中…

spring和springboot的关系是什么?

大家好&#xff0c;我是网创有方的站长&#xff0c;今天给大家分享下spring和springboot的关系是什么&#xff1f; Spring和Spring Boot之间的关系可以归纳为以下几个方面&#xff1a; 技术基础和核心特性&#xff1a; Spring&#xff1a;是一个广泛应用的开源Java框架&#…

深入理解一致性Hash和虚拟节点

在分布式系统中架构中我们经常提到一致性哈希算法&#xff0c;那么什么是一致性哈希算法&#xff0c;为什么需要一致性哈希算法呢&#xff1f; 1、为什么需要一致性哈希算法 假设现在有三台缓存服务器&#xff08;缓存服务器A、缓存服务器B、缓存服务器C&#xff09;&#xff…

每日一题——Python实现PAT乙级1059 C语言竞赛(举一反三+思想解读+逐步优化)四千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 时间复杂度分析 空间复杂度分析 代码优化建议 总结 我要更强 优化方法…

fastadmin selectpage下拉框默认选中

修改 /public/assets/libs/fastadmin-selectpage/selectpage.js

C++【引用】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;LiUEEEEE                        …

入门Java爬虫:认识其基本概念和应用方法

Java爬虫初探&#xff1a;了解它的基本概念与用途&#xff0c;需要具体代码示例 随着互联网的快速发展&#xff0c;获取并处理大量的数据成为企业和个人不可或缺的一项任务。而爬虫&#xff08;Web Scraping&#xff09;作为一种自动化的数据获取方法&#xff0c;不仅能够快速…

【数据分析】1、用Pandas计算数据相关性系数

相关性系数和相关分析是了解变量之间关系的重要工具。通过合理选择相关性系数和科学分析数据&#xff0c;能够有效揭示变量之间的关系&#xff0c;为进一步研究和决策提供有力支持。在实际应用中&#xff0c;应结合业务背景、数据特性和统计原则&#xff0c;谨慎解释和应用相关…

基于知识图谱的医药问答系统实战

数据及代码地址见文末 1.项目配置 (1)Neo4j数据库安装 JDK 安装:https://www.oracle.com/java/technologies/javase-downloads.html Neo4j 安装:https://neo4j.com/download-center/ 配置好 JDK 和 Neo4j 的环境变量 启动:neo4j.bat console 第一次启动有默认用户名和密…

数字信号处理教程(1)——简介

考了几天试&#xff0c;终于有时间来继续写了&#xff0c;接下来&#xff0c;我们主要对数字信号处理和通信原理这两本偏于理论书记录自己的简单看法。当然其他大家讲的比较好的地方&#xff0c;我也会摘录下来。 先来看数字信号处理的内容&#xff0c;数字信号处理中有…

Gradio 4.37.1官方教程二:Blocks

文章目录 一、Blocks及事件监听器1.1 Blocks结构1.2 事件监听器的类型1.3 多数据流1.4 多输入组件1.5 多输出组件1.6 更新组件配置1.7 添加示例1.8 连续运行事件1.9 持续运行事件1.9.1 every参数1.9.2 load方法1.9.3 change方法 1.10 收集事件数据1.11 绑定多个触发器到同一函数…

【ai】trition:tritonclient yolov4:ubuntu18.04部署python client成功

X:\05_trition_yolov4_clients\01-python server代码在115上,client本想在windows上, 【ai】trition:tritonclient.utils.shared_memory 仅支持linux 看起来要分离。 【ai】tx2 nx:ubuntu18.04 yolov4-triton-tensorrt 成功部署server 运行 client代码远程部署在ubuntu18.0…

从灵感到实践:Kimi辅助完成学术论文选题的文艺之旅

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 昨天我们为大家介绍了ChatGPT辅助完成实现设计&#xff08;AI与学术的交响&#xff1a;ChatGPT辅助下的实验设计新篇章&#xff09;。今天我们再来看看Kimi对于论文选题都能提供哪些帮助…

mindspore打卡第9天 transformer的encoder和decoder部分

mindspore打卡第9天 transformer的encoder和decoder部分 import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor from mindspore import dtype as mstypeclass ScaledDotProductAttention(nn.Cell):def __init__(self, dropout_…

如何修改PDF文档的作者名称?

要修改一个 PDF 文档的作者名称&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. **使用 Adobe Acrobat**&#xff08;如果有&#xff09;&#xff1a; - Adobe Acrobat 是一个功能强大的 PDF 编辑工具&#xff0c;支持修改文档属性信息&#xff0c;包括作者名称。打开…