成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Linux系統中判斷安裝、使用了多少內存

系統 Linux
有幾個命令可以報告在 Linux 系統上安裝和使用了多少內存。根據你使用的命令,你可能會被細節淹沒,也可能獲得快速簡單的答案。

 [[258223]]

在 Linux 系統中有很多種方法獲取有關安裝了多少內存的信息及查看多少內存正在被使用。有些命令提供了大量的細節,而其他命令提供了簡潔但不一定易于理解的答案。在這篇文章中,我們將介紹一些查看內存及其使用狀態的有用的工具。

在我們開始之前,讓我們先來回顧一些基礎知識。物理內存和虛擬內存并不是一回事。后者包括配置為交換空間的磁盤空間。交換空間可能包括為此目的特意留出來的分區,以及在創建新的交換分區不可行時創建的用來增加可用交換空間的文件。有些 Linux 命令會提供關于兩者的信息。

當物理內存占滿時,交換空間通過提供可以用來存放內存中非活動頁的磁盤空間來擴展內存。

/proc/kcore 是在內存管理中起作用的一個文件。這個文件看上去是個普通文件(雖然非常大),但它并不占用任何空間。它就像其他 /proc 下的文件一樣是個虛擬文件。

  1. $ ls -l /proc/kcore
  2. -r--------. 1 root root 140737477881856 Jan 28 12:59 /proc/kcore

有趣的是,下面查詢的兩個系統并沒有安裝相同大小的內存,但 /proc/kcore 的大小卻是相同的。個系統安裝了 4 GB 的內存,而第二個系統安裝了 6 GB。

  1. system1$ ls -l /proc/kcore
  2. -r--------. 1 root root 140737477881856 Jan 28 12:59 /proc/kcore
  3. system2$ ls -l /proc/kcore
  4. -r-------- 1 root root 140737477881856 Feb 5 13:00 /proc/kcore

一種不靠譜的解釋說這個文件代表可用虛擬內存的大小(沒準要加 4 KB),如果這樣,這些系統的虛擬內存可就是 128TB 了!這個數字似乎代表了 64 位系統可以尋址多少內存,而不是當前系統有多少可用內存。在命令行中計算 128 TB 和這個文件大小加上 4 KB 很容易。

  1. $ expr 1024 \* 1024 \* 1024 \* 1024 \* 128
  2. 140737488355328
  3. $ expr 1024 \* 1024 \* 1024 \* 1024 \* 128 + 4096
  4. 140737488359424

另一個用來檢查內存的更人性化的命令是 free。它會給出一個易于理解的內存報告。

  1. $ free
  2. total used free shared buff/cache available
  3. Mem: 6102476 812244 4090752 13112 1199480 4984140
  4. Swap: 2097148 0 2097148

使用 -g 選項,free 會以 GB 為單位返回結果。

  1. $ free -g
  2. total used free shared buff/cache available
  3. Mem: 5 0 3 0 1 4
  4. Swap: 1 0 1

使用 -t 選項,free 會顯示與無附加選項時相同的值(不要把 -t 選項理解成 TB),并額外在輸出的底部添加一行總計數據。

  1. $ free -t
  2. total used free shared buff/cache available
  3. Mem: 6102476 812408 4090612 13112 1199456 4983984
  4. Swap: 2097148 0 2097148
  5. Total: 8199624 812408 6187760

當然,你也可以選擇同時使用兩個選項。

  1. $ free -tg
  2. total used free shared buff/cache available
  3. Mem: 5 0 3 0 1 4
  4. Swap: 1 0 1
  5. Total: 7 0 5

如果你嘗試用這個報告來解釋“這個系統安裝了多少內存?”,你可能會感到失望。上面的報告就是在前文說的裝有 6 GB 內存的系統上運行的結果。這并不是說這個結果是錯的,這就是系統對其可使用的內存的看法。

free 命令也提供了每隔 X 秒刷新顯示的選項(下方示例中 X 為 10)。

  1. $ free -s 10
  2. total used free shared buff/cache available
  3. Mem: 6102476 812280 4090704 13112 1199492 4984108
  4. Swap: 2097148 0 2097148
  5.  
  6. total used free shared buff/cache available
  7. Mem: 6102476 812260 4090712 13112 1199504 4984120
  8. Swap: 2097148 0 2097148

使用 -l 選項,free 命令會提供高低內存使用信息。

  1. $ free -l
  2. total used free shared buff/cache available
  3. Mem: 6102476 812376 4090588 13112 1199512 4984000
  4. Low: 6102476 2011888 4090588
  5. High: 0 0 0
  6. Swap: 2097148 0 2097148

查看內存的另一個選擇是 /proc/meminfo 文件。像 /proc/kcore 一樣,這也是一個虛擬文件,它可以提供關于安裝或使用了多少內存以及可用內存的報告。顯然,空閑內存和可用內存并不是同一回事。MemFree 看起來代表未使用的 RAM。MemAvailable 則是對于啟動新程序時可使用的內存的一個估計。

  1. $ head -3 /proc/meminfo
  2. MemTotal: 6102476 kB
  3. MemFree: 4090596 kB
  4. MemAvailable: 4984040 kB

如果只想查看內存總計,可以使用下面的命令之一:

  1. $ awk '/MemTotal/ {print $2}' /proc/meminfo
  2. 6102476
  3. $ grep MemTotal /proc/meminfo
  4. MemTotal: 6102476 kB

