有許多辦法能夠得到Linux系統上所安裝內存的信息,並查看其中有多少內存正在使用中。有的命令會展現大量的細節,而有的命令則提供了簡潔(但不必定容易理解)的結果。在這篇文章中將介紹一些更有用的工具,幫助你檢查內存及其使用狀況。 |
不過,在進一步討論以前,咱們要先回顧一些基本知識。物理內存和虛擬內存是不同的,後者包括配置爲交換區的磁盤空間。交換區可能包括爲此用途預留的分區,或者那些爲添加到新的交換區而建立的文件——當建立一個新的分區並不實際時。有些Linux命令提供了這兩方面的信息。linux
交換區經過提供磁盤空間來擴展內存,這些磁盤空間可用於存放那些物理內存已滿時移動到磁盤的非活動頁。工具
在內存管理中起到做用的一個文件是/proc/kcore,這個文件看起來像一個普通的(雖然很是大)文件,可是它根本不佔用磁盤空間。就像/proc中的全部文件同樣,它是一個虛擬文件。3d
有趣的是,下面查詢的兩個系統沒有安裝相同數量的內存,可是/proc/kcore
的大小在這兩個系統上是相同的。第一個系統安裝了4 GB內存,第二個有6 GB。code
該文件的大小表示可用虛擬內存的數量(可能加上4K),這個解釋可能站不住腳。這個數字代表這些系統上的虛擬內存是128 TB!這個數字表明64位系統可以尋址的內存數量,而不是系統上的可用內存數量。經過如下方式進行計算,再加上4 K,就能夠推導出這個數字:
blog
另外一個更人性化的檢查內存的命令是free
命令,它能夠提供一個易於理解的內存報告。內存
使用-g
選項,free
以gb爲單位報告這些值。get
使用-t
選項,free
顯示的值與沒有選項時顯示的值相同(不要混淆-t
和tb
),可是在輸出的底部添加了一行。內存管理
固然,你也能夠同時使用這兩個選項。table
若是你但願獲得「這個系統上安裝了多少RAM」的答案,那麼你可能會對這個報告感到失望,這與上面示例中顯示的具備6GB RAM的系統相同。並不表示這個報告是錯的,而是系統對它所擁有的內存的見解。free命令還提供了每X秒(在下面的示例中爲10秒)更新一次結果的選項。擴展
使用-l, free命令能夠提供高內存使用量和低內存使用量。
查看內存的另外一個辦法是/proc/meminfo文件。與/proc/kcore
相似,這是一個虛擬文件,它提供了一個有用的報告,顯示安裝了多少內存、空閒內存和可用內存。顯然,空閒和可用並非一個意思。MemFree
表明未使用的RAM
,MemAvailable
是對啓動新應用程序可用內存的估計。
若是隻想查看總內存,可使用如下命令之一:
DirectMap
條目將內存上的信息分解成類別。
DirectMap4k
表示映射到標準4k頁面的內存量,而DirectMap2M表示映射到2MB頁面的內存量。
getconf
命令將提供的信息每每比較多。
使用以下所示的命令能夠將輸出縮減爲特定的內容,你可以得到與上面的一些命令相同的信息。
該命令經過將輸出的第一行和最後一行中的值相乘來計算內存,以下所示:
獨立地進行計算,咱們就能夠看到這個值是如何推導出來的。
另外一個輸出很是容易理解的命令是top
,top
輸出前5行中的數字顯示了內存的使用狀況。
最後這個命令將以簡潔的方式回答「這個系統上安裝了多少RAM ?
根據您但願看到的詳細信息的多少,Linux系統提供了許多選項,能夠查看系統上安裝了多少內存,以及使用了多少內存和有多少可用內存。