自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

查看Linux系統(tǒng)中進(jìn)程和用戶的內(nèi)存使用情況

系統(tǒng) Linux
有一些命令可以用來(lái)檢查 Linux 系統(tǒng)中的內(nèi)存使用情況,下面是一些更好的命令。

[[313869]]

有一些命令可以用來(lái)檢查 Linux 系統(tǒng)中的內(nèi)存使用情況,下面是一些更好的命令。

有許多工具可以查看 Linux 系統(tǒng)中的內(nèi)存使用情況。一些命令被廣泛使用,比如 free、ps。而另一些命令允許通過(guò)多種方式展示系統(tǒng)的性能統(tǒng)計(jì)信息,比如 top。在這篇文章中,我們將介紹一些命令以幫助你確定當(dāng)前占用著最多內(nèi)存資源的用戶或者進(jìn)程。

下面是一些按照進(jìn)程查看內(nèi)存使用情況的命令:

按照進(jìn)程查看內(nèi)存使用情況

使用 top

top 是最好的查看內(nèi)存使用情況的命令之一。為了查看哪個(gè)進(jìn)程使用著最多的內(nèi)存,一個(gè)簡(jiǎn)單的辦法就是啟動(dòng) top,然后按下 shift+m,這樣便可以查看按照內(nèi)存占用百分比從高到底排列的進(jìn)程。當(dāng)你按下了 shift+m ,你的 top 應(yīng)該會(huì)得到類似于下面這樣的輸出結(jié)果:

  1. $top
  2. top - 09:39:34 up 5 days, 3 min, 3 users, load average: 4.77, 4.43, 3.72
  3. Tasks: 251 total, 3 running, 247 sleeping, 1 stopped, 0 zombie
  4. %Cpu(s): 50.6 us, 35.9 sy, 0.0 ni, 13.4 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
  5. MiB Mem : 5944.4 total, 128.9 free, 2509.3 used, 3306.2 buff/cache
  6. MiB Swap: 2048.0 total, 2045.7 free, 2.2 used. 3053.5 avail Mem
  7.  
  8. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  9. 400 nemo 20 0 3309580 550188 168372 S 0.3 9.0 1:33.27 Web Content
  10. 32469 nemo 20 0 3492840 447372 163296 S 7.3 7.3 3:55.60 firefox
  11. 32542 nemo 20 0 2845732 433388 140984 S 6.0 7.1 4:11.16 Web Content
  12. 342 nemo 20 0 2848520 352288 118972 S 10.3 5.8 4:04.89 Web Content
  13. 2389 nemo 20 0 1774412 236700 90044 S 39.7 3.9 9:32.64 vlc
  14. 29527 nemo 20 0 2735792 225980 84744 S 9.6 3.7 3:02.35 gnome-shell
  15. 30497 nemo 30 10 1088476 159636 88884 S 0.0 2.6 0:11.99 update-manager
  16. 30058 nemo 20 0 1089464 140952 33128 S 0.0 2.3 0:04.58 gnome-software
  17. 32533 nemo 20 0 2389088 104712 79544 S 0.0 1.7 0:01.43 WebExtensions
  18. 2256 nemo 20 0 1217884 103424 31304 T 0.0 1.7 0:00.28 vlc
  19. 1713 nemo 20 0 2374396 79588 61452 S 0.0 1.3 0:00.49 Web Content
  20. 29306 nemo 20 0 389668 74376 54340 S 2.3 1.2 0:57.25 Xorg
  21. 32739 nemo 20 0 289528 58900 34480 S 1.0 1.0 1:04.08 RDD Process
  22. 29732 nemo 20 0 789196 57724 42428 S 0.0 0.9 0:00.38 evolution-alarm
  23. 2373 root 20 0 150408 57000 9924 S 0.3 0.9 10:15.35 nessusd

注意 %MEM 排序。列表的大小取決于你的窗口大小,但是占據(jù)著最多的內(nèi)存的進(jìn)程將會(huì)顯示在列表的頂端。

使用 ps

ps 命令中的一列用來(lái)展示每個(gè)進(jìn)程的內(nèi)存使用情況。為了展示和查看哪個(gè)進(jìn)程使用著最多的內(nèi)存,你可以將 ps 命令的結(jié)果傳遞給 sort 命令。下面是一個(gè)有用的示例:

  1. $ ps aux | sort -rnk 4 | head -5
  2. nemo 400 3.4 9.2 3309580 563336 ? Sl 08:59 1:36 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  3. nemo 32469 8.2 7.7 3492840 469516 ? Sl 08:54 4:15 /usr/lib/firefox/firefox -new-window
  4. nemo 32542 8.9 7.6 2875428 462720 ? Sl 08:55 4:36 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  5. nemo 342 9.9 5.9 2854664 363528 ? Sl 08:59 4:44 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  6. nemo 2389 39.5 3.8 1774412 236116 pts/1 Sl+ 09:15 12:21 vlc videos/edge_computing.mp4

