我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下如何查询进程占用的内存

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下如何查询进程占用的内存

小编给大家分享一下Linux下如何查询进程占用的内存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

linux下查询进程占用的内存方法总结,假设现在有一个「php-cgi」的进程 ,进程id为「25282」。现在想要查询该进程占用的内存大小。linux命令行下有很多的工具进行查看,现总结常见的几种方式

Linux下如何查询进程占用的内存

通过进程的 status

[root@web3_u ~]# cat /proc/25282/status
Name: php-cgiState: S (sleeping)Tgid: 25282Pid: 25282PPid: 27187TracerPid: 0Uid: 99 99 99 99Gid: 99 99 99 99Utrace: 0FDSize: 256Groups: 99VmPeak: 496388 kBVmSize: 438284 kBVmLck: 0 kBVmHWM: 125468 kBVmRSS: 113612 kBVmData: 92588 kBVmStk: 100 kBVmExe: 6736 kBVmLib: 18760 kBVmPTE: 528 kBVmSwap: 0 kBThreads: 1SigQ: 0/46155SigPnd: 0000000000000000ShdPnd: 0000000000000000SigBlk: 0000000000000000SigIgn: 0000000000001000SigCgt: 0000000184000004CapInh: 0000000000000000CapPrm: 0000000000000000CapEff: 0000000000000000CapBnd: ffffffffffffffffCpus_allowed: fCpus_allowed_list: 0-3Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001Mems_allowed_list: 0voluntary_ctxt_switches: 68245nonvoluntary_ctxt_switches: 15751

VmRSS: 113612 kB 表示占用的物理内存

通过 pmap

[root@web3_u ~]# pmap -x 25282
25282: /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.confAddress Kbytes RSS Dirty Mode Mapping0000000000400000 6736 2692 0 r-x-- php-cgi0000000000c93000 264 196 120 rw--- php-cgi0000000000cd5000 60 48 48 rw--- [ anon ]. . .00007fd6226bc000 4 4 4 rw--- ld-2.12.so00007fd6226bd000 4 4 4 rw--- [ anon ]00007fff84b02000 96 96 96 rw--- [ stack ]00007fff84bff000 4 4 0 r-x-- [ anon ]ffffffffff600000 4 0 0 r-x-- [ anon ]---------------- ------ ------ ------total kB 438284 113612 107960

关键信息点

进程ID

启动命令「/usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf」

RSS :占用的物理内存 113612KB

通过 smaps

[root@web3_u ~]# cat /proc/25282/smaps | grep '^Rss:' \| awk '{sum +=$2} END{print sum}'113612

求和得到实际占用物理内存为 113612

通过 ps 命令

