linux查看各进程占用cpu/内存情况

2023-11-03

     

目录

一、ps、top命令:

1、ps命令

1.1 语法 :

1.2、使用场景

2、top命令

1、语法:

2、top命令内容说明:

3、top命令使用过程中的交互的命令

二、排序进程

1、复杂方法

2、简单方法:


 很多时候,你可能遇见过系统消耗了过多的内存。如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程。

一、ps、top命令:

ps 和 top 命令常用来查看Linux系统进程相关信息。

ps命令:可以查看进程的瞬间信息。

top命令:可以持续的监视进程的信息。

1、ps命令

       ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

1.1 语法 :

  ps (选项)

选项 描述
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
-c 显示CLS和PRI栏位。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称> 指定执行指令的名称,并列出该指令的程序的状况。
-d 显示所有程序,但不包括阶段作业领导者的程序。
-e 此选项的效果和指定"A"选项相同。
e 列出程序时,显示每个程序所使用的环境变量。
-f 显示UID,PPIP,C与STIME栏位。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称> 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示程序间的相互关系。
-j或j 采用工作控制的格式显示程序状况。
-l或l 采用详细的格式来显示程序状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码> 指定程序识别码,并列出该程序的状况。
p<程序识别码> 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的程序。
-s<阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号> 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有程序。
-u<用户识别码> 此选项的效果和指定"-U"选项相同。
u 以用户为主的格式来显示程序状况。
-U<用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称> 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧式的Linux i386登陆格式显示程序状况。
-y 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码> 此选项的效果和指定"p"选项相同。
–cols<每列字符数> 设置每列的最大字符数。
–columns<每列字符数> 此选项的效果和指定"–cols"选项相同。
–cumulative 此选项的效果和指定"S"选项相同。
–deselect 此选项的效果和指定"-N"选项相同。
–forest 此选项的效果和指定"f"选项相同。
–headers 重复显示标题列。
–help 在线帮助。
–info 显示排错信息。
–lines<显示列数> 设置显示画面的列数。
–no-headers 此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
–group<群组名称> 此选项的效果和指定"-G"选项相同。
–Group<群组识别码> 此选项的效果和指定"-G"选项相同。
–pid<程序识别码> 此选项的效果和指定"-p"选项相同。
–rows<显示列数> 此选项的效果和指定"–lines"选项相同。
–sid<阶段作业> 此选项的效果和指定"-s"选项相同。
–tty<终端机编号> 此选项的效果和指定"-t"选项相同。
–user<用户名称> 此选项的效果和指定"-U"选项相同。
–User<用户识别码> 此选项的效果和指定"-U"选项相同。
–version 此选项的效果和指定"-V"选项相同。
–widty<每列字符数> 此选项的效果和指定"-cols"选项相同



1.2、使用场景

ps -ef         #显示所有当前进程
ps aux         #显示所有当前进程
ps -ax         #显示所有当前进程
ps -u pungki   #根据用户过滤进程
ps -aux --sort -pcpu | less #根据 CPU 使用来升序排序
ps -aux --sort -pmem | less #根据用户过滤进程
ps -aux --sort -pcpu,+pmem | head -n 10 #查询全10个使用cpu和内存最高的应用
ps -C getty    #通过进程名和PID过滤
ps -f -C getty #带格式显示的,通过进程名和PID过滤
ps -L 1213     #根据线程来过滤进程
ps -axjf(或pstree)   #树形显示进程
ps -eo pid,user,args  # 显示安全信息
ps -U root -u root u  #格式化输出 root 用户(真实的或有效的UID)创建的进程

2、top命令

       top命令用来显示执行中的程序进程,使用权限是所有用户。

1、语法:

 格式  :

     top [-] [d delay] [q] [c] [S] [s] [i] [n]

主要参数:
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。

2、top命令内容说明:

在上图中:

第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。

第二行显示的是所有启动的进程、目前运行的、挂起(Sleeping)的和无用(Zombie)的进程。

第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。

第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。

第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。

第六行显示的项目最多,下面列出了详细解释。

PID         进程id
USER        进程所有者
PR          进程优先级
NI          nice值。负值表示高优先级,正值表示低优先级
VIRT        进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES         进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR         共享内存大小,单位kb
S           进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程,N表示该进程优先 
            值是负数。
%CPU        上次更新到现在的CPU时间占用百分比
%MEM        进程使用的物理内存百分比
TIME+       进程使用的CPU时间总计,单位1/100秒
COMMAND     进程名称(命令名/命令行)

3、top命令使用过程中的交互的命令

    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

二、排序进程

1、复杂方法

linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|sort -rn -k +3|head

linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:

ps aux|head -1;ps aux|sort -rn -k +4|head

  head 默认获取10行,可以在后面加 -n 控制显示数量,如获取三行

   ps aux|head -1;ps aux|sort -rn -k +3|head -3

该命令组合实际上是下面两句命令:

ps aux|head -1

     主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)

ps aux|sort -rn -k +3|head
     sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,第三列是 cpu,第四列是内存,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

2、简单方法:

   top

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux查看各进程占用cpu/内存情况 的相关文章

  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 完整的 C++ i18n gettext()“hello world”示例

    我正在寻找完整的 i18ngettext 你好世界的例子 我已经开始了一个基于的脚本使用 GNU gettext 的本机语言支持教程 https web archive org web 20130330233819 http oriya s
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • 为什么默认情况下不启用 arp 忽略/通告 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个需要经验才能回答的具体问题 为什么 arp ignore arp announce 在 Linux 安装 例如 debian 上默认不启用 有
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • 套接字发送调用被阻塞很长时间

    我每 10 秒在套接字上发送 2 个字节的应用程序数据 阻塞 但发送调用在下面的最后一个实例中被阻塞超过 40 秒 2012 06 13 12 02 46 653417 信息 发送前 2012 06 13 12 02 46 653457 信
  • Ctrl-p 和 Ctrl-n 在 Docker 下表现异常

    For the life of me I can t seem to figure out why ctrl p and ctrl n don t work like they re supposed to under the Docker
  • 如何从程序内部获取指向程序的特定可执行文件部分的指针? (也许是诽谤)

    我在 Linux 环境中 需要编写一个程序来检索放置在其可执行文件的某个部分中的一些数据 那么 如何从程序内部获取指向程序某个部分 通过其名称 的指针呢 我知道可以使用elf getdata 将节的索引作为参数传递给 get 和Elf Da
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 打印本周星期一的日期(在 bash 中)

    我想获取本周星期一的 YYYYMMdd 格式的日期 例如 今天是 20110627 从明天到周日 我仍然想打印周一 今天 的日期 然后下周重复这个过程 monday date dmonday Y m d last monday date d
  • 如何将命令输出作为多个参数传递给另一个命令

    我想将命令的每个输出作为多个参数传递给第二个命令 例如 grep pattern input returns file1 file2 file3 我想复制这些输出 例如 cp file1 file1 bac cp file2 file2 b
  • 安装 JDK 时出错:keytool 命令需要已安装的 proc fs (/proc)。 Linux 的 Windows 子系统

    我尝试在 Linux 的 Windows 子系统 Ubuntu 14 04 上安装 Oracle JDK 1 7 但出现以下错误 the keytool command requires a mounted proc fs proc Jav
  • BeagleBone Black 如何用作大容量存储设备?

    是否可以使用 BB 作为大容量存储设备 我希望将其连接到可以从 USB 连接 例如 USB 闪存驱动器 读取文件的音频播放器并充当包含一个特定文件夹的数据存储设备 及其子文件夹 从文件系统 如果可能 在连接到开发板的闪存驱动器上 正如设备规
  • 我可以在 Ubuntu 上使用 Homebrew 吗?

    我只是尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包 但都失败了 这就是我尝试安装它们的方法 sudo apt get install build essential curl git m4 r
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • SIGHUP 用于重新加载配置

    根据signal 7 SIGHUP用于检测控制终端的挂起或控制进程的死亡 然而 我遇到过很多 OSS 守护进程 服务 其中SIGHUP用于启动配置的重新加载 这里有一些例子 hostapd sshd snort etc 这是实现重新加载的标
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid

随机推荐

  • Type Conversion and Function Overloading___CH_8

    8 1 Implicit type conversion coercion What happens when a type conversion is invoked When a type conversion is invoked w
  • 使用Xpose突破安卓App禁止截屏限制

    WindowManager LayoutParams FLAG SECURE标志的app 这里需要注意下支付宝 网上银行类的app不建议拦截 像支付宝里的付款码 商家拿到后 直接就能扣费 不需要用户这边的确认 所以其实这款应用是可以用在多个
  • HNUCM-OJ 1401: 递归求解

    http acm hnucm edu cn JudgeOnline problem php id 1401 题目描述 使用递归编写一个程序 求以下数列的前n项 s 1 1 2 1 3 1 4 1 5 1 6 1 n 输入 多组数据输入 每组
  • HDF5 使用介绍

    1 HDF5介绍 HDF 是用于存储和分发科学数据的一种自我描述 多对象文件格式 HDF 是由美国国家超级计算应用中心 NCSA 创建的 以满足不同群体的科学家在不同工程项目领域之需要 HDF 可以表示出科学数据存储和分布的许多必要条件 H
  • 第二节:微信小程序静态页面开发初体验

    根据上一节了解到的小程序知识 尝试完成一个入门的demo项目 记录下过程 供日后参考 第一个页面 打算做一个新闻信息展示的静态页面 首先展示一下最后完成的效果 页面很简单 分成三个部分 页面标题 中间的轮播图和下面的图文信息 轮播图的实现
  • 云演CTF: 007.blog

    云演CTF 007 blog 作者 admin 时间 2021 05 28 分类 信息收集 打开就是登录界面 直接 123456 出现弹窗 还以为是js验证 想多了 CTRL u打开源码 function var login login l
  • 复原ip地址--回溯算法

    LeetCode 复原IP地址 给定一个只包含数字的字符串 复原它并返回所有可能的IP地址格式 有效的IP地址正好由四个整数 每个整数位于0到255之间组成 整数之间用 分隔 示例 输入 25525511135 输出 255 255 11
  • 径向基函数

    注意核函数是一回事 径向基函数是另一回事 核函数表示的是高维空间里由于向量内积而计算出来的一个函数表达式 后面将见到 而径向基函数是一类函数 径向基函数是一个它的值 y 只依赖于变量 x 距原点距离的函数 即 也可以是距其他某个中心点的距离
  • 我使用的Vim插件

    2023年9月5日 周二下午 为了方便以后还原自己的Vim插件配置 于是写这篇博客来记录一下 不定期更新 目录 语法检查Syntastic 文件树The NERD tree 自动补全括号auto pairs 超轻量级自动补全vim auto
  • 交换机端口安全实验

    文章目录 一 实验的背景与目的 二 实验拓扑 三 实验需求 四 实验解法 1 PC配置IP地址部分 2 在SW1上开启802 1X身份验证 3 创建一个用户身份验证的用户 用户名为wangdaye 密码为123456 4 创建一个端口隔离组
  • 死锁,死锁必要条件及处理策略

    大自然的搬运工 完美分割线 多线程中 常见的一种问题除了竞态条件外就是死锁 那什么是死锁呢 死锁就是 是指两个或两个以上的进程在执行过程中 因争夺资源而造成的一种互相等待的现象 若无外力作用 它们都将无法推进下去
  • 图片在div中居中

    一 方法1 html代码 div class content img src img 举手yeah png div css代码 content display flex justify content center align items
  • 微服务网关实战——Spring Cloud Gateway

    导读 作为Netflix Zuul的替代者 Spring Cloud Gateway是一款非常实用的微服务网关 在Spring Cloud微服务架构体系中发挥非常大的作用 本文对Spring Cloud Gateway常见使用场景进行了梳理
  • 带你一周刷完操作系统视频笔记(3)

    本片笔记将会从基本概念 进程结构 区分进程线程这三个方面解释什么是进程 process 概念 process是一个具有一定独立功能的程序关于某个数据集合的一次运行活动 是系统进行资源分配和调度的独立单位 是资源分配的最小单位 要点 进程是程
  • SD卡通信协议那些事

    SD卡通信 SD卡通信协议主要包括物理层 数据传输层和应用层三个部分 物理层 SD卡使用SPI或SDIO两种物理层协议进行通信 SPI是一种同步串行通信协议 使用4根信号线进行通信 SDIO是一种异步串行通信协议 使用9根信号线进行通信 数
  • Jenkins用户权限控制插件——Role-based Authorization Strategy

    看了下公司的jenkins权限配置 发现公司用的是Role based Authorization Strategy插件做的权限控制 之前公司一直用的是安全矩阵的方式控制的 这里就大概记录一下吧 使用Role based Authoriza
  • Mybatis 笔记(1)- 搭建最基础的springboot+mybatis结构

    不讲mybatis的历史 mybatis和springmvc的历史 这里只列举springboot和mybatis整合需要做哪些工作 1 添加依赖 版本可以根据你的实际情况自行调整 2 配置dao mapper interface 和 Ma
  • selenium-server

    Selenium grid for selenium1 and webdriver Introduction Grid allows you to scale by distributing tests on several machine
  • 最便宜的云服务器

    阿里云和腾讯云都有推广活动 所以价格比较低 但直接从首页下单还是原价 必须从他们的推广链接 看下文 进去下单才便宜 顺便比较了一下网易云 华为云 都没有这么便宜 阿里云 点击选购最便宜服务器 阿里云福利 阿里云1888元优惠券红包
  • linux查看各进程占用cpu/内存情况

    目录 一 ps top命令 1 ps命令 1 1 语法 1 2 使用场景 2 top命令 1 语法 2 top命令内容说明 3 top命令使用过程中的交互的命令 二 排序进程 1 复杂方法 2 简单方法 很多时候 你可能遇见过系统消耗了过多