在上面的例子中(文中已截?cái)啵?code>sort 命令使用了 -r 選項(xiàng)(反轉(zhuǎn))、-n 選項(xiàng)(數(shù)字值)、-k 選項(xiàng)(關(guān)鍵字),使 sort 命令對(duì) ps 命令的結(jié)果按照第四列(內(nèi)存使用情況)中的數(shù)字逆序進(jìn)行排列并輸出。如果我們首先顯示 ps 命令的標(biāo)題,那么將會(huì)便于查看。

  1. $ ps aux | head -1; ps aux | sort -rnk 4 | head -5
  2. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  3. nemo 400 3.4 9.2 3309580 563336 ? Sl 08:59 1:36 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  4. nemo 32469 8.2 7.7 3492840 469516 ? Sl 08:54 4:15 /usr/lib/firefox/firefox -new-window
  5. nemo 32542 8.9 7.6 2875428 462720 ? Sl 08:55 4:36 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  6. nemo 342 9.9 5.9 2854664 363528 ? Sl 08:59 4:44 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  7. nemo 2389 39.5 3.8 1774412 236116 pts/1 Sl+ 09:15 12:21 vlc videos/edge_computing.mp4

如果你喜歡這個(gè)命令,你可以用下面的命令為他指定一個(gè)別名,如果你想一直使用它,不要忘記把該命令添加到你的 ~/.bashrc 文件中。

  1. $ alias mem-by-proc="ps aux | head -1; ps aux | sort -rnk 4"

下面是一些根據(jù)用戶查看內(nèi)存使用情況的命令:

按用戶查看內(nèi)存使用情況

使用 top

按照用戶檢查內(nèi)存使用情況會(huì)更復(fù)雜一些,因?yàn)槟阈枰业揭环N方法把用戶所擁有的所有進(jìn)程統(tǒng)計(jì)為單一的內(nèi)存使用量。

如果你只想查看單個(gè)用戶進(jìn)程使用情況,top 命令可以采用與上文中同樣的方法進(jìn)行使用。只需要添加 -U 選項(xiàng)并在其后面指定你要查看的用戶名,然后按下 shift+m 便可以按照內(nèi)存使用有多到少進(jìn)行查看。

  1. $ top -U nemo
  2. top - 10:16:33 up 5 days, 40 min, 3 users, load average: 1.91, 1.82, 2.15
  3. Tasks: 253 total, 2 running, 250 sleeping, 1 stopped, 0 zombie
  4. %Cpu(s): 28.5 us, 36.8 sy, 0.0 ni, 34.4 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
  5. MiB Mem : 5944.4 total, 224.1 free, 2752.9 used, 2967.4 buff/cache
  6. MiB Swap: 2048.0 total, 2042.7 free, 5.2 used. 2812.0 avail Mem
  7.  
  8. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  9. 400 nemo 20 0 3315724 623748 165440 S 1.0 10.2 1:48.78 Web Content
  10. 32469 nemo 20 0 3629380 607492 161688 S 2.3 10.0 6:06.89 firefox
  11. 32542 nemo 20 0 2886700 404980 136648 S 5.6 6.7 6:50.01 Web Content
  12. 342 nemo 20 0 2922248 375784 116096 S 19.5 6.2 8:16.07 Web Content
  13. 2389 nemo 20 0 1762960 234644 87452 S 0.0 3.9 13:57.53 vlc
  14. 29527 nemo 20 0 2736924 227260 86092 S 0.0 3.7 4:09.11 gnome-shell
  15. 30497 nemo 30 10 1088476 156372 85620 S 0.0 2.6 0:11.99 update-manager
  16. 30058 nemo 20 0 1089464 138160 30336 S 0.0 2.3 0:04.62 gnome-software
  17. 32533 nemo 20 0 2389088 102532 76808 S 0.0 1.7 0:01.79 WebExtensions

使用 ps

