本教程中包含两个脚本,它们可以帮助你确定 Linux 上高 CPU/内存消耗进程的运行时间。

• 来源:linux.cn • 作者:Magesh Maruthamuthu • 译者:geekpi •

(本文字数:3589,阅读时长大约:4 分钟)

过去,我们写了三篇不同的文章来使用 Linux 命令来识别这些进程。

你可以通过下面相关的 URL 立即访问:

  • 如何在 Linux 中找出 CPU 占用高的进程
  • 如何在 Linux 中找出内存消耗最大的进程
  • 在 Linux 中如何查找一个命令或进程的执行时间

本教程中包含两个脚本,它们可以帮助你确定 Linux 上高 CPU/内存消耗进程的运行时间。

该脚本将显示进程 ID、进程的所有者、进程的名称以及进程的运行时间。这将帮助你确定哪些(必须事先完成)作业正在超时运行。这可以使用 ps 命令来实现。

什么是 ps 命令

ps 是 进程状态(processes status),它显示有关系统上活动/正在运行的进程的信息。

它提供了当前进程的快照以及详细信息,例如用户名、用户 ID、CPU 使用率、内存使用率、进程开始日期和时间等。

1)检查高 CPU 消耗进程在 Linux 上运行了多长时间的 Bash 脚本

该脚本将帮助你确定高 CPU 消耗进程在 Linux 上运行了多长时间。

# vi /opt/scripts/long-running-cpu-proc.sh#!/bin/bashps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%cpu | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes.txtecho "--------------------------------------------------"echo "UName     PID  CMD            Process_Running_Time"echo "--------------------------------------------------"for userid in `cat /tmp/long-running-processes.txt`dousername=$(ps -u -p $userid | tail -1 | awk '{print $1}')pruntime=$(ps -p $userid -o etime | tail -1)ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')echo "$username $userid $ocmd $pruntime"done | column -techo "--------------------------------------------------"

给 long-running-cpu-proc.sh 设置可执行的 Linux 文件权限 。

# chmod +x /opt/scripts/long-running-cpu-proc.sh

运行此脚本时,你将获得类似以下的输出:

# sh /opt/scripts/long-running-cpu-proc.sh----------------------------------------------------UName     PID  CMD       Process_Running_Time----------------------------------------------------daygeek  5214  Web       01:18:48daygeek  5748  Web       01:08:20daygeek  8043  inkscape  22:11daygeek  5269  Web       01:18:31daygeek  1712  Web       10:44:50daygeek  5335  RDD       01:17:54daygeek  1639  firefox   10:44:51daygeek  7793  nautilus  24:14daygeek  6301  Web       57:40----------------------------------------------------

2)检查高内存消耗进程在 Linux 上运行了多长时间的 Bash 脚本

该脚本将帮助你确定最大的内存消耗进程在 Linux 上运行了多长时间。

# sh /opt/scripts/long-running-memory-proc.sh#!/bin/bashps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%mem | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes-1.txtecho "--------------------------------------------------"echo "UName     PID  CMD          Process_Running_Time"echo "--------------------------------------------------"for userid in `cat /tmp/long-running-processes-1.txt`dousername=$(ps -u -p $userid | tail -1 | awk '{print $1}')pruntime=$(ps -p $userid -o etime | tail -1)ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')echo "$username $userid $ocmd $pruntime"done | column -techo "--------------------------------------------------"

给 long-running-memory-proc.sh 设置可执行的 Linux 文件权限。

# chmod +x /opt/scripts/long-running-memory-proc.sh

运行此脚本时,你将获得类似以下的输出:

# sh /opt/scripts/long-running-memory-proc.sh----------------------------------------------------UName    PID   CMD       Process_Running_Time----------------------------------------------------daygeek  1639  firefox   10:44:56daygeek  2997  Web       10:39:54daygeek  5269  Web       01:18:37daygeek  1712  Web       10:44:55daygeek  8043  inkscape  22:17daygeek  5214  Web       01:18:54daygeek  1898  Web       10:44:48daygeek  1129  Xorg      10:45:07daygeek  6301  Web       57:45----------------------------------------------------

