【Linux性能】Linux系统中进程运行时间的五大精准检测法

news/2025/1/27 13:19:08/文章来源:https://www.cnblogs.com/o-O-oO/p/18692534

在Linux操作系统的复杂而精细的运行环境中,准确了解各个进程的运行时间对于系统管理员和开发人员而言至关重要。这不仅有助于监控系统性能,还能为调试问题提供关键线索,进而实现对系统资源的高效管理。本文将深入探讨五种在Linux中检查进程运行时间的有效方法,每种方法都具有其独特的优势和适用场景。

一、ps命令

简单直接的进程时间查询利器

ps命令作为最常用的进程查看工具之一,其功能丰富多样。若要获取特定进程的运行时间,可使用如下命令:

ps -p <PID> -o etime

其中,<PID>需替换为实际进程的进程ID。执行此命令后,系统将直接显示该进程的运行时间。

ps命令所呈现的运行时间格式为[[dd-]hh:]mm:ss。具体含义如下:

dd:表示天数,即进程从启动至当前的总天数。若进程运行时间未超过一天,此项则不会显示。例如,进程运行了3天,此处将显示“3-”。

hh:代表小时数,是进程从启动到目前为止累计的总小时数。当运行时间超过一天时,会结合天数一起显示,如“1-05”,表示进程已运行1天5小时。

mm:表示分钟数,精确到从进程启动起的总分钟数。

ss:代表秒数,记录从进程启动至查询时刻的总秒数。
例如,输出结果为“2-13:45:30”,意味着该进程已经持续运行了2天13小时45分30秒。

首先,通过ps aux | grep <process_name>命令查找目标进程的进程ID(PID)。

这里,<process_name>应替换为进程的名称或部分关键字。在搜索结果中找到对应的PID后,再使用ps -p <PID> -o etime命令,即可获取该进程的详细运行时间信息。

【例如】,若要查询名为“nginx”的进程运行时间,先执行ps aux | grep nginx找到其PID为3710424,然后输入ps -p 3710424 -o etime,便能得出如“129-04:03:31”的结果,表明该进程已运行129天4小时3分31秒。

二、top命令

实时监控下的运行时间洞察

top命令是一款功能强大的实时系统监控工具,不仅能展示当前所有正在运行的进程及其系统整体性能,还能方便地查看各进程的运行时间。在使用top命令的过程中,按下Shift + E组合键,即可调出进程运行时间的排序界面。此时,屏幕会按照进程运行时间从长到短的顺序进行排列,便于快速定位运行时间较长的进程。

在top命令的进程视图中,有一个关键的列标头TIME+,它专门用于显示每个进程的累计CPU时间,也就是进程运行的总时间。其显示格式同样遵循[dd-]hh:mm:ss的规则。例如,某进程的TIME+列显示为“3-12:45:32”,这清晰地表明该进程已经运行了3天12小时45分32秒,让管理员能够直观地了解各进程的资源占用情况随时间的变化趋势,从而及时发现潜在的性能瓶颈。

三、pstree命令

层级结构中的运行时间呈现

pstree命令以其独特的树状结构展示方式,能够清晰地呈现进程及其子进程之间的关系,构建出一幅完整的进程家族图谱。同时,它也为管理员提供了一种便捷的途径来查看进程的运行时间信息。

要使用pstree命令查看某个进程及其子进程的运行时间,只需在终端中输入pstree -p <PID>命令,并将<PID>替换为具体的进程ID。执行该命令后,系统将以树状结构列出以指定进程为根的所有子进程,并在相应位置显示每个进程的运行时间。【例如】,执行pstree -p 5678后,可能会得到如下输出:

init(1)---bash(2)---pstree(5678,00:12:34)

其中,括号内的“00:12:34”即为pstree命令自身的运行时间。这种直观的层级展示方式,使得管理员能够迅速把握进程之间的衍生关系以及各自的运行时长,对于分析复杂的进程依赖和资源分配情况具有重要价值。

四、proc文件系统

深入内核的信息宝库

Linux中的/proc文件系统是一个虚拟的文件系统,它为系统内核与用户空间提供了一个交互接口,存储了大量关于系统和进程的详细信息。通过访问/proc目录下的相关文件,我们可以获取到许多关键数据,其中包括进程的运行时间。

要获取进程的运行时间,可以借助以下命令:

cat /proc/<PID>/stat | awk '{print $14}'

在此命令中,<PID>需要替换为实际的进程ID。该命令的作用是读取/proc/<PID>/stat文件中的第14个字段,这个字段记录了进程自启动以来的时钟滴答数,也就是进程消耗的CPU时间单位。然而,需要注意的是,这里的时钟滴答数并非直接等同于我们日常理解的时间单位,它需要根据系统的时钟频率进行转换才能得到准确的时间值。例如,如果系统的时钟频率为100Hz,那么一个时钟滴答就代表0.01秒。通过进一步的计算和转换,就可以将时钟滴答数转化为更直观的时间格式,从而了解进程的实际运行时间。

五、systemd命令

现代化系统服务管理中的时间查询

systemd是Linux系统中广泛使用的系统和服务管理器,它负责管理系统的启动过程、服务单元以及系统资源等。在当今的Linux发行版中,许多服务都是通过systemd进行管理的。因此,使用systemd命令来查看特定服务的运行时间具有重要的实际意义,尤其适用于那些由systemd管理的重要系统服务。

要查看由systemd管理的某个服务的运行时间,可以使用以下命令:

systemctl status <服务名称>

<服务名称>替换为具体的服务名。执行该命令后,输出结果中会包含一个“Active”行,其中显示了服务的活跃状态以及运行时间。例如,对于“nginx”服务,执行systemctl status nginx后,可能会得到如下输出:

● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2024-01-01 10:00:00 UTC; 1h 30min ago

从上述输出中可以清晰地看到,nginx服务自2024-06-17 17:03:26开始运行,截至查询时刻已经运行了7个月7天。这种基于systemd命令的查询方式,为管理员管理和维护现代Linux系统中的各种服务提供了有力的支持,使得他们能够及时掌握服务的运行状态和持续时间,确保系统的稳定运行。

综上所述,在Linux系统中检查进程运行时间的方法多种多样,每种方法都有其独特的优势和适用场景。无论是简单直接的ps命令、实时监控的top命令,还是展示层级结构的pstree命令、深入内核的/proc文件系统访问方式以及现代化的systemd命令,都为我们全面了解进程运行时间提供了丰富的手段。熟练掌握这些方法,能够帮助我们更好地管理系统资源、优化系统性能、快速定位和解决系统故障,从而确保Linux系统在各种应用场景下都能稳定、高效地运行。

原创 漫谈君 运维漫谈

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS Code 报错 __float128 is not supported on this target 解决方法

最近在使用 VS Code 时,每一个 cpp 文件都会有如下报错:在中文互联网上并没有搜索到很好的解决方案,但是在 stack overflow 上找到了一个比较好的回答:This problem may be caused by your VSCode using clang-tidy as the C/C++ extension. clang-tidy does not support _…

A Critique of ANSI SQL Isolation Levels.18687395

原文:A critique of ANSI SQL isolation levels摘要:ANSI SQL-92[MS, ANSI]使用脏读、不可重复读以及幻读现象(phenomena)定义了隔离级,本论文展示了这些现象,以及ANSI SQL定义并无法合适的描述众多流行的隔离级别,包括(ANSI标准)所涵盖的级别的标准锁实现。我们还介绍…

0127人工智能创新型教师培育计划(第一期) 试题

# 试题 http://site01.openhydra.net:30012/evt/uploadcode人工智能创新型教师培育计划(第一期)​ 【活动进展每日更新1月26日】​活动更新(1月26日 22:00更新): Python作业​教师AI基础考核作业(见下面介绍),或者可以下载word文件 查看。 1月31日中午24:00前提交, 作…

.net core 使用账号密码方式读取SharePoint 文件(记录)

项目环境 .net 6.0 原代码 是.netframework 4.6 原代码引用了Microsoft.SharePoint.Client 包去操作.其中身份验证的使用的是 SharePointOnlineCredentials 类.但迁移到.net 6,0 后发现这个类已经被移除.测试了常用 的各种方式,大部分均返回403 解决方案: 使用包 dotnet add…

mkcert生成ssl证书+nginx部署局域网内的https服务访问

环境 使用的是树莓派 安装的是ubuntu 系统 https://github.com/FiloSottile/mkcert/releases 下载 添加权限 chmod 777 ./mkcert-v1.4.4-linux-arm64 1、CA 证书加入本地可信 CA ./mkcert-v1.4.4-linux-arm64 -install 2、生成自签证书 ./mkcert-v1.4.4-linux-arm64 …

iPhone 拍摄 LED 灯带视频时候如何防频闪 All In One

iPhone 拍摄 LED 灯带视频时候如何防频闪 All In One 闪动频率不一致 bug? 60Hz 50HziPhone 拍摄 LED 灯带视频时候如何防频闪 All In One闪动频率不一致 bug?60Hz 50Hz errorshttps://www.bilibili.com/video/BV1F5fkY6ERS/ 问题分析 灯的问题,灯在闪。 交流电是 50Hz(中国…

iPhone 视频拍摄 LED 灯带时候如何防频闪 All In One

iPhone 视频拍摄 LED 灯带时候如何防频闪 All In One 闪动频率不一致 bug? 60Hz 50HziPhone 视频拍摄 LED 灯带时候如何防频闪 All In One闪动频率不一致 bug?60Hz 50Hz errorshttps://www.bilibili.com/video/BV1F5fkY6ERS/ solutions demos(🐞 反爬虫测试!打击盗版⚠️)…

AI智能体(Agent)总体框架及技术发展现状

智能体(Agent)定义 AI智能体,又称AI代理或 Al Agent,是能够感知环境,基于目标进行决策并执行动作的智能化应用。它具备自主性、交互性、反应性和适应性等基本特征,能够在复杂多变的环境中独立完成任务。智能体的出现,标志着人工智能从简单的规则匹配和计算模拟向更高级别的…

记忆层以前所未有的方式增强了LLMs

深入探讨记忆层如何工作,以及它们如何增强LLMs,以至于下一代AI架构如果不采用它们,将会错失良机。图像由DALL-E 3生成LLMs(大型语言模型)是存储在其参数中的庞大信息知识库(主要是以密集层中线性矩阵变换的权重形式存在)。 然而,随着参数规模的增长,计算成本和能源消耗…

知识蒸馏技术原理详解:从软标签到模型压缩的实现机制

知识蒸馏是一种通过性能与模型规模的权衡来实现模型压缩的技术。其核心思想是将较大规模模型(称为教师模型)中的知识迁移到规模较小的模型(称为学生模型)中。本文将深入探讨知识迁移的具体实现机制。知识蒸馏原理 知识蒸馏的核心目标是实现从教师模型到学生模型的知识迁移。…

GIS数据合集:作物、植被数据下载平台整理

本文对目前主要的作物类型与产量、植被物候与指数数据产品的获取网站加以整理与介绍~本文对目前主要的作物类型与产量、植被物候与指数数据产品的获取网站加以整理与介绍。 目录4 植被农业数据4.1 作物产量数据4.1.1 SPAM4.1.2 Aerial Intelligence4.2 作物物候数据4.2.1 China…