DirectMap 將內存信息分為幾類。

  1. $ grep DirectMap /proc/meminfo
  2. DirectMap4k: 213568 kB
  3. DirectMap2M: 6076416 kB

DirectMap4k 代表被映射成標準 4 k 頁的內存大小,DirectMap2M 則顯示了被映射為 2 MB 的頁的內存大小。

getconf 命令將會提供比我們大多數人想要看到的更多的信息。

  1. $ getconf -a | more
  2. LINK_MAX 65000
  3. _POSIX_LINK_MAX 65000
  4. MAX_CANON 255
  5. _POSIX_MAX_CANON 255
  6. MAX_INPUT 255
  7. _POSIX_MAX_INPUT 255
  8. NAME_MAX 255
  9. _POSIX_NAME_MAX 255
  10. PATH_MAX 4096
  11. _POSIX_PATH_MAX 4096
  12. PIPE_BUF 4096
  13. _POSIX_PIPE_BUF 4096
  14. SOCK_MAXBUF
  15. _POSIX_ASYNC_IO
  16. _POSIX_CHOWN_RESTRICTED 1
  17. _POSIX_NO_TRUNC 1
  18. _POSIX_PRIO_IO
  19. _POSIX_SYNC_IO
  20. _POSIX_VDISABLE 0
  21. ARG_MAX 2097152
  22. ATEXIT_MAX 2147483647
  23. CHAR_BIT 8
  24. CHAR_MAX 127
  25. --More--

使用類似下面的命令來將其輸出精簡為指定的內容,你會得到跟前文提到的其他命令相同的結果。

  1. $ getconf -a | grep PAGES | awk 'BEGIN {total = 1} {if (NR == 1 || NR == 3) total *=$NF} END {print total / 1024" kB"}'
  2. 6102476 kB

上面的命令通過將下方輸出的行和結尾一行的值相乘來計算內存。

  1. PAGESIZE 4096 <==
  2. _AVPHYS_PAGES 1022511
  3. _PHYS_PAGES 1525619 <==

自己動手計算一下,我們就知道這個值是怎么來的了。

  1. $ expr 4096 \* 1525619 / 1024
  2. 6102476

顯然值得為以上的指令之一設置個 alias

另一個具有非常易于理解的輸出的命令是 top 。在 top 輸出的前五行,你可以看到一些數字顯示多少內存正被使用。

  1. $ top
  2. top - 15:36:38 up 8 days, 2:37, 2 users, load average: 0.00, 0.00, 0.00
  3. Tasks: 266 total, 1 running, 265 sleeping, 0 stopped, 0 zombie
  4. %Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  5. MiB Mem : 3244.8 total, 377.9 free, 1826.2 used, 1040.7 buff/cache
  6. MiB Swap: 3536.0 total, 3535.7 free, 0.3 used. 1126.1 avail Mem

結尾一個命令將會以一個非常簡潔的方式回答“系統安裝了多少內存?”:

  1. $ sudo dmidecode -t 17 | grep "Size.*MB" | awk '{s+=$2} END {print s / 1024 "GB"}'
  2. 6GB

取決于你想要獲取多少細節,Linux 系統提供了許多用來查看系統安裝內存以及使用/空閑內存的選擇。

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-02-25 08:00:00

Linux內存

2023-03-14 16:44:20

Linuxhtop

2024-07-08 10:56:34

Rust進程內存

2013-11-06 15:01:51

Linux命令內存

2022-09-19 08:45:52

Telnet系統Linux

2019-03-18 13:00:15

LinuxFish ShellBash

2017-10-12 13:43:27

LinuxUbuntuZFS文件系統

2021-09-21 15:31:05

Kali LinuxVMware安裝

2019-12-23 09:42:19

Linux輸入emoji

2018-05-30 08:01:17

LinuxNcurses編程庫

2023-07-28 09:59:31

2010-04-01 16:04:26

CentOS系統

2023-02-21 11:30:38

2020-06-10 15:21:09

FedoraLinuxNvidia驅動

2018-01-09 09:00:01

Linux命令文件壓縮

2015-08-31 11:58:59

UbuntuLogwatch

2022-09-12 23:53:53

JavaScript條件判斷開發

2019-12-16 10:43:38

Linux內存消耗進程

2015-09-01 11:40:21

LinuxVisual Stud

2023-02-14 13:32:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 隔壁老王国产在线精品 | 日韩精品区 | 国产一区二区三区在线看 | 国产视频久久久 | 蜜月aⅴ国产精品 | 日本久久精 | 国产欧美精品区一区二区三区 | 亚洲国产欧美在线人成 | av黄色在线播放 | 亚洲精品在线观看视频 | 成人二区 | av片免费| 激情小视频 | 日韩精品中文字幕一区二区三区 | 日韩成人免费 | 中文字幕久久精品 | 久久大全 | 午夜寂寞福利视频 | 91在线免费视频 | 四虎影视1304t| 2020天天操 | 99这里只有精品视频 | 亚洲欧美日韩一区二区 | 国产视频三区 | 一级黄色大片 | 国产成人综合一区二区三区 | 日韩av第一页| 亚洲一区二区在线视频 | 国产不卡在线播放 | 日本在线免费观看 | 黑人中文字幕一区二区三区 | 三级视频网站 | 久久久久久网站 | 欧美日韩专区 | 91欧美激情一区二区三区成人 | 亚洲一区二区在线播放 | 天堂久久天堂综合色 | 久久剧场| 久久精品亚洲成在人线av网址 | 免费av一区二区三区 | 欧美久久综合 |