之前想把系統的日誌寫入內存當中,無奈默認只能寫10M,嚇得我趕緊把日誌切回到硬盤上。不過緊巴巴的硬盤也不怎麼夠用。於是還是不死心,看看能不能把內存中日誌的容量設置得大一點。於是就有了這篇文章。
做人最要緊呢,就是對自己的認識要足夠清晰
怎麼樣才能知道我的機器上,總共有多少內存呢?雖然買的是雲服務器,但是作為一個Linux服務器管理員,機器都給你了還沒法解決,總覺得說不過去。於是今天又認識了一個新朋友:free
禮數要到位。
man free
手冊上對該命令的描述不多,基本上就是說,這個命令能查看系統上物理內存和swap內存,總共有多少,使用了多少,還剩多少。以及內核使用了多少緩存。這個信息也是通過解析 /proc/meminfo 得來的。
什麼是swap內存?
描述中提到了我不太熟悉的 swap內存,順便給大家科普一下。紅帽的文檔對它有一個說明:
Linux中的swap空間是當物理內存(RAM)耗盡時使用的。如果系統需要更多的內存資源,而RAM已經滿了,那麼內存中不活躍的頁面會被移動到swap空間中。儘管swap空間能夠幫機器提供少量的RAM,但是不能把它想成是RAM變多了。swap空間存在於硬盤中,比物理內存的訪問速度更慢。
swap空間可以是一個專屬swap分區,也可以是一個swap文件,亦或是兩者的組合。
所以,聽起來,似乎會讓人聯想到Windows上的虛擬內存的概念。有更專業的解答歡迎留到評論區。
free命令返回的結果分為好幾列,分別是:
total:總共安裝內存容量,來自於 /proc/meminfo 中的 MemTotal 和 SwapTotal
used:已使用的內存容量,計算方法為:total – free -buffers – cache
這裡提到了 buffers 和 cache 。兩者在內存中,各自承擔著不同的角色。
簡單說一下區別的話:
cache:
它存儲的東西可不止一樣,不過最主要的呢,還是保存了硬盤中,最經常訪問的數據,以便為系統進程提供更高的讀寫性能。儘可能最大化地使用內存,並且有一套自己判斷該存什麼,不該存什麼的邏輯,也有一套何時釋放內存空間的機制。
buffer:
保存了cache中數據的元數據。如果請求了cache中存在的數據,第一步是檢查指向cache中的真實數據的元數據,一旦元數據找到了,內核就能夠去獲取cache中的真實數據了。
free:未使用的內存容量
shared:通常是 tmpfs 所使用的內存容量
buffers:內核緩衝使用的內存容量
cache:頁面緩存和 slabs 使用的內存容量
buff/cache:buffers和cache的總和
available:預估不做swap的話,啟動新應用可用的內存空間。
那麼列就以上這麼多,大家在使用命令的時候,可以各取所需。
命令選項
命令選項有很多,來看2個比較常用的:
--si
如果你比較講究,喜歡標準的程序員單位的話,不用這個選項就很適合您。各個單位之間,都相差1024倍,比如1M是1024K。如果你更習慣整數1000的話,可以帶上這個選項。每個單位都差1000倍。
-h即--human
筆者自認為還是個人類,這個選項就是給人類用的。可以根據單位的設置,自動把容量縮小到3位數之內,同時帶上對應的單位。
實踐
實踐時間,漏家底的時候到了,看看我電腦上的內存有多大。

太好了,一個G的樣子。
同意給筆者加內存的記得長按點贊哈。我們下期不見不散。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/214417.html
微信掃一掃
支付寶掃一掃