Linux /proc目录总结
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 发送缓冲区的默认和最大大小。
- ipv4/
-
/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
:显示进程的系统调用统计信息。
相关文章:

Linux /proc目录总结
1、概念 在Linux系统中,/proc目录是一个特殊的文件系统,通常被称为"proc文件系统"或"procfs"。这个文件系统以文件系统的方式为内核与进程之间的通信提供了一个接口。/proc目录中的文件大多数都提供了关于系统状态的信息࿰…...

【JavaEE】浅谈线程(二)
线程 线程的常见属性 线程属性可以通过下面的表格查看。 •ID 是线程的唯⼀标识,不同线程不会重复 • 名称是各种调试⼯具⽤到(如jconsoloe) • 状态表示线程当前所处的⼀个情况,下⾯我们会进⼀步说明 • 优先级高的线程理论上来…...

爬虫:爬取知乎热榜一级评论及回答2024不包含翻页
一、先上结果(注:本文仅为兴趣爱好探究,请勿进行商业利用或非法研究,负责后果自负,与作者无关) 1、爬标题及其具体内容 2、抓标题下的对应回答 3、爬取对应一级评论 二、上流程 1、获取cookies(相信哥哥姐姐…...

AI 编程探索- iOS动态标签控件
需求分析: 标签根据文字长度,自适应标签居中显示扩展 超过内容显示范围,需要换行显示,且保持居中显示 AI实现过程 提问: 回答: import UIKit import SnapKitclass DynamicLabelsContainerView: UIView…...

计算机网络——数据链路层(数据链路层概述及基本问题)
链路、数据链路和帧的概念 数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。 链路(…...
【前端】前端权限管理的实现方式:基于Vue项目的详细指南
前端权限管理的实现方式:基于Vue项目的详细指南 在Web开发中,前端权限管理是一个确保应用安全性和优化用户体验的关键部分。本文将详细介绍前端权限管理的几种实现方式,并通过Vue项目中的代码示例来演示具体实现方法。 前端权限管理的基本实…...

MySQL数据库基础练习系列——教务管理系统
项目名称与项目简介 教务管理系统是一个旨在帮助学校或教育机构管理教务活动的软件系统。它涵盖了学生信息管理、教师信息管理、课程管理、成绩管理以及相关的报表生成等功能。通过该系统,学校可以更加高效地处理教务数据,提升教学质量和管理水平。 1.…...
windowns server2016服务器配置php调用powerpoint COM组件
解决问题:windowns server2016服务器配置php调用powerpoint COM组件 环境: windows server2016 宝塔(nginxmysqlphp7.2) IIS 搭建宝塔: 下载地址:https://www.bt.cn/download/windows.html 安装使用&…...

Git之checkout/reset --hard/clean -f区别(四十二)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...

MySQL数据库基础练习系列:科研项目管理系统
DDL CREATE TABLE Users (user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,username VARCHAR(50) NOT NULL UNIQUE COMMENT 用户名,password VARCHAR(255) NOT NULL COMMENT 密码,gender ENUM(男, 女) NOT NULL COMMENT 性别,email VARCHAR(100) UNIQUE COMMENT 邮箱 …...

算法设计与分析--考试真题
分布式算法试题汇总选择题简答题算法题 2013级试题2019级试题2021年秋考卷 根据考试范围找相应题目做。 分布式算法试题汇总 选择题 下述说法错误的是___ A 异步系统中的消息延迟是不确定的 B 分布式算法的消息复杂性是指在所有合法的执行上发送消息总数的最大值 C 在一个异步…...

【鸿蒙学习笔记】页面和自定义组件生命周期
官方文档:页面和自定义组件生命周期 目录标题 [Q&A] 都谁有生命周期? [Q&A] 什么是组件生命周期? [Q&A] 什么是组件?组件生命周期 [Q&A] 什么是页面生命周期? [Q&A] 什么是页面?页面生…...
ASPICE与ISO 21434:汽车软件与网络安全标准的协同与互补
ASPICE(Automotive SPICE)与ISO 21434在汽车行业中存在显著的相关性,主要体现在以下几个方面: 共同目标: ASPICE和ISO 21434都旨在提高汽车系统和软件的质量、可靠性和安全性。ASPICE关注汽车软件开发过程的成熟度和…...

视频格式转换方法:如何使用视频转换器软件转换视频
众所周知,目前存在许多不同的视频和音频格式。但我们的媒体播放器、移动设备、PC 程序等仅兼容少数特定格式。例如,如果不先将其转换为 MP4、MOV 或 M4V 文件,AVI、WMV 或 MKV 文件就无法在 iPhone 上播放。 视频转换器允许您将一种视频格式…...
vim操作小诀窍:快速多行添加注释
在使用vim编译python代码的时候,经常碰到需要将一段代码注释的情况,每次都要按“向下” “向左”按钮,将光标移到句首,然后再键入#井号键。如果行数较多,则操作相当繁琐。 vim里面有将一段文字前面加#注释的方法&#…...

无线麦克风领夹哪个牌子好,2024年领夹麦克风品牌排行榜推荐
随着短视频热潮的兴起,越来越多的人倾向于用vlog记录日常生活,同时借助短视频和直播平台开辟了副业。在这一过程中,麦克风在近两年内迅速发展,从最初的简单收音功能演变为拥有多样款式和功能,以满足视频创作的需求。…...
Mybatis入门——语法详解:基础使用、增删改查、起别名、解决问题、注释、动态查询,从入门到进阶
文章目录 1.基础使用1.添加依赖2.在resouces文件下新建xml文件db.properties3.在resouces文件下新建xml文件mybatis-config-xml4.创建一个MybatisUtils工具类5.创建xml文件XxxMapper.xml映射dao层接口6.添加日志5.测试 2.增删改查1.select2.delete3.update4.insert5.模糊查询6.…...

仓库选址问题【数学规划的应用(含代码)】阿里达院MindOpt
本文主要讲述使用MindOpt工具优化仓库选址的数学规划问题。 视频讲解👈👈👈👈👈👈👈👈👈 一、案例场景 仓库选址问题在现代物流和供应链管理中具有重要的应用。因为仓库…...

Docker Compose 一键快速部署 RocketMQ
Apache RocketMQ是一个开源的分布式消息中间件系统,最初由阿里巴巴开发并贡献给Apache软件基金会。RocketMQ提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务,适用于构建大规模分布式系统中的消息通信和数据同步。 RocketMQ支持多种消息模型&am…...

Vscode lanuch.json
Intro 使用launch.json 能够方便的运行需要传很多参数的代码文件 如下: import math import argparse # 1、导入argpase包def parse_args():parse argparse.ArgumentParser(descriptionCalculate cylinder volume) # 2、创建参数对象parse.add_argument(--rad…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...

循环语句之while
While语句包括一个循环条件和一段代码块,只要条件为真,就不断 循环执行代码块。 1 2 3 while (条件) { 语句 ; } var i 0; while (i < 100) {console.log(i 当前为: i); i i 1; } 下面的例子是一个无限循环,因…...