你依舊可以使用 ps 命令通過(guò)內(nèi)存使用情況來(lái)排列某個(gè)用戶的進(jìn)程。在這個(gè)例子中,我們將使用 grep 命令來(lái)篩選得到某個(gè)用戶的所有進(jìn)程。

  1. $ ps aux | head -1; ps aux | grep ^nemo| sort -rnk 4 | more
  2. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  3. nemo 32469 7.1 11.5 3724364 701388 ? Sl 08:54 7:21 /usr/lib/firefox/firefox -new-window
  4. nemo 400 2.0 8.9 3308556 543232 ? Sl 08:59 2:01 /usr/lib/firefox/firefox -contentproc -childID 6 -isForBrowser -prefsLen 9086 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni/usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  5. nemo 32542 7.9 7.1 2903084 436196 ? Sl 08:55 8:07 /usr/lib/firefox/firefox -contentproc -childID 2 -isForBrowser -prefsLen 1 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  6. nemo 342 10.8 7.0 2941056 426484 ? Rl 08:59 10:45 /usr/lib/firefox/firefox -contentproc -childID 5 -isForBrowser -prefsLen 8763 -prefMapSize 210653 -parentBuildID 20200107212822 -greomni /usr/lib/firefox/omni.ja -appomni /usr/lib/firefox/browser/omni.ja -appdir /usr/lib/firefox/browser 32469 true tab
  7. nemo 2389 16.9 3.8 1762960 234644 pts/1 Sl+ 09:15 13:57 vlc videos/edge_computing.mp4
  8. nemo 29527 3.9 3.7 2736924 227448 ? Ssl 08:50 4:11 /usr/bin/gnome-shell

使用 ps 和其他命令的搭配

如果你想比較某個(gè)用戶與其他用戶內(nèi)存使用情況將會(huì)比較復(fù)雜。在這種情況中,創(chuàng)建并排序一個(gè)按照用戶總的內(nèi)存使用量是一個(gè)不錯(cuò)的方法,但是它需要做一些更多的工作,并涉及到許多命令。在下面的腳本中,我們使用 ps aux | grep -v COMMAND | awk '{print $1}' | sort -u 命令得到了用戶列表。其中包含了系統(tǒng)用戶比如 syslog。我們對(duì)每個(gè)任務(wù)使用 awk 命令以收集每個(gè)用戶總的內(nèi)存使用情況。在最后一步中,我們展示每個(gè)用戶總的內(nèi)存使用量(按照從大到小的順序)。

  1. #!/bin/bash
  2.  
  3. stats=””
  4. echo "% user"
  5. echo "============"
  6.  
  7. # collect the data
  8. for user in `ps aux | grep -v COMMAND | awk '{print $1}' | sort -u`
  9. do
  10. stats="$stats\n`ps aux | egrep ^$user | awk 'BEGIN{total=0}; \
  11. {total += $4};END{print total,$1}'`"
  12. done
  13.  
  14. # sort data numerically (largest first)
  15. echo -e $stats | grep -v ^$ | sort -rn | head

這個(gè)腳本的輸出可能如下:

  1. $ ./show_user_mem_usage
  2. % user
  3. ============
  4. 69.6 nemo
  5. 5.8 root
  6. 0.5 www-data
  7. 0.3 shs
  8. 0.2 whoopsie
  9. 0.2 systemd+
  10. 0.2 colord
  11. 0.2 clamav
  12. 0 syslog
  13. 0 rtkit

在 Linux 有許多方法可以報(bào)告內(nèi)存使用情況??梢酝ㄟ^(guò)一些用心設(shè)計(jì)的工具和命令,來(lái)查看并獲得某個(gè)進(jìn)程或者用戶占用著最多的內(nèi)存。 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2017-01-18 21:57:14

2010-02-03 17:16:58

Linux內(nèi)存使用

2022-09-26 09:44:10

Linux

2010-06-02 11:06:15

Linux 內(nèi)存監(jiān)控

2011-09-02 10:42:30

linuxfree內(nèi)存

2010-09-26 12:45:29

2023-08-21 14:18:48

操作系統(tǒng)Linux

2009-06-16 09:18:26

Linux系統(tǒng)管理系統(tǒng)資源

2022-07-13 14:26:26

Linux

2009-12-14 17:25:20

Linux操作系統(tǒng)

2020-02-10 19:50:08

Linux內(nèi)存使用命令

2019-06-24 08:53:01

Bash腳本Linux系統(tǒng)運(yùn)維

2009-10-21 12:42:20

Linux系統(tǒng)資源操作系統(tǒng)

2018-09-14 16:38:43

FilelightLinux磁盤

2010-06-02 12:47:12

Linux 內(nèi)存監(jiān)控

2010-04-16 10:00:06

Oracle查看表空間

2009-06-30 14:11:00

Hibernate緩存

2020-06-17 14:10:01

Python內(nèi)存程序

2022-04-07 06:04:00

NetHogs開源網(wǎng)絡(luò)工具

2010-10-14 16:10:28

MySQL排序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)