Linux - 深入理解/proc虚拟文件系统:从基础到高级

资讯 2024-06-08 阅读:32 评论:0
文章目录 Linux/程序虚拟文件系统/程序/程序虚拟文件系统/程序/自用/程序/自用案例1:获取当前进程案例1:获取当前进程案例2:获取当前进程案例2:获取当前进程案例3:检索当前进程案例4:获取当前进程的文件概况 查看命令行参数 3...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

文章目录

Linux/程序虚拟文件系统/程序/程序虚拟文件系统/程序/自用/程序/自用案例1:获取当前进程案例1:获取当前进程案例2:获取当前进程案例2:获取当前进程案例3:检索当前进程案例4:获取当前进程的文件概况

查看命令行参数 3. 查看一个进程( 假设PID 5069)。 查看文件 4. 查看一个进程的内存地图

1. 动态调整内核参数2. 实时监测系统功能3 调试和优化程序4. 检查文件处理的使用情况5。

使用/程序档案系统的具体案例 1:实时监测系统中使用CPU的案例 1:实时监测系统中使用CPU的案例 2:在监测进程中使用存储器的案例 3:在监测进程中使用存储器的案例 3:探测系统打开文件处理器的案件数量 4:探测系统打开文件处理器的案件数量 4:监测网络连接状态的案例 5:监测和加强虚拟存储使用的案例 6:分析过程的详细存储图案 7:实时监测系统中I/O活动的案例 8:检查系统中断处理的案件

合并案件

  在这里插入图片描述

Linux/proc 虚拟文件系统(Procfs) 是一个提供内核数据界面的伪文件系统。 与传统的文件系统不同, / proc 中的文件和目录不在磁盘上, 而是实时生成的。 它主要用于获取关于系统和进程、调试和管理系统的信息 。

Profcs载有大量硬件、内核、运行过程等动态信息,使用户和程序能够以文件操作的方式访问系统状态。

In Linux操作系统的文件系统是一个虚拟文件系统,为查看系统和程序信息提供了一个机制。

然而,为了简化对流程本身的存取,Linux提供了一份特别目录:该目录总是指访问该目录的过程。因此,不管访问了哪个过程,它都看到了相同的信息,而不需要明显地访问和指定自己的PID。

简化存取程序: 程序不需要访问自己的 PID 获取自己的信息,但可以直接访问。 代码简单化: 代码的直接使用避免了获取 PID 的步骤, 使代码更简单易读。 通用性: 当不同的进程访问时, 它们捕捉到自己的程序信息, 这使得它在编写通用工具和脚本时非常有用 。

案例1:获取当前进程的现状信息

此脚本直接读取文件, 并提供有关当前进程状况的信息, 包括进程状态、 内存的使用、 线索数等 。

案例2:获得当前进程的指挥线参数

此脚本读取文件, 输出当前进程的命令行参数。 文件包含进程启动时通过的所有参数 。

案例3:获得当前进程的记忆图

此脚本读取文件, 并为当前进程生成记忆地图信息, 包括进程每个记忆部分的起始地址、 权限和地图文件 。

案例4:获取当前程序的文件描述

此脚本列出了目录下的所有文件描述符。 每个文件描述符都是与描述符中引用的文件的符号链接 。

该目录提供了一种方便的方式,使该程序能够直接获取自己的信息,而不必以透明的方式获得自己的PID,其特点大大简化了获取程序信息的操作,使编写涉及获取程序信息的脚本和工具更加容易和高效。

通过此选项, 您可以轻松地访问进程状态、 命令行参数、 记忆地图、 文档描述符等, 帮助您执行系统监测、 调试和优化等任务。 在实际应用中, 使用可以使您的代码更简单、 更通用 。

  在这里插入图片描述

在程序目录中,每个运行过程有一个以 PID (进程编号) 命名的子目录。 这些子目录包含关于该过程的详细信息。 以下是一些关键文档及其用途:

/proc/[PID]/cmdline: 显示启动进程的命令行。 /proc/[PID]/ cwd: 指向当前进程的工作目录 。 / proc/ [PID]/ exe: 指向当前二进制文档 。 / proc/ [PID]/ fd/ : 包括进程打开的所有文件描述符 。 / proc/ [PID]/ stat: 包含进程状况的详细信息, 如进程状况、 CPU时间等 。 / proc/ [PID]/ status: 提供进程状况的简明信息, 包括内存使用、 用户身份、 群号等 / proc/ [PID]/environ: 获取当前进程环境变量的信息 。 / proc/ [PID]/ environ: 获取当前进程环境变量的信息 。

这些文件和目录可用于监测和调试程序。

例如:

可以通过查看/proc/[PID]/cmdline以及由/proc/[PID]/fd/...打开的文件来识别一个进程。

/程序目录中的一些文件提供了关于该系统使用情况的详细资料,这对系统管理员和开发者十分重要:

