溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux下怎么快速查找內(nèi)存占用過(guò)高進(jìn)程

發(fā)布時(shí)間:2022-02-11 09:57:21 來(lái)源:億速云 閱讀:159 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下Linux下怎么快速查找內(nèi)存占用過(guò)高進(jìn)程的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

linux下查詢(xún)進(jìn)程占用的內(nèi)存方法總結(jié),假設(shè)現(xiàn)在有一個(gè)「php-cgi」的進(jìn)程 ,進(jìn)程id為「25282」?,F(xiàn)在想要查詢(xún)?cè)撨M(jìn)程占用的內(nèi)存大小。

Linux下怎么快速查找內(nèi)存占用過(guò)高進(jìn)程

通過(guò)進(jìn)程的 status

[root@web3_u ~]# cat /proc/25282/statusName: php-cgi
State: S (sleeping)
Tgid: 25282
Pid: 25282
PPid: 27187
TracerPid: 0
Uid: 99 99 99 99
Gid: 99 99 99 99
Utrace: 0
FDSize: 256
Groups: 99
VmPeak: 496388 kB
VmSize: 438284 kB
VmLck: 0 kB
VmHWM: 125468 kB
VmRSS: 113612 kB
VmData: 92588 kB
VmStk: 100 kB
VmExe: 6736 kB
VmLib: 18760 kB
VmPTE: 528 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/46155
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 0000000184000004
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: f
Cpus_allowed_list: 0-3
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 68245
nonvoluntary_ctxt_switches: 15751

VmRSS: 113612 kB 表示占用的物理內(nèi)存

通過(guò) pmap

[root@web3_u ~]# pmap -x 2528225282: /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 6736 2692 0 r-x-- php-cgi
0000000000c93000 264 196 120 rw--- php-cgi
0000000000cd5000 60 48 48 rw--- [ anon ]
. . .
00007fd6226bc000 4 4 4 rw--- ld-2.12.so
00007fd6226bd000 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

關(guān)鍵信息點(diǎn)

1、進(jìn)程ID

2、啟動(dòng)命令「/usr/local/php/bin/php-cgi –fpm –fpm-config /usr/local/php/etc/php-fpm.conf」

3、RSS :占用的物理內(nèi)存 113612KB

通過(guò) smaps

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

求和得到實(shí)際占用物理內(nèi)存為 113612

通過(guò) 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 過(guò)濾 25282 進(jìn)程號(hào),得到第5列「rsz」的內(nèi)存大小為「113612」

輸出php-cgi進(jìn)程占用的物理內(nèi)存,并從高到低進(jìn)行排序

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

輸出結(jié)果

23946 php-cgi /usr/local/php/bin/php-cgi 0.0 129540 440000 Oct06 nobody 99
24418 php-cgi /usr/local/php/bin/php-cgi 0.0 129336 437684 Oct06 nobody 99
18973 php-cgi /usr/local/php/bin/php-cgi 0.0 129268 440176 Oct06 nobody 99
17219 php-cgi /usr/local/php/bin/php-cgi 0.0 126588 439840 Oct06 nobody 99
6996 php-cgi /usr/local/php/bin/php-cgi 0.0 124876 438104 Oct09 nobody 99
23850 php-cgi /usr/local/php/bin/php-cgi 0.0 122984 440036 Oct09 nobody 99
28310 php-cgi /usr/local/php/bin/php-cgi 0.0 122920 436456 Oct09 nobody 99

其中rsz為實(shí)際內(nèi)存,上例實(shí)現(xiàn)按內(nèi)存排序,由大到小

TOP 命令輸出的列

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

輸出列信息

  1. PID 25282
  2. 用戶(hù) nobody
  3. 虛擬內(nèi)存 428M
  4. 物理內(nèi)存 110M 110*1024= 112640 「和前面計(jì)算出來(lái)的值基本一致」
  5. 共享內(nèi)存 93M
  6. 進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比 1.9 %
PID:進(jìn)程的ID
USER:進(jìn)程所有者
PR:進(jìn)程的優(yōu)先級(jí)別,越小越優(yōu)先被執(zhí)行
NInice:值
VIRT:進(jìn)程占用的虛擬內(nèi)存
RES:進(jìn)程占用的物理內(nèi)存
SHR:進(jìn)程使用的共享內(nèi)存
S:進(jìn)程的狀態(tài)。S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值為負(fù)數(shù)
%CPU:進(jìn)程占用CPU的使用率
%MEM:進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比
TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間,即占用CPU使用時(shí)間的累加值。
COMMAND:進(jìn)程啟動(dòng)命令名稱(chēng)

按P

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
16036 root 20 0 8902m 8.6g 480 R 100.0 36.6 0:33.15 redis-server
12934 root 20 0 8902m 8.6g 1072 S 5.5 36.6 285:37.81 redis-server
969 root 20 0 0 0 0 D 4.2 0.0 277:14.85 flush-252:16
1304 root 23 3 1689m 50m 3264 S 4.2 0.2 1445:03 xs-searchd
1294 root 20 0 14928 928 584 S 3.5 0.0 635:05.31 xs-indexd
1287 nobody 20 0 12884 772 576 S 2.8 0.0 833:11.42 dnsmasq
1302 root 23 3 1113m 39m 3244 S 0.7 0.2 1437:57 xs-searchd
4444 www 20 0 280m 43m 884 S 0.7 0.2 27:43.92 nginx
1 root 20 0 19232 1160 868 S 0.0 0.0 0:06.75 init

