新聞中心
隨著計(jì)算機(jī)技術(shù)的發(fā)展,內(nèi)存容量越來(lái)越大,但是在運(yùn)行過(guò)程中,仍然會(huì)出現(xiàn)內(nèi)存不足的情況。其中,高內(nèi)存進(jìn)程占用內(nèi)存較高,是造成內(nèi)存不足的主要原因之一。因此,了解如何查看高內(nèi)存進(jìn)程非常重要。本篇文章將介紹多個(gè)查看高內(nèi)存進(jìn)程的方法,供大家參考。

一、使用top命令
top是一個(gè)Linux系統(tǒng)資源監(jiān)視器,可以在終端中查看系統(tǒng)的實(shí)時(shí)運(yùn)行情況。其中,可以通過(guò)top命令查看系統(tǒng)中最耗費(fèi)內(nèi)存的進(jìn)程。具體操作如下:
1. 打開(kāi)終端,輸入以下命令:
top
2. 在終端中顯示類似下面的信息:
“`
top – 10:16:25 up 43 min, 1 user, load average: 0.41, 0.46, 0.47
Tasks: 183 total, 2 running, 181 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.7 us, 0.7 sy, 0.0 ni, 97.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 16044.2 total, 11352.1 free, 1989.9 used, 1702.1 buff/cache
MiB Swap: 16384.0 total, 16284.0 free, 100.0 used. 13736.8 avl Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
75855 root 20 0 1979864 1.1g 39772 S 0.0 7.3 0:20.77 java
67774 root 20 0 1051520 717392 22872 S 0.0 4.4 0:32.19 docker
75475 tomcat 20 0 19.046g 829700 30380 S 0.0 5.1 0:02.17 java
“`
3. 在Processes中,按下shift+m鍵,會(huì)按照內(nèi)存使用量從高到低排序,可以查看使用內(nèi)存最多的進(jìn)程。其中,RES表示進(jìn)程占用物理內(nèi)存大?。ú话ü蚕韮?nèi)存和虛擬內(nèi)存)。
二、使用ps命令
ps命令是一個(gè)Linux系統(tǒng)中用于查看進(jìn)程信息的命令。可以通過(guò)ps命令查看系統(tǒng)中進(jìn)程的詳細(xì)信息,包括進(jìn)程ID和占用內(nèi)存大小等。具體操作如下:
1. 打開(kāi)終端,輸入以下命令(其中,-e選項(xiàng)表示顯示所有進(jìn)程):
ps -e -o pid,user,%mem,command –sort=-%mem | head
2. 在終端中顯示類似下面的信息:
“`
PID USER %MEM COMMAND
81816 root 9.9 /usr/bin/python3 /usr/bin/gunicorn –config /etc/gunicorn.d/ga –env DJANGO_SETTINGS_MODULE=ga_core.settings ga_core.wsgi:application
17846 mongodb 5.5 /usr/bin/mongod –config /etc/mongodb.conf
18592 redis 3.3 /usr/bin/redis-server *:6379
76947 root 3.3 /usr/bin/java -Xms256m -Xmx3072m -XX:MaxPermSize=128m -Djava.awt.headless=true -cp /usr/share/t-launcher-packaging/bin/t-launch.jar xt.boot.Boot run
81096 root 2.9 /usr/bin/dockerd -H fd:// –contnerd=/run/contnerd/contnerd.sock
17847 mongodb 2.4 /usr/bin/mongod –config /etc/mongodb.conf
35387 root 1.6 /usr/bin/dockerd -H fd:// –contnerd=/run/contnerd/contnerd.sock
16091 root 1.3 /usr/in/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –user=mysql –log-error=/var/log/mysqld.log –pid-file=/run/mysqld/mysqld.pid –socket=/var/lib/mysql/mysql.sock –port=3306
23488 www-data 1.3 php-fpm: pool www
“`
3. 在命令中添加–sort=-%mem選項(xiàng),可以將結(jié)果按照內(nèi)存使用量從高到低排序。其中,%MEM表示進(jìn)程占用物理內(nèi)存大小占總內(nèi)存大小的百分比。
三、使用em命令
em是一個(gè)Linux系統(tǒng)中用于查看進(jìn)程和內(nèi)存使用情況的命令,可以根據(jù)進(jìn)程和用戶等多種方式進(jìn)行分類和過(guò)濾。具體操作如下:
1. 打開(kāi)終端,輸入以下命令(其中,-r選項(xiàng)表示以內(nèi)存使用量為基準(zhǔn)進(jìn)行排序):
em -r
2. 在終端中顯示類似下面的信息:
“`
PID User Command Swap USS PSS RSS
12355 root /usr/bin/mongod –quiet –cfi 0 403.03M 410.61M 523.85M
29859 mysql /usr/in/mysqld –daemonize- 0 237.89M 244.01M 297.78M
14872 root /usr/bin/dockerd –host=fd:// 0 710.93M 781.37M 922.35M
23271 root /in/iptables -w2 -t nat -A 0 6.77M 8.69M 28.09M
25732 root /usr/bin/dockerd –host=unix: 0 34.08M 36.16M 55.73M
12378 mongodb /usr/bin/mongod –quiet –cfi 0 134.24M 189.43M 243.47M
29777 mysql /usr/in/mysqld –daemonize- 0 2.66M 3.08M 31.49M
15257 root /usr/bin/dockerd -H fd:// –v 0 11.86M 13.37M 26.02M
15261 root /usr/lib/snapd/snapd –no-fork 0 13.01M 13.55M 23.11M
26128 syslog /usr/in/rsyslogd -n 0 5.56M 11.02M 22.22M
26403 root /usr/bin/dockerd –host=fd:// 0 7.42M 8.91M 18.81M
29523 root /usr/bin/dockerd –host=unix: 0 6.56M 8.81M 18.37M
11607 root /usr/bin/dockerd -H fd:// –v 0 9.17M 10.04M 16.31M
28414 root /usr/bin/docker-proxy –proto 0 4.08M 4.66M 10.62M
29626 root /usr/bin/dockerd –host=unix: 0 4.05M 4.56M 10.04M
32234 root /usr/in/nginx -g daemon off 0 3.80M 4.84M 9.85M
29700 root /usr/bin/dockerd -H fd:// –v 0 7.51M 8.32M 9.66M
16980 root /usr/lib/snapd/snapd –n 0 6.80M 7.63M 9.62M
29795 root /usr/bin/dockerd –host=unix: 0 5.16M 5.80M 9.20M
“`
3. 在命令中添加–sort=USS選項(xiàng),可以將結(jié)果根據(jù)進(jìn)程實(shí)際使用的內(nèi)存大小從高到低排序。其中,USS表示進(jìn)程占用物理內(nèi)存大?。ú话ü蚕韮?nèi)存和虛擬內(nèi)存)。
四、使用pidstat命令
pidstat是Linux系統(tǒng)中一個(gè)用于查看指定進(jìn)程的CPU、內(nèi)存和IO等性能數(shù)據(jù)的命令。具體操作如下:
1. 打開(kāi)終端,輸入以下命令(其中,-r選項(xiàng)表示查看內(nèi)存使用情況):
pidstat -r [PID]
2. 在終端中顯示類似下面的信息:
“`
Linux 4.4.0-62-generic (xxx) 05/18/2023 _x86_64_ (2 CPU)
05:14:55 PM pid uid tgid total_vm rss softirq majflt minflt pswpin pswpout swapused uname %usr %system %guest %CPU CPU %mem minflt/s majflt/s VSZ RSS LTP
05:14:55 PM 67 1000 67 34070 164 3171 0 50 0 0 0 root 0.15 0.07 0.00 0.22 1 0.00 0.02 0.00 3.74M 172.0K chronyd
05:14:55 PM 88 0 88 12659 166 579 0 8 0 0 0 syslog 0.03 0.02 0.00 0.05 0 0.00 0.00 0.00 1.47M 168.0K rsyslogd
05:14:55 PM 97 0 97 75533 1016 13882 0 163 0 0 0 root 0.49 0.25 0.00 0.74 1 0.05 0.49 0.01 411.82M 1.02M systemd-journal
05:14:55 PM 150 0 150 25291 102 2 0 27 0 0 0 root 0.00 0.01 0.00 0.01 1 0.00 0.00 0.00 8.80M 100.0K systemd-udevd
05:14:55 PM 2977 0 2977 56659 1280 41 6 7 0 0 0 www-data 0.04 0.01 0.00 0.05 1 0.05 0.00 0.00 218.35M 1.24M nginx
“`
3. 修改命令中的[PID]為具體進(jìn)程ID,即可查看指定進(jìn)程的內(nèi)存使用情況。
五、使用pmap命令
pmap命令可以顯示進(jìn)程的內(nèi)存映射信息,包括虛擬地址、權(quán)限、映射文件等。從而可以分析進(jìn)程的內(nèi)存使用情況。具體操作如下:
1. 打開(kāi)終端,輸入以下命令(其中,[PID]表示進(jìn)程ID):
pmap -d [PID]
2. 在終端中顯示類似下面的信息:
“`
Address Kbytes RSS Dirty Mode Mapping
00007f69a5585000 920 520 0 r-xp /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
00007f69a5ec7000 2023 664 208 rw-p /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0
00007f69a6c9f000 24 24 24 rw-p [heap]
00007f69a6ca7000 196 108 108 rw-p [heap]
00007f69a8e0e000 132 80 80 rw-p /usr/lib/x86_64-linux-gnu/libnettle.so.6.4
00007f69a901d000 96 44 44 rw-p /usr/lib/x86_64-linux-gnu/libhogweed.so.4.3
00007f69a91a0000 32 20 20 rw-p /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
…
“`
3. 在命令中查找RSS(即常駐內(nèi)存大?。└蟮哪K,即可得知占用內(nèi)存較多的代碼位置。
六、使用psutil庫(kù)
psutil是一個(gè)跨平臺(tái)的Python第三方庫(kù),可以提供系統(tǒng)信息和進(jìn)程運(yùn)行情況等詳細(xì)信息。可以通過(guò)psutil庫(kù)查看內(nèi)存使用量較高的進(jìn)程。具體操作如下:
1. 安裝psutil庫(kù)(可以通過(guò)pip命令進(jìn)行安裝):
pip install psutil
2. 在Python腳本中,輸入以下代碼:
“`
import psutil
for process in psutil.process_iter(attrs=[‘pid’, ‘name’, ‘memory_info’]):
rss = process.info[‘memory_info’].rss / 1024 / 1024 # 獲取進(jìn)程常駐內(nèi)存大?。∕B)
if rss > 100: # 顯示常駐內(nèi)存大小大于100MB的進(jìn)程
print(‘PID: {}, Name: {}, Mem: {:.2f} MB’.format(process.info[‘pid’], process.info[‘name’], rss))
“`
3. 運(yùn)行Python腳本,即可查看常駐內(nèi)存超過(guò)100MB的進(jìn)程信息。
綜上所述,Linux查看高內(nèi)存進(jìn)程有多種方法,每種方法都有其特點(diǎn)和優(yōu)缺點(diǎn)。可以根據(jù)具體情況選擇合適的方法。同時(shí),為了避免出現(xiàn)內(nèi)存不足的情況,建議優(yōu)化程序,減少不必要的內(nèi)存占用。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
linux 查看內(nèi)存被哪些進(jìn)程
查看占用內(nèi)存更高的進(jìn)程
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
或者top (然后按下P,注意這里是大寫)
該命令組合實(shí)際上是下面兩句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
其中之一句主要是為了獲取標(biāo)題(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。
接下來(lái)的grep -v PID是將ps aux命令得到的標(biāo)題去掉,即grep不包含PID這三個(gè)字母組合的行,再將其中結(jié)果使用sort排序。
sort -rn -k +3該命令中的-rn的r表示是結(jié)果倒序排列,n為以數(shù)值大小排序,而-k +3則是針對(duì)第3列的內(nèi)容進(jìn)行排序,再使用head命令獲取默認(rèn)前10行數(shù)據(jù)。(其中的|表示管道操作)
補(bǔ)充:內(nèi)容解釋
PID:進(jìn)程的ID
USER:進(jìn)程所戚態(tài)有者
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)存的百分比
COMMAND:進(jìn)程啟動(dòng)命令名稱
Linux下如何查看哪些進(jìn)程占用的CPU內(nèi)存資源最多
linux下獲取占用CPU資世肆源最多的10個(gè)進(jìn)程,可以使用如下命令組合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
linux下獲取占用內(nèi)存資源最多的10個(gè)進(jìn)族褲程,可以使用如下命令組合:
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
命令組合解析(針對(duì)CPU的兆返簡(jiǎn),MEN也同樣道理):
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
該命令組合實(shí)際上是下面兩句命令:
ps aux|head -1
ps aux|grep -v PID|sort -rn -k +3|head
linux查看內(nèi)存高進(jìn)程的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux查看內(nèi)存高進(jìn)程,Linux查看高內(nèi)存進(jìn)程方法大全,linux 查看內(nèi)存被哪些進(jìn)程,Linux下如何查看哪些進(jìn)程占用的CPU內(nèi)存資源最多的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),香港虛擬主機(jī)被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡(jiǎn)稱香港主機(jī)/香港空間。香港虛擬主機(jī)特點(diǎn)是免備案空間開(kāi)通就用, 創(chuàng)新互聯(lián)香港主機(jī)精選cn2+bgp線路訪問(wèn)快、穩(wěn)定!
標(biāo)題名稱:Linux查看高內(nèi)存進(jìn)程方法大全(linux查看內(nèi)存高進(jìn)程)
鏈接URL:http://m.fisionsoft.com.cn/article/cogoisd.html


咨詢
建站咨詢
