日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下找出吃内存的方法总结

發(fā)布時(shí)間:2025/3/20 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下找出吃内存的方法总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux下查詢進(jìn)程占用的內(nèi)存方法總結(jié),假設(shè)現(xiàn)在有一個(gè)「php-cgi」的進(jìn)程 ,進(jìn)程id為「25282」。現(xiàn)在想要查詢該進(jìn)程占用的內(nèi)存大小。linux命令行下有很多的工具進(jìn)行查看,現(xiàn)總結(jié)常見的幾種方式。

通過進(jìn)程的 status

[root@web3_u?~]#?cat?/proc/25282/status

?

Name:?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)存

通過 pmap

[root@web3_u?~]#?pmap?-x?25282

?

25282:?/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

通過 smaps

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

求和得到實(shí)際占用物理內(nèi)存為 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 進(jìn)程號,得到第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

?

輸出列信息

  • PID 25282

  • 用戶 nobody

  • 虛擬內(nèi)存 428M

  • 物理內(nèi)存 110M 110*1024= 112640 「和前面計(jì)算出來的值基本一致」

  • 共享內(nèi)存 93M

  • 進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比 1.9 %

  • PID:進(jìn)程的ID USER:進(jìn)程所有者 PR:進(jìn)程的優(yōu)先級別,越小越優(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)命令名稱

    按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 #?Memory used_memory_human:8.32G

    ?

    基本相同。

    [root@img1_u?~]#?top?-u?www top?-?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?cachedPID?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 指定用戶。?php-cgi占用的內(nèi)存在60M左右

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

    通過 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?-k5nr 23946?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ù)解析:

  • -e 顯示所有進(jìn)程

  • -o 定制顯示信息

  • pid 進(jìn)程ID

  • comm 進(jìn)程名

  • args 啟動(dòng)命令

  • pcpu 占用CPU 百分比

  • rsz 占用物理內(nèi)存大小

  • vsz 占用虛擬內(nèi)存大小

  • stime 進(jìn)程啟動(dòng)時(shí)間

  • user 啟動(dòng)用戶

  • 以第一行為例

    進(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)用戶?nobody

    ?

    通過 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ù)介紹

  • PID:進(jìn)程的ID

  • USER:進(jìn)程所有者

  • 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í)間的累加值。

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

    總結(jié)

    以上是生活随笔為你收集整理的Linux下找出吃内存的方法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。