按 P .表示按cpu排序,默認(rèn)也是按cpu排序

按M

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

按M 。 表示按占用內(nèi)存排序。 第一列 redis服務(wù)器占用了8.6G的內(nèi)存 。 這個(gè)內(nèi)存和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.98
Tasks: 283 total, 2 running, 281 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.9%us, 1.0%sy, 0.5%ni, 89.7%id, 4.6%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 24542176k total, 21130060k used, 3412116k free, 1750652k buffers
Swap: 524280k total, 0k used, 524280k free, 4039732k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
681 www 20 0 855m 25m 5796 S 0.0 0.1 0:47.00 php-cgi
1181 www 20 0 887m 57m 6484 S 0.0 0.2 4:41.66 php-cgi
1183 www 20 0 864m 34m 6320 S 0.0 0.1 3:52.39 php-cgi
1184 www 20 0 1043m 119m 6584 S 0.0 0.5 4:21.85 php-cgi
1185 www 20 0 869m 39m 6376 S 0.0 0.2 3:57.84 php-cgi
1186 www 20 0 886m 56m 6244 S 0.0 0.2 3:44.75 php-cgi
1187 www 20 0 926m 66m 6480 S 0.0 0.3 4:16.12 php-cgi
1188 www 20 0 890m 60m 6288 S 0.0 0.3 4:13.35 php-cgi
1189 www 20 0 892m 62m 6408 S 0.0 0.3 4:06.60 php-cgi

-u 指定用戶(hù)。 php-cgi占用的內(nèi)存在60M左右

按進(jìn)程消耗內(nèi)存多少排序的方法

通過(guò) 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

輸出結(jié)果

[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 nobody
24418 php-cgi /usr/local/php/bin/php-cgi 0.0 129336 437684 Oct06 nobody
18973 php-cgi /usr/local/php/bin/php-cgi 0.0 129268 440176 Oct06 nobody
17219 php-cgi /usr/local/php/bin/php-cgi 0.0 126588 439840 Oct06 nobody
6996 php-cgi /usr/local/php/bin/php-cgi 0.0 125056 438104 Oct09 nobody
23850 php-cgi /usr/local/php/bin/php-cgi 0.0 122984 440036 Oct09 nobody

參數(shù)解析:

  1. -e 顯示所有進(jìn)程
  2. -o 定制顯示信息
  3. pid 進(jìn)程ID
  4. comm 進(jìn)程名
  5. args 啟動(dòng)命令
  6. pcpu 占用CPU 百分比
  7. rsz 占用物理內(nèi)存大小
  8. vsz 占用虛擬內(nèi)存大小
  9. stime 進(jìn)程啟動(dòng)時(shí)間
  10. user 啟動(dòng)用戶(hù)

以第一行為例

進(jìn)程ID 23946
進(jìn)程名 php-cgi
啟動(dòng)命令 /usr/local/php/bin/php-cgi
占用CPU 0
占用物理內(nèi)存 129540
占用虛擬內(nèi)存 440000
啟動(dòng)時(shí)間 Oct06
啟動(dòng)用戶(hù) nobody
通過(guò) top 命令

top命令默認(rèn)是以CPU排序輸出的,按字母「M」,可以按內(nèi)存占用大小進(jìn)行排序顯示

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23946 nobody 20 0 429m 126m 107m S 0.0 2.2 1:15.01 php-cgi
24418 nobody 20 0 427m 126m 109m S 0.0 2.2 1:19.56 php-cgi
18973 nobody 20 0 429m 126m 107m S 0.0 2.2 1:20.18 php-cgi
17219 nobody 20 0 429m 123m 104m S 0.0 2.1 1:23.60 php-cgi
6996 nobody 20 0 427m 122m 105m S 0.0 2.1 1:05.27 php-cgi
23850 nobody 20 0 429m 120m 101m S 0.0 2.1 1:02.43 php-cgi

輸出參數(shù)介紹

  1. PID:進(jìn)程的ID
  2. USER:進(jìn)程所有者
  3. VIRT:進(jìn)程占用的虛擬內(nèi)存
  4. RES:進(jìn)程占用的物理內(nèi)存
  5. SHR:進(jìn)程使用的共享內(nèi)存
  6. S:進(jìn)程的狀態(tài)。S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值為負(fù)數(shù)
  7. %CPU:進(jìn)程占用CPU的使用率
  8. %MEM:進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比
  9. TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間,即占用CPU使用時(shí)間的累加值。

通過(guò)比較進(jìn)程ID 「23946」,top 命令和 ps 命令輸出的結(jié)果基本保持一致

以上就是“Linux下怎么快速查找內(nèi)存占用過(guò)高進(jìn)程”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI