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

你的Linux系統(tǒng)上安裝了多少內(nèi)存?又使用了多少?

譯文
系統(tǒng) Linux
幾個(gè)命令可報(bào)告Linux系統(tǒng)上安裝和使用了多少內(nèi)存。你可能淹沒于細(xì)節(jié),也可能獲得快速簡(jiǎn)易的答案,這看你使用哪個(gè)命令。

【51CTO.com快譯】幾個(gè)命令可報(bào)告Linux系統(tǒng)上安裝和使用了多少內(nèi)存。你可能淹沒于細(xì)節(jié),也可能獲得快速簡(jiǎn)易的答案,這看你使用哪個(gè)命令。

[[257935]]

有好多方法可以獲取Linux系統(tǒng)上已安裝內(nèi)存方面的信息,并查看使用了其中多少內(nèi)存。一些命令提供了大量細(xì)節(jié),另一些命令提供了簡(jiǎn)潔但不一定易于理解的答案。本文介紹幾個(gè)用于檢查內(nèi)存及使用情況的實(shí)用工具。

不過在探討細(xì)節(jié)之前,先看幾個(gè)基礎(chǔ)知識(shí)。物理內(nèi)存和虛擬內(nèi)存不一樣。后者包括配置成用作交換區(qū)(swap)的磁盤空間。交換區(qū)可能包括為此用途留出的分區(qū),或者創(chuàng)建新分區(qū)不切實(shí)際時(shí)為添加到可用交換區(qū)而創(chuàng)建的文件。一些Linux命令提供了兩方面的信息。

交換區(qū)擴(kuò)展內(nèi)存的辦法就是提供這樣的磁盤空間:可用于容納物理內(nèi)存填滿時(shí)移到磁盤的非活動(dòng)頁(yè)面。

內(nèi)存管理中起到作用的一個(gè)文件是/ proc / kcore。該文件看起來(lái)像普通文件(不過極龐大),但它根本不占用磁盤空間。相反,它是個(gè)虛擬文件,就像/proc中的所有文件。

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

頗有意思的是,下面查詢的兩個(gè)系統(tǒng)安裝的內(nèi)存量不一樣,不過兩者上面的/proc/kcore大小卻一樣。這兩個(gè)系統(tǒng)中的一個(gè)安裝了4 GB內(nèi)存,第二個(gè)安裝了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 

聲稱此文件大小代表可用虛擬內(nèi)存量(可能加上4K)的解釋并不重要。這個(gè)數(shù)字表明這些系統(tǒng)上的虛擬內(nèi)存是128太字節(jié)!這個(gè)數(shù)字似乎代表64位系統(tǒng)能夠?qū)ぶ范嗌賰?nèi)存,而不是系統(tǒng)上有多少可用內(nèi)存。在命令行上計(jì)算128 TB和那個(gè)數(shù)字加上4K看起來(lái)很容易:

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

檢查內(nèi)容的另一個(gè)更方便的命令是free命令。它顯示了一目了然的內(nèi)存報(bào)告。

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

若使用-g選項(xiàng),free可報(bào)告以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選項(xiàng),free顯示了與不用選項(xiàng)同樣的值,但在輸出底部添加了合計(jì)行。

  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 

當(dāng)然,你可以選擇兩個(gè)選項(xiàng)都用。

  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 

如果你試圖回答“該系統(tǒng)上安裝了多少內(nèi)存?”這個(gè)問題,可能很失望。這是上一個(gè)例子中顯示的同一個(gè)系統(tǒng),顯示擁有6GB內(nèi)存。這并不意味著該報(bào)告是錯(cuò)誤的,而是說顯示了系統(tǒng)擁有的可用內(nèi)存。

free命令還提供了每隔X秒(下面例子中是10秒)更新顯示內(nèi)容的選項(xiàng)。

  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. total used free shared buff/cache available  
  6. Mem: 6102476 812260 4090712 13112 1199504 4984120  
  7. Swap: 2097148 0 2097148 

若使用-l,free命令提供高端內(nèi)存和低端內(nèi)存的使用情況。

  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 

查看內(nèi)存的另一個(gè)選項(xiàng)是/proc/meminfo文件。與/proc/kcore一樣,這是個(gè)虛擬文件,給出了實(shí)用報(bào)告,顯示安裝了多少內(nèi)存、多少是閑置和可用內(nèi)存。很顯然,閑置和可用并不是一回事。MemFree似乎代表未使用的內(nèi)存。MemAvailable估計(jì)了多少內(nèi)存可用來(lái)啟動(dòng)新的應(yīng)用程序。

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

如果你只想查看總內(nèi)存,可以使用這其中一個(gè)命令:

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

DirectMap條目將內(nèi)存信息分解成幾個(gè)類別。

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

DirectMap4k代表映射到標(biāo)準(zhǔn)4K頁(yè)面的內(nèi)存量,而DirectMap2M顯示了映射到2MB頁(yè)面的內(nèi)存量。

getconf命令會(huì)提供更豐富一點(diǎn)的信息。

  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-- 

使用如下所示的命令,將該輸出簡(jiǎn)化成特定的內(nèi)容,你會(huì)得到上述一些命令提供的同一種信息。

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

該命令乘以輸出中的第一行和最后一行,以此計(jì)算內(nèi)存,就像這樣:

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

單獨(dú)計(jì)算,我們可以看到該值是如何得出的。

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

很顯然這是理應(yīng)轉(zhuǎn)變成化名的命令之一。

輸出非常一目了然的另一個(gè)命令是top。在top輸出的頭五行,會(huì)看到顯示內(nèi)存在如何使用的幾個(gè)數(shù)字。

  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 

最后這個(gè)命令可簡(jiǎn)明扼要地回答“那么,該系統(tǒng)上安裝了多少內(nèi)存?”這個(gè)問題:

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

Linux系統(tǒng)提供了許多選項(xiàng),用于查看系統(tǒng)上安裝了多少內(nèi)存、已使用內(nèi)存和可用內(nèi)存有多少,這取決于你想看到多具體的細(xì)節(jié)。

原文標(biāo)題:How much memory is installed and being used on your Linux systems?,作者:Sandra Henry-Stocker

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

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

2019-02-26 10:00:37

Linux命令內(nèi)存

2013-11-06 15:01:51

Linux命令內(nèi)存

2024-07-08 10:56:34

Rust進(jìn)程內(nèi)存

2020-10-21 09:28:25

JS變量的內(nèi)存分配

2024-12-06 08:00:00

K8s

2021-04-04 23:42:45

Windows 10Windows微軟

2025-02-10 00:20:00

2023-09-14 08:30:46

JsonPathXPath

2017-08-23 18:31:28

華為

2020-05-08 07:00:00

Linux色碼文件類型

2015-11-09 10:44:37

DevOpsIT運(yùn)維

2024-03-20 00:04:46

TypeScriptas const類型斷言

2013-03-20 17:30:18

2011-11-16 09:51:15

Windows7系統(tǒng)服務(wù)常識(shí)

2015-07-31 13:38:39

FreeBSDLinux

2019-11-08 15:11:03

Java架構(gòu)數(shù)據(jù)

2016-01-13 09:15:48

Java對(duì)象占空間

2019-09-30 08:50:51

Linux發(fā)行版內(nèi)核

2024-05-06 00:30:00

MVCC數(shù)據(jù)庫(kù)

2012-12-27 10:58:24

KVMKVM概念
點(diǎn)贊
收藏

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