Linux查看最消耗内存的进程

0    1068    5

👉 本文共约2002个字,系统预计阅读时间或需8分钟。

了解RSS、PSS、USS等相关概念:

  • VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
  • RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  • PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
  • USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

RSS(Resident set size),使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。

PSS(Proportional set size)所有使用某共享库的程序均分该共享库占用的内存时,每个进程占用的内存。显然所有进程的PSS之和就是系统的内存使用量。它会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。

USS(Unique set size )进程独自占用的内存,它是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分。

ps命令

CPU占用最多的前10个进程

Linux查看最消耗内存的进程

内存消耗最多的前10个进程

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

Linux查看最消耗内存的进程

虚拟内存使用最多的前10个进程

Linux查看最消耗内存的进程

也可以试试

5.看看几个参数含义

  1. %MEM 进程的内存占用率
  2. MAJFL is the major page fault count,
  3. VSZ 进程所使用的虚存的大小
  4. RSS 进程使用的驻留集大小或者是实际内存的大小(RSS is the "resident set size" meaning physical memory used)
  5. TTY 与进程关联的终端(tty)

top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:

image-20210806104855419

为了查看哪个进程使用着最多的内存,一个简单的办法就是启动 top,然后按下 shift+m,这样便可以查看按照内存占用百分比从高到底排列的进程。当你按下了 shift+m ,你的 top 应该会得到类似于下面这样的输出结果:

注意 %MEM 排序。列表的大小取决于你的窗口大小,但是占据着最多的内存的进程将会显示在列表的顶端。

内容解释:

  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

  常用的命令:

  P:按%CPU使用率排行
  T:按MITE+排行
  M:按%MEM排行

pmap命令

 可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看),如下所示:

用法

选项含义

扩展格式和设备格式域:

  • Address: start address of map 映像起始地址
  • Kbytes: size of map in kilobytes 映像大小
  • RSS: resident set size in kilobytes 驻留集大小
  • Dirty: dirty pages (both shared and private) in kilobytes 脏页大小
  • Mode: permissions on map 映像权限: r=read, w=write, x=execute, s=shared, p=private (copy on write)
  • Mapping: file backing the map , or '[ anon ]' for allocated memory, or '[ stack ]' for the program stack. 映像支持文件,[anon]为已分配内存 [stack]为程序堆栈
  • Offset: offset into the file 文件偏移
  • Device: device name (major:minor) 设备名

  • mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz

  • writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小

  • shared 表示进程和其他进程共享的内存大小

    头像

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表评论

    您的电子邮箱地址不会被公开。

    7 + 11 =

     

    嘿,我是小麦,需要帮助随时找我哦
    • 18509239930
    • 个人微信

    • 麦老师QQ聊天
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部
    返回顶部