[root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' \| awk '$1 ~ /25282/'25282 php-cgi /usr/local/php/bin/php-cgi 0.0 113612 438284 Oct09 nobody 99

awk 过滤 25282 进程号,得到第5列「rsz」的内存大小为「113612」

输出php-cgi进程占用的物理内存,并从高到低进行排序

[root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' \| grep php-cgi | sort -k5nr

输出结果

23946 php-cgi /usr/local/php/bin/php-cgi 0.0 129540 440000 Oct06 nobody 9924418 php-cgi /usr/local/php/bin/php-cgi 0.0 129336 437684 Oct06 nobody 9918973 php-cgi /usr/local/php/bin/php-cgi 0.0 129268 440176 Oct06 nobody 9917219 php-cgi /usr/local/php/bin/php-cgi 0.0 126588 439840 Oct06 nobody 996996 php-cgi /usr/local/php/bin/php-cgi 0.0 124876 438104 Oct09 nobody 9923850 php-cgi /usr/local/php/bin/php-cgi 0.0 122984 440036 Oct09 nobody 9928310 php-cgi /usr/local/php/bin/php-cgi 0.0 122920 436456 Oct09 nobody 99

其中rsz为实际内存,上例实现按内存排序,由大到小

TOP 命令输出的列

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND25282 nobody 20 0 428m 110m 93m S 0.0 1.9 0:34.42 php-cgi

输出列信息

  1. PID 25282

  2. 用户 nobody

  3. 虚拟内存 428M

  4. 物理内存 110M 110*1024= 112640 「和前面计算出来的值基本一致」

  5. 共享内存 93M

  6. 进程使用的物理内存和总内存的百分比 1.9 %

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

按P

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND16036 root 20 0 8902m 8.6g 480 R 100.0 36.6 0:33.15 redis-server12934 root 20 0 8902m 8.6g 1072 S 5.5 36.6 285:37.81 redis-server969 root 20 0 0 0 0 D 4.2 0.0 277:14.85 flush-252:161304 root 23 3 1689m 50m 3264 S 4.2 0.2 1445:03 xs-searchd1294 root 20 0 14928 928 584 S 3.5 0.0 635:05.31 xs-indexd1287 nobody 20 0 12884 772 576 S 2.8 0.0 833:11.42 dnsmasq1302 root 23 3 1113m 39m 3244 S 0.7 0.2 1437:57 xs-searchd4444 www 20 0 280m 43m 884 S 0.7 0.2 27:43.92 nginx1 root 20 0 19232 1160 868 S 0.0 0.0 0:06.75 init

按 P .表示按cpu排序,默认也是按cpu排序

按M

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND12934 root 20 0 8902m 8.6g 1072 S 6.0 36.6 285:39.77 redis-server16036 root 20 0 8902m 8.6g 480 R 100.0 36.6 1:11.42 redis-server1236 www 20 0 1053m 209m 6556 S 0.0 0.9 4:40.70 php-cgi1231 www 20 0 1034m 146m 6536 S 0.0 0.6 4:20.82 php-cgi1184 www 20 0 1043m 119m 6584 S 0.0 0.5 4:21.85 php-cgi

按M 。 表示按占用内存排序。 第一列 redis服务器占用了8.6G的内存 。 这个内存和redis info

[root@img1_u ~]# redis-cli info memory# Memoryused_memory_human:8.32G

基本相同。

[root@img1_u ~]# top -u wwwtop - 22:09:01 up 67 days, 14:16, 1 user, load average: 0.61, 0.90, 0.98Tasks: 283 total, 2 running, 281 sleeping, 0 stopped, 0 zombieCpu(s): 3.9%us, 1.0%sy, 0.5%ni, 89.7%id, 4.6%wa, 0.0%hi, 0.3%si, 0.0%stMem: 24542176k total, 21130060k used, 3412116k free, 1750652k buffersSwap: 524280k total, 0k used, 524280k free, 4039732k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND681 www 20 0 855m 25m 5796 S 0.0 0.1 0:47.00 php-cgi1181 www 20 0 887m 57m 6484 S 0.0 0.2 4:41.66 php-cgi1183 www 20 0 864m 34m 6320 S 0.0 0.1 3:52.39 php-cgi1184 www 20 0 1043m 119m 6584 S 0.0 0.5 4:21.85 php-cgi1185 www 20 0 869m 39m 6376 S 0.0 0.2 3:57.84 php-cgi1186 www 20 0 886m 56m 6244 S 0.0 0.2 3:44.75 php-cgi1187 www 20 0 926m 66m 6480 S 0.0 0.3 4:16.12 php-cgi1188 www 20 0 890m 60m 6288 S 0.0 0.3 4:13.35 php-cgi1189 www 20 0 892m 62m 6408 S 0.0 0.3 4:06.60 php-cgi

-u 指定用户。 php-cgi占用的内存在60M左右

按进程消耗内存多少排序的方法

通过 ps 命令

第一种方法

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -k5nr

第二种方法

ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' --sort -rsz

输出结果

[root@web3_u ~]# ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user' | sort -k5nr23946 php-cgi /usr/local/php/bin/php-cgi 0.0 129540 440000 Oct06 nobody24418 php-cgi /usr/local/php/bin/php-cgi 0.0 129336 437684 Oct06 nobody18973 php-cgi /usr/local/php/bin/php-cgi 0.0 129268 440176 Oct06 nobody17219 php-cgi /usr/local/php/bin/php-cgi 0.0 126588 439840 Oct06 nobody6996 php-cgi /usr/local/php/bin/php-cgi 0.0 125056 438104 Oct09 nobody23850 php-cgi /usr/local/php/bin/php-cgi 0.0 122984 440036 Oct09 nobody

参数解析:

  1. -e 显示所有进程

  2. -o 定制显示信息

  3. pid 进程ID

  4. comm 进程名

  5. args 启动命令

  6. pcpu 占用CPU 百分比

  7. rsz 占用物理内存大小

  8. vsz 占用虚拟内存大小

  9. stime 进程启动时间

  10. user 启动用户

以第一行为例

进程ID 23946进程名 php-cgi启动命令 /usr/local/php/bin/php-cgi占用CPU 0占用物理内存 129540占用虚拟内存 440000启动时间 Oct06启动用户 nobody

通过 top 命令

top命令默认是以CPU排序输出的,按字母「M」,可以按内存占用大小进行排序显示

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND23946 nobody 20 0 429m 126m 107m S 0.0 2.2 1:15.01 php-cgi24418 nobody 20 0 427m 126m 109m S 0.0 2.2 1:19.56 php-cgi18973 nobody 20 0 429m 126m 107m S 0.0 2.2 1:20.18 php-cgi17219 nobody 20 0 429m 123m 104m S 0.0 2.1 1:23.60 php-cgi6996 nobody 20 0 427m 122m 105m S 0.0 2.1 1:05.27 php-cgi23850 nobody 20 0 429m 120m 101m S 0.0 2.1 1:02.43 php-cgi

输出参数介绍

  1. PID:进程的ID

  2. USER:进程所有者

  3. VIRT:进程占用的虚拟内存

  4. RES:进程占用的物理内存

  5. SHR:进程使用的共享内存

  6. S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数

  7. %CPU:进程占用CPU的使用率

  8. %MEM:进程使用的物理内存和总内存的百分比

  9. TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

通过比较进程ID 「23946」,top 命令和 ps 命令输出的结果基本保持一致

以上是“Linux下如何查询进程占用的内存”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下如何查询进程占用的内存

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下如何查询进程占用的内存

小编给大家分享一下Linux下如何查询进程占用的内存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux下查询进程占用的内存方法总结,假设现在有一个「php-
2023-06-05

linux查看进程内存占用

需要知道一台机器上面跑的java程序,各占用了多少内存。ps-aux|grepxxxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND可以看到RSS,也就是物理内存占用,
2023-01-31

Linux下如何查看哪些进程占用的CPU内存资源最多

转自:https://www.cnblogs.com/sparkbj/p/6148817.htmllinux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps aux|grep -v PID|so
2023-06-06

查找linux占用内存的前3名进程

来自老男孩教育每日一题:http://lidao.blog.51cto.com/3388056/1914585查找占用内存的前3名进程(命令大风暴,看谁的命令最精简)参考答案:方法一top,输入大写P,结果按CPU占用降序排序;输入大写M,
2023-01-31

Linux下怎么快速查找内存占用过高进程

今天小编给大家分享一下Linux下怎么快速查找内存占用过高进程的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。linux下查询
2023-06-27

linux下如何查询进程

这篇文章主要讲解了“linux下如何查询进程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下如何查询进程”吧!查询进程的命令:1、ps命令,能查看系统中所有运行进程的详细信息,语法
2023-06-30

Linux中怎么查看进程所占内存

这篇文章主要介绍“Linux中怎么查看进程所占内存”,在日常操作中,相信很多人在Linux中怎么查看进程所占内存问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中怎么查看进程所占内存”的疑惑有所帮助!
2023-06-28

linux如何查看内存被谁占用

在Linux系统中,你可以使用以下命令来查看内存被谁占用:1. `top`命令:在终端输入`top`命令,可以实时查看系统中各个进程的资源占用情况,包括内存占用。2. `ps`命令:使用`ps`命令可以列出当前运行的进程列表,通过`ps a
2023-08-30

linux怎么查看各个进程的内存占用情况

在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. `top`命令:在终端中输入`top`命令可以实时查看系统的进程信息,包括内存占用情况。在top界面中,按下`Shift + M`可以按照内存使用量排序进程。2. `p
2023-09-13

linux怎么查看各个进程内存占用情况

在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. top命令:在终端中输入top命令,然后按下shift+m键(大写)来按照内存占用情况对进程进行排序。top命令会实时显示系统的各项性能指标,包括内存使用情况。2. p
2023-10-09

如何查看Linux下CPU、内存和交换分区的占用率

这篇文章主要介绍“如何查看Linux下CPU、内存和交换分区的占用率”,在日常操作中,相信很多人在如何查看Linux下CPU、内存和交换分区的占用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何查看Lin
2023-06-16

linux怎么查看程序占用内存

在Linux系统中,可以使用以下命令来查看程序占用的内存:1. top命令:在终端中输入top命令,然后按下Shift + M键,可以按照内存使用量对进程进行排序,从而查看程序占用的内存情况。2. ps命令:在终端中输入ps命令,结合选项a
2023-09-07

linux如何查看进程占用端口

可以使用以下命令来查看Linux系统中的进程占用端口:1. 使用 `netstat` 命令:```netstat -tuln | grep LISTEN```这会列出所有正在监听的网络连接,其中包括其所占用的端口和对应的进程ID。2. 使用
2023-09-07

编程热搜

目录