/proc/meminfo:显示系统内存用途,包括总内存、自由内存、缓冲区内存等/proc/swaps:显示交换分区的使用情况。 /proc/slabinfo:显示SLAB内核经销商的状况。 /proc/[PID]/Mapps:显示过程内存图,包括共享的储油层、堆叠、堆叠等。 /proc/[PID]/smaps:提供比地图更详细的内存图绘制信息,包括每一地图的内存使用情况。

这些文件有助于识别内存泄漏、优化内存使用和理解系统的内存分配行为。 例如,通过查看/程序/meminfo,它们快速概述了该系统的总体使用情况,并可用于分析单个过程的内存使用情况。

以下是使用/程序档案系统的监测和管理的一些实例:

  在这里插入图片描述

  在这里插入图片描述

Linux/proc文件不仅提供基本的系统和程序信息,而且能够通过先进的使用技术进行更深入的系统监测、校准和优化,帮助用户更有效地管理系统,及时查明和解决潜在的问题。

/proc/sys目录包含若干内核参数,可在系统运行期间动态调整,这样就没有必要重新启动系统。例如,您可以调整TCP连接的参数、虚拟内存管理参数等。

调整 TCP 保存时间 :

调整虚拟内存交换分区的使用策略 :

可以通过阅读文件(如/proc/stat和/proc/loadavg)获取CPU的使用和系统负荷信息,这些文件对业绩监测和能力规划非常有用。

查看 CPU 使用率 :

查看系统负载 :

使用/proc/[PID]/documents可以获得关于特定程序的详细信息,从而有助于调试和优化程序。

查看过程环境变量 :

查看内存页面错误和内存分配:

/Proc/sys/fs/fs/file-nr文件可用于监测系统中文件手柄的使用情况,以防止文件窒息。

查看文件控件使用量 :

/proc/net目录载有关于网络连接和线路的信息,可用于网络监测和调试。

查看当前 TCP 连接 :

视图网络界面统计 :

自动监控和警报:使用脚本或监测工具(如Nagios、Prometheus等),根据设定的阈值自动读取/处理关键文件和触发警报。

限制性许可:确保只有经授权的用户和流程才能获取敏感/程序信息,避免潜在的安全顾虑。

定期检查和调整:定期检查/处理内核参数和系统状况,定制配置,以确保系统以最佳状态运作。

与其他工具结合使用:与其他系统监测和日志分析工具结合使用/程序内的信息,以提供一个全面的系统监测解决方案。

使用具体案例可以更直观地展示如何使用/程序档案系统进行系统监测、调试和优化。

下列个案将涉及共同制度监测任务,包括CPU和内存使用监测、程序调试、网络连接监测等。

在监测系统中使用CPU是系统管理员的一项共同任务,通过阅读/记录/状态文件可以访问每个CPU。

步骤:

定期创建读/ 程序/ stat 文件的脚本。 计算每个使用的 CPU 的百分比 。

此脚本通过在 / proc/ stat 文件中读取 CPU 信息来计算 CPU 使用的百分比, 并且每秒导出一次。 Pref_ idle 和 prev_ 总计保存上次读取以计算此变化的数值 。

为了监测特定程序(假设PID 1234)的记忆使用,可以查阅/proc/1234/status档案。

步骤:

定期准备脚本以读取/ proc/ 1234/ status 文件。 绘制 VmRS 字段以显示进程的实际内存使用情况 。

此脚本通过在 / proc/ 1234/ status 文件中读取 VmRS 字段, 获取进程( kB) 的实际内存用量。 脚本每秒输出一次内存用量 。

系统打开的文件数量可通过读取/处理/sys/fs/file-nr文件获得,这有助于监测资源的使用情况。

步骤:

准备定期读取/proc/sys/fs/file-nr文件的脚本。

此脚本通过读取/ proc/ sys/ fs/ file- nr 文件捕捉系统当前打开的控件数。 脚本每五秒输出一个控件数 。

可以通过阅读/处理/net/tcp文件获得网络连通状态,可分析这些文件,以监测TCP连接的数量和状况。

步骤:

准备定期阅读/ proc/net/ tcp 文件的脚本。 统计不同状态的 TCP 连接数量 。

此脚本使用 / proc/ net/ tcp 文件来衡量不同州( 如已建立的、 Time_ WAIT 等) TCP 连接的数量 。

虚拟存储管理是系统优化的一个重要方面,通过监测/程序/ vmstat文件,可以理解并相应改进系统的虚拟存储使用情况。

步骤:

准备脚本以定期读取/ proc/ vmstat 文件。 监视密钥字段, 如 pgfault( 页面错误)、 pgmajfault( 主页错误)、 pgfree( 发布页) 等 。

此脚本监测页面错误和读/ proc/ vmstat 文件的内存释放 。