高cpu_实用脚本:检查高 CPU / 内存消耗进程 | Linux 中国相关推荐

  1. linux 内存查看_Linux终端查看最消耗CPU内存的进程

    1.CPU占用最多的前10个进程 ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps au ...

  2. Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  3. linux查找用户前三进程_查看 Linux 系统中进程和用户的内存使用情况 | Linux 中国...

    有一些命令可以用来检查 Linux 系统中的内存使用情况,下面是一些更好的命令.-- Sandra Henry-stocker 有许多工具可以查看 Linux 系统中的内存使用情况.一些命令被广泛使用 ...

  4. gifcam使用缩小内存_Fedora 上的桌面环境内存占用测试 | Linux 中国

    通常,根据功能.外观和其它品质,选择桌面是一件非常个人的偏好.但有时,你选择的桌面环境还会受到硬件限制.-- Troy Dawson Fedora 中有 40 多种桌面环境(DE).每种桌面环境都有自 ...

  5. linux 查看内存消耗情况,Linux终端:用smem查看内存占用情况

    无论是作为系统管理员,还是作为使用桌面版Linux的简单用户,你都会注意到,某个进程在耗用你系统的所有内存. 首先要明白Linux是如何管理内存的:我多次接到用户的反映,说运行了free命令,就是无法 ...

  6. 高cpu_再一次生产 CPU 高负载排查实践

    (给ImportNew加星标,提高Java技能) 作者:crossoverJie segmentfault.com/a/1190000019507028 前言 前几日早上打开邮箱收到一封监控报警邮件: ...

  7. java并发 cpu高_java高并发核心要点|系列5|CPU内存伪共享

    上节提到的:伪共享,今天我们来说说. 那什么是伪共享呢? 这得从CPU的缓存结构说起.以下如图,CPU一般来说是有三级缓存,1 级,2级,3级,越上面的,越靠近CPU的,速度越快,成本也越高.也就是说 ...

  8. TrafficMonitor——简洁实用的网速/cpu/内存监控器

    说明 项目地址:https://github.com/zhongyang219/TrafficMonitor 自从卸载了360,一直想找一个性能监控小程序,终于我看上了这个. 有两种模式,悬浮窗或内嵌 ...

  9. 今天专攻POWERSHELL获取本机CPU,内存消耗

    PS脚本如下: 1 $Server = $env:computername 2 #server's CPU Mem Hardinfor 3 $cpu = gwmi –computername $Ser ...

最新文章

  1. cannot access a closed file
  2. App Inventor2项目部署到本地
  3. SQL数据导入导出问题总结
  4. python无效的类字符串_Python不规范的日期字符串处理类
  5. ASP.NET Ajax编程技术学习
  6. )类 新建javafx程序时_关于JavaFX杂谈
  7. HCIE-Security Day10:6个实验理解VRRP与可靠性
  8. org.jgroups.ChannelException: failed to start p...
  9. 北京航天大学考研计算机科学与技术分数线,北京航空航天大学计算机科学与技术考研...
  10. learning bamboo flute
  11. 笔记本 无线网联网 win10系统 ,台式机木有无线网卡,通过一根网线连接两台电脑,使台式机联网。...
  12. PGSQL Key (id)=(1) already exists.
  13. 计算机手机远程控制,手机怎么远程控制电脑?手机远程控制电脑步骤详解
  14. Android SystemUI之下拉菜单,通知栏,快捷面板(三)
  15. 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
  16. 【云计算与大数据】IassPassSass
  17. OKhttp+Gson实现从网络上获取最新新闻
  18. AICS188-Project6-Q1-Q3
  19. SM4国密算法原理及python代码实现
  20. 基于Python旅游景区景点售票系统设计与实现 开题报告

热门文章

  1. pytorch one-hot转数组
  2. avcodec_encode_video2 AVERROR(EAGAIN)
  3. python与caffe改变通道顺序
  4. 在编程和算法领域,有哪些经典问题
  5. 【11】nvjdc不能用以后另一种jd ck获取办法
  6. android 按钮链接,如何连接到Android中的Power按钮?
  7. java象棋无框架版_Java版中国象棋
  8. php开发 linux作用是什么,linux有什么用?
  9. MySQL插入数据时报错Cause: java.sql.SQLException: #HY000的解决方法
  10. mybatis的mapper.xml中使用java类中的全局变量