2025年rpm命令的作用(rpm 命令详解)

rpm命令的作用(rpm 命令详解)p id 35DITE7H h5 快速链接 h5 p p ul li id 35DITEB4 li ul p p id 35DITE7K 流程和资源的平衡举措 p p lt p

大家好,我是讯享网,很高兴认识大家。




讯享网

 <p id="35DITE7H"><h5>快速链接</h5></p><p><ul><li id="35DITEB4"></p><p id="35DITE7K"> 流程和资源的平衡举措</p><p></li></ul><ul><li id="35DITEB5"></p><p id="35DITE7L"> 调查高内存使用率</p><p></li></ul><ul><li id="35DITEB6"></p><p id="35DITE7M"> free 命令</p><p></li></ul><ul><li id="35DITEB7"></p><p id="35DITE7N"> 读取 /proc/meminfo</p><p></li></ul><ul><li id="35DITEB8"></p><p id="35DITE7O"> 使用 vmstat 命令查找内存消耗大户</p><p></li></ul><ul><li id="35DITEB9"></p><p id="35DITE7P"> 使用 top 和 htop 查找内存消耗大户</p><p></li></ul><ul><li id="35DITEBA"></p><p id="35DITE7Q"> 使用 ps 命令查找内存消耗大户</p><p></li></ul><ul><li id="35DITEBB"></p><p id="35DITE7R"> 调查高 CPU 使用率</p><p></li></ul><ul><li id="35DITEBC"></p><p id="35DITE7S"> 使用 top 和 htop 查找 CPU 消耗大户</p><p></li></ul><ul><li id="35DITEBD"></p><p id="35DITE7T"> 使用 mpstat 命令监控 CPU 使用率</p><p></li></ul><ul><li id="35DITEBE"></p><p id="35DITE7U"> 使用 ps 查找 CPU 消耗大户</p><p></li></ul><ul><li id="35DITEBF"></p><p id="35DITE7V"> 一点清理工作</p><p></li></ul></p><p><ul><li id="35DITEBG">Linux 上的所有进程都需要内存和 CPU 周期,这可能导致对这些资源的竞争。</li><li id="35DITEBH">像 free、top 和 htop 这样的工具有助于识别内存消耗大户和高 CPU 使用率。</li><li id="35DITEBI">使用像 ps 和 top 这样的命令来识别和终止有问题的进程,恢复系统性能。</li></ul></p><p id="35DITE87">在您的 Linux 计算机中运行的每一段代码都需要内存和 CPU 周期。一个进程占用过多份额会减慢其他进程的速度。下面是如何找到罪魁祸首。</p><p><h5>流程和资源的平衡举措</h5></p><p id="35DITE88">内存 和 CPU 周期是有限的资源。当一个程序的代码被执行时,就会形成一个进程。除了操作系统的进程外,还有运行您的桌面环境的进程,以及您启动的任何命令或应用程序。它们都需要 CPU 时间和内存。</p><p id="35DITE89">Linux 和 CPU 必须管理内存的分配,并在核心和线程之间平衡和调度 CPU 工作负载,以确保所有进程都能得到一份。</p><p id="35DITE8A">应用程序应该编写得确保它们不会垄断您的机器,但有时会出错,进程可能会试图占用您所有的内存并垄断您的 CPU。</p><p id="35DITE8B">这时您需要能够识别出失控进程。</p><p><h5>调查高内存使用率</h5></p><p id="35DITE8C">Linux 把空闲内存用作缓存。尽管看起来您所有的内存都在使用中,但这可能是一种错觉。如果需要,会从缓存中删除项目来给常规进程分配内存。</p><p><h5>free 命令</h5></p><p id="35DITE8D">free 命令为您提供内存使用情况的快照式概述。-h(人类可读)选项使输出更易于阅读。</p><p id="35DITE8E">我在一个终端窗口中运行了该命令三次。在另一个终端窗口中,我运行了一个请求大量内存的程序。</p><p id="35DITE8F">free -h</p><p id="35DITE8G">free -h</p><p id="35DITE8H">free -h</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F0d3a3951e11afb7676d1e0b9ce.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE8L"> 可用内存下降的速度惊人。</p><p><h5>读取 /proc/meminfo</h5></p><p id="35DITE8M">像 top 和 htop 这类工具从 /proc/meminfo 伪文件获取其内存信息。</p><p>less /proc/meminfo</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F8beaaafb4b8077e84abf.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE8Q"> 输出会因您所运行的内核和 CPU 架构而不同,但标准字段始终存在。</p><p><h5>使用 vmstat 命令查找内存占用大户</h5></p><p id="35DITE8R">vmstat 命令能够为我们提供 一段时间内虚拟内存使用情况的视图。</p><p id="35DITE8S">要查看四组结果,间隔五秒,以 MiB 显示值,我们可以使用此命令:</p><p>vmstat 5 4 -S M</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F4c271ee3ed43b7230a0dc7fc2029ebbd.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>使用 top 和 htop 查找内存占用大户</h5></p><p id="35DITE90"> top 和 htop 都提供了系统信息的动态仪表板,进程表为每个进程显示一行信息。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F31874d46dbc62714f0f1fd437abf3775.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE94"> 若要按照内存使用情况对进程表进行排序,请按下 Shift+M 。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F79ec95ee122ad3a932aa1198df1d9b24.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE98"> 有个叫 gobble 的程序已经启动了两次。它占用了三分之二的内存。咱们把这两个进程终止掉。</p><p id="35DITE99">按下 k 键,启动终止的功能。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F7a22bcace84b29ccf7c595ea0b239cfc.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE9D"> 在 top 里,咱们得提供想要终止的进程的进程 ID 。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F7fc3f48204a7b3974df46974f761d536.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE9H"> 默认来讲,终止功能会用顶行进程的 ID 。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F0077fa3e36846f6d991cfebabc.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE9L"> 因为咱们按照内存使用情况给表排了序,所以这就是咱们要用的 ID ,因而咱们可以直接按回车键。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F627d0d1600b25ab6b69d670c.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE9P"> 咱们被问到要给进程发送哪个信号。</p><p id="35DITE9Q">如果我们重复该过程两次,gobble 程序的两个实例都已终止。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F0077fa3e36846f6d991cfebabc.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITE9U"> 在 htop 里也差不多。把高亮栏移动到要终止的进程那儿。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F627d0d1600b25ab6b69d670c.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEA2"> 将小的高亮栏移动到 9 SIGKILL 条目,然后按回车键。</p><p><h5>使用 ps 命令查找内存占用大户</h5></p><p id="35DITEA3"> ps 命令 为我们提供进程 ID,还能提供父进程 ID。如果有大量消耗内存的进程均由同一个父进程启动,那么终止该父进程,其所有子进程也会随之终止。</p><p id="35DITEA4">我们会使用 -e(代表所有进程)选项和 -o(表示用户自定义输出格式)选项。在我们所需的输出中包括:</p><p><ul><li id="35DITEBJ"><strong>pid</strong>: 进程 ID。</li><li id="35DITEBK"><strong>ppid</strong>: 父进程 ID。</li><li id="35DITEBL"><strong>comm</strong>: 命令名称。</li><li id="35DITEBM"><strong>%mem</strong>: 此进程使用的 RAM 百分比。</li><li id="35DITEBN"><strong>rss</strong>: 驻留集大小。这是进程使用的非交换物理内存,以千字节为单位。请注意,这不包括尚未实际使用的保留内存,也不包括虚拟内存。但对于手头的任务,这是一个很好的指标。</li><li id="35DITEBO"><strong>%cpu</strong>: 这是进程到目前为止占用的 CPU 时间与进程运行时间相除的结果。</li></ul></p><p id="35DITEA5">我们按内存排序。减号表示倒序排序。我们可以将结果通过管道传递给 head 命令,从而获取 10 个最严重的违规进程。</p><p>ps -e -o pid,ppid,comm,%mem,rss,%cpu --sort=-%mem | head -10</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F9a22df3e1a2c5b67afc00a80.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p><h5>调查高 CPU 使用率</h5></p><p id="35DITEA9">追踪 CPU 占用大户的流程和我们所讨论的内存占用大户的流程极为相似。我们需要识别有问题的进程,并获取其进程 ID。</p><p><h5>使用 top 和 htop 查找 CPU 占用大户</h5></p><p id="35DITEAA">我们可以几乎完全按照追踪内存消耗大户的方式使用 top 和 htop。默认情况下,top 和 htop 按%CPU 列对其进程表进行排序。如果您更改了排序列,可以按 Shift+P(用于处理器)恢复按%CPU 排序。</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F2b7e046b15f115b6a18af51b769fa158.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEAE"> 有一个名为 drain 的进程几乎占用了全部的 CPU 时间。确定罪魁祸首后,我们可以按 k 调用终止进程功能。</p><p><h5>使用 mpstat 命令监控 CPU 使用率</h5></p><p id="35DITEAF">在终止进程时要小心谨慎。有些进程,特别是系统进程,不应被终止。mpstat 命令为您提供用户和系统进程的 CPU 使用率快照。</p><p id="35DITEAG">在 Fedora 和 Manjaro 上您需要安装 mpstat,但它已在我们的 Ubuntu PC 上安装。</p><p id="35DITEAH">在 Fedora 上,您需要输入:</p><p>sudo dnf install sysstat</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F4740d23d4972a141de9ecb.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEAL"> 在 Manjaro 上,命令是:</p><p>sudo pacman -S sysstat</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F9b66b26bb2ee95042ae3184a9ddde0ce.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEAP"> 我们将使用 -P all(所有处理器)选项,并每两秒请求一次报告,共请求五次。</p><p>mpstat -P all 2 5</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F8dbd34dfa9520d72efb54d06.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEAT"> 我们可以看到 CPU 的负载来自用户端,而不是系统端。第六行是我们请求的五次报告的平均值。</p><p><h5>使用 ps 查找 CPU 占用大户</h5></p><p id="35DITEAU">我们也可以使用 ps 来查找 CPU 密集型进程。对我们之前的命令稍作调整,我们可以按 CPU 进行排序。</p><p>ps -e -o pid,ppid,comm,%mem,rss,%cpu --sort=-%cpu | 前 10 个</p><p class="f_center"> <img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2Flmr%2F2024%2F1108%2F6821c2c603fcae7cba010da3ae74bc2d.jpeg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="35DITEB2"> 关于 ps 的条目是一个误报,我们知道它只运行了一小会儿。在第二行,我们可以看到独占 CPU 的进程的进程 ID。有了这些信息,我们可以使用 top 或 htop,或者 kill 命令来终止该进程。</p><p><h5>一点清理工作</h5></p><p id="35DITEB3">大多数时候,您的 Linux 计算机将运行良好,所有进程都在可接受的范围内运行。如果您注意到您的计算机变得迟缓,请使用这些工具进行调查。您可能会发现一个内存或 CPU 占用大户在肆意运行。</p> 

讯享网
小讯
上一篇 2025-04-17 11:06
下一篇 2025-05-14 14:40

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/158037.html