可通过/proc/[PID]/smaps文件获取关于该过程的详细内存映射信息,这对于诊断内存泄漏和优化其使用非常有用。

步骤:

准备读/ proc/ [PID]/ smaps 文件的脚本。 分析每个内存区域的大小和使用, 并识别内存泄漏 。

此脚本通过读取/ proc/ 1234/ smaps 文件生成过程每个记忆区域的细节, 包括记忆区域的总大小( 大小)、 存在设置大小( Rss)、 比例存在设置大小( Ps) 和记忆使用量的交换( Swap) 。

通过/程序/发布数据文件,可以监测该系统的I/O活动,包括读写作业和字节的数量。

步骤:

定期准备读取/处理/发布脚本。 监视指定的磁盘的 I/ O 活动 。

此脚本通过读/ proc/ diskstats 文件监测指定磁盘( 如 sda) 的读和写操作数量 。

通过/程序/中断文件,可以监测系统的中断处理,了解不同设备的中断频率。

步骤:

准备脚本以定期阅读/处理/中断文件。 输出中断统计资料的处理 。

此脚本生成系统通过读取/ 程序/ 中断文件中断的统计信息 。

以下是用于监测CPU和内存使用情况、磁盘空间、关键程序、网络流量和系统日志的示意性贝壳脚本。

此脚本旋转 CPU 和 内存使用、 磁盘空间、 指定流程的运行状态、 网络流量和系统日志, 如果检测到超过预定阈值的异常点, 则触发相应的提醒 。

  在这里插入图片描述

美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • DDO在新加坡上市真假,欧意交易所能交易数字期权吗?

    DDO在新加坡上市真假,欧意交易所能交易数字期权吗?
    然而,对于DDO在新加坡的列名是否真实存在争议。 据报道,有人质疑DDO的数字选项是否真的上市,其背景是否经过了彻底调查。 首先,有报告说,DDO数字选项清单仅仅是一种宣传手段,没有找到DDO交易的平台,这就对DDO的真正清单提出了疑问。 其次,一些媒体调查了DDO数字选项的背景。 报告显示DDO数字选项发行人声称其数字选项是国家赞助的,但实际上,根据中国人民银行,虚拟货币相关业务是非法金融活动。 此外,DDO数字选项在视频号码等平台上广为传播,吸引了许多信徒的注意,然...
  • Griffin Gaming Partners计划为其第三支基金筹集5亿美元

    Griffin Gaming Partners计划为其第三支基金筹集5亿美元
    Pitchbook引用的6月8日《快链头条新闻》作为监管文件, 指出游戏风险投资公司Griffin赌博伙伴计划为其第三个旗舰基金筹集5亿美元, 比第二个基金少33%。 2021年,格里芬赌博伙伴从Web3游戏开发者Forte获得A回合资金1.85亿美元,并于2022年筹集了第二个旗舰基金,金额达7.5亿美元,此时风险资本家对Web3和加密游戏的热情达到顶峰。...
  • 比过山车还狠!比特币价格再次暴跌

    比过山车还狠!比特币价格再次暴跌
      上周日,比特币的价格创造了3000美元的历史新高,随后就开始各种高台跳水了。Last Sunday, the price of Bitcoin created a record high of $3,000, and then began to dive on all the high platforms.   据外媒报道,本周一,比特币价格一度下跌到2526.4美元,最高跌幅高达14.5%,这创造了2015年1月以来最大跌幅。According to external...
  • 加密货币之王重回王位:比特币飙升至 71,000 美元,还能再涨多少?

    加密货币之王重回王位:比特币飙升至 71,000 美元,还能再涨多少?
    比特币是市场上最大的加密货币,它再次打破了重要的7万美元门槛。 在短短的四舍五入(67,000美元到69,000美元之间)之后,价格在这一水平上遇到了强烈的抵制。 然而,势头的不断增强表明,比特币可能形成一个超过70 000美元的板块,为重新测试下一个抵抗阵地71 300美元和3月份可能攀升到历史最高点73 700美元铺平了道路。 问题仍然是:比特币能否维持预期的上升趋势并继续大幅上升?    分析家预计比特币价格将上升到74,400美元。 加密货币分析师Ali M...
  • 几张图看懂区块链技术到底是什么?https://www.cnblogs.com/behindman/p/8873191.html

    几张图看懂区块链技术到底是什么?https://www.cnblogs.com/behindman/p/8873191.html
    “区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人谈一谈区块链技术就out了,BAT以及各大银行还有什么金融机构都在开始自己的区块链研究工作,就连IBM最近也成立了自己的区块链研究实验室,但其实区块链到底是什么?大家或许并不清楚,停留在雾里看花的状态。从今天开始,就让我们一起走进区块链,揭开区块链的神秘面纱吧!The concept of a block chain can be described as an unusually hot one, as if no...
标签列表