亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux系統命令free的使用方法

發布時間:2022-01-26 10:42:43 來源:億速云 閱讀:129 作者:kk 欄目:開發技術

這篇文章將為大家詳細講解有關Linux系統命令free的使用方法,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Linux系統中free命令最主要的用途就是用來顯示內存的狀態,其中包括實體內存,虛擬的交換文件內存,共享內存區段等。

free命令使用

首先是要 free –help命令,來查看下free命令的用法。 Linux系統命令free的使用方法

 root@ubuntu116:~# free --help
 
 Usage:
  free [options]
 
 Options:
  -b, --bytes         show output in bytes
  -k, --kilo          show output in kilobytes
  -m, --mega          show output in megabytes
  -g, --giga          show output in gigabytes
      --tera          show output in terabytes
  -h, --human         show human-readable output
      --si            use powers of 1000 not 1024
  -l, --lohi          show detailed low and high memory statistics
  -o, --old           use old format (without -/+buffers/cache line)
  -t, --total         show total for RAM + swap
  -s N, --seconds N   repeat printing every N seconds
  -c N, --count N     repeat printing N times, then exit
 
      --help     display this help and exit
  -V, --version  output version information and exit
 
 For more details see free(1).
 
 123456789101112131415161718192021222324

下面我們來測試下幾個常用的options

2.1 free -b

Linux系統命令free的使用方法

root@ubuntu116:~# free -b
total used free shared buffers cached
Mem: 67529682944 64533520384 2996162560 213880832 351289344 58317025280
-/+ buffers/cache: 5865205760 61664477184
Swap: 68690112512 7532544 68682579968
您在 /var/mail/root 中有新郵件
root@ubuntu116:~#

2.2 free -k

Linux系統命令free的使用方法

root@ubuntu116:~# free -k
total used free shared buffers cached
Mem: 65946956 63518300 2428656 208900 343148 56952900
-/+ buffers/cache: 6222252 59724704
Swap: 67080188 7356 67072832
您在 /var/mail/root 中有新郵件
root@ubuntu116:~#

2.3 free -m

Linux系統命令free的使用方法

root@ubuntu116:~# free -m
total used free shared buffers cached
Mem: 64401 62458 1942 204 335 55618
-/+ buffers/cache: 6505 57895
Swap: 65507 7 65500
root@ubuntu116:~#

2.4 free -g

Linux系統命令free的使用方法

root@ubuntu116:~# free -g
total used free shared buffers cached
Mem: 62 60 1 0 0 54
-/+ buffers/cache: 6 56
Swap: 63 0 63
root@ubuntu116:~#

2.5 free -h

Linux系統命令free的使用方法

root@ubuntu116:~# free -h
total used free shared buffers cached
Mem: 62G 60G 2.2G 204M 336M 54G
-/+ buffers/cache: 6.1G 56G
Swap: 63G 7.2M 63G
root@ubuntu116:~#

2.6 free -l

顯示詳細的低內存和高內存統計信息 Linux系統命令free的使用方法

root@ubuntu116:~# free -l
total used free shared buffers cached
Mem: 65946956 63396736 2550220 209228 344632 56953528
Low: 65946956 63396736 2550220
High: 0 0 0
-/+ buffers/cache: 6098576 59848380
Swap: 67080188 7356 67072832
root@ubuntu116:~#

2.7 free -o

使用舊格式(沒有 -/+buffers/cache 這一行)

Linux系統命令free的使用方法

root@ubuntu116:~# free -o
total used free shared buffers cached
Mem: 65946956 64045184 1901772 209256 344760 56969912
Swap: 67080188 7356 67072832
root@ubuntu116:~#

2.8 free -t

展示RAM和swap的合計 Linux系統命令free的使用方法

root@ubuntu116:~# free -t
total used free shared buffers cached
Mem: 65946956 64118724 1828232 209616 345348 56973588
-/+ buffers/cache: 6799788 59147168
Swap: 67080188 7356 67072832
Total: 133027144 64126080 68901064
root@ubuntu116:~#

2.9 free -s N

每相隔N秒重復打印一次內存信息,直到你按下 Ctrl + c

Linux系統命令free的使用方法

root@ubuntu116:~# free -s 3
total used free shared buffers cached
Mem: 65946956 64138880 1808076 209708 345616 56957708
-/+ buffers/cache: 6835556 59111400
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 64073124 1873832 209716 345616 56957720
-/+ buffers/cache: 6769788 59177168
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 64167628 1779328 209720 345616 56957732
-/+ buffers/cache: 6864280 59082676
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 64159796 1787160 209720 345620 56957728
-/+ buffers/cache: 6856448 59090508
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 64166776 1780180 209724 345628 56957740
-/+ buffers/cache: 6863408 59083548
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 63093948 2853008 209724 345632 56957756
-/+ buffers/cache: 5790560 60156396
Swap: 67080188 7356 67072832

2.10 free -c N

重復打印N次內存信息,然后退出

Linux系統命令free的使用方法

root@ubuntu116:~# free -c 3
total used free shared buffers cached
Mem: 65946956 64199120 1747836 209780 345744 56974404
-/+ buffers/cache: 6878972 59067984
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 63949560 1997396 209780 345744 56974404
-/+ buffers/cache: 6629412 59317544
Swap: 67080188 7356 67072832

total used free shared buffers cached
Mem: 65946956 64093104 1853852 209780 345744 56974408
-/+ buffers/cache: 6772952 59174004
Swap: 67080188 7356 67072832
root@ubuntu116:~#

2.11 free -V

顯示版本號信息

Linux系統命令free的使用方法

 root@ubuntu116:~# free -V
 free from procps-ng 3.3.9
 root@ubuntu116:~#

三、free命令輸出內容名詞解釋

Linux系統命令free的使用方法

root@ubuntu116:~# free
total used free shared buffers cached
Mem: 65946956 64255040 1691916 213840 356892 56805760
-/+ buffers/cache: 7092388 58854568
Swap: 67080188 7356 67072832
root@ubuntu116:~#

3.1 Mem,-/+ buffers/cache,Swap 解釋

我們看到free命令有三行內容:Mem,-/+ buffers/cache,Swap,代表的內容如下:

名稱代表的內容
Mem內存的使用情況
-/+ buffers/cache表示物理內存已用多少,可用多少
Swap交換空間的使用情況

3.2 total,used,free,shared,buffers,cached 解釋

列的內容是total,used,free,shared,buffers,cached,代表的內容如下:

名稱代表的內容
total總量
used已使用的
free空閑的
shared共享的,在linux里面有很多共享內存,比如一個libc庫,很多程序調用,但實際只存一份
buffers緩存,可回收
cached緩存,可回收
  • 關于buffers和cached的區別 這里有個地方要注意,關于buffers和cached的區別。 關于free命令里面的cached、buffers的區別,下面一幅圖可以表達: (圖片引用自 https://blog.csdn.net/juS3Ve/article/details/79191634 宋寶華老師的博客) Linux系統命令free的使用方法

cached和buffers都可以讀寫,它們唯一的區別就是:buffers以裸設備或分區為背景,cached以文件系統里的文件為背景。

比如 cat /dev/sda1 > /dev/null,那/dev/sda1的內容進入buffers, 如果cat /opt/test.py > /dev/null,則/opt/test.py的內容進入cached

在有些時候buffer和cache這兩個詞經常混用。不過在一些比較低層的軟件里是要區分這兩個詞的,看老外的洋文:

  • A buffer is something that has yet to be “written” to disk.

  • A cache is something that has been “read” from the disk and stored for later use. 也就是說buffer是用于存放要輸出到disk(塊設備)的數據的,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,并由OS管理。

Linux和其他成熟的操作系統(例如windows),為了提高IO read的性能,總是要多cache一些數據,這也就是為什么Mem這一行cached 比較大,而Mem這一行free 比較小的原因。

四、free命令輸出內容計算公司

下面我們來計算一下free命令各個參數是怎么計算出來的,參考下面的圖片 (圖片引用自 https://blog.csdn.net/juS3Ve/article/details/79191634 宋寶華老師的博客) Linux系統命令free的使用方法

4.1 關于Mem這一行的total的計算公式

計算公式為 : total = used + free

Linux系統命令free的使用方法

 total (65946956) = used (64255040) + free (1691916)

比如本例中,Mem的used是64255040,free是1691916,加起來剛好是total的65946956.

4.2 關于 -/+ buffers/cache這一行的used的計算公式

free輸出的第二行是從一個應用程序的角度看系統內存的使用情況。

-/+ buffers/cache這一行的used,即 -buffers/cache ,表示一個應用程序認為系統被用掉多少內存,實實在在吃掉的內存

計算公式為: -/+ buffers/cache的used = Mem這一行的used - Mem這一行的buffers - Mem這一行的cached

Linux系統命令free的使用方法

`-/+ buffers/cache的used (7092388) = Mem這一行的used (64255040) – Mem這一行的buffers (356892)- 去Mem這一行的cached (56805760)

比如本例中,-/+ buffers/cache的used是7092388,這個值是由Mem這一行的used 64255040,減去Mem這一行的buffers 356892,再減去Mem這一行的cached 56805760。

4.3 關于 -/+ buffers/cache這一行的free的計算公式

-/+ buffers/cache這一行的free,即 +buffers/cache ,表示一個應用程序認為系統還有多少內存,可以挪用的內存總數

計算公式為: -/+ buffers/cache的free = Mem這一行的free + Mem這一行的buffers + Mem這一行的cached

Linux系統命令free的使用方法

-/+ buffers/cache的free (58854568) = Mem這一行的free (1691916) + Mem這一行的buffers (356892) + Mem這一行的cached (56805760)

比如本例中,-/+ buffers/cache的free 是58854568,這個值是由Mem這一行的free 1691916,加上Mem這一行的buffers 356892,再加上Mem這一行的cached 56805760

因為被系統cache和buffer占用的內存可以被快速回收,所以通常-/+ buffers/cache這一行的free會比Mem這一行的free大很多。

4.4 關于Swap這一行的total的計算公式

計算公式為 : total = used + free

Linux系統命令free的使用方法

 total (67080188) = used (7356) + free (67072832)

比如本例中,Swap的used是7356,free是67072832,加起來剛好是total的67080188.

4.5 關于估算空閑的物理內存

估算空閑的物理內存時可參考-/+ buffers/cache的free的值,但實際的可用內存要小于這個值,因為不能所有的buffers和cached都釋放。

我想大家看了上面,還是很暈.第一部分(Mem)與第二部分(-/+ buffers/cache)的結果中有關usedfree為什么這么奇怪?

其實我們可以從二個方面來解釋.

操作系統來講是Mem這一行的buffers/cached 都是屬于被使用,所以它認為free只有1691916

應用程序來講是-/+ buffers/cach。 buffers/cached 是等同可用的,因為buffer/cached是為了提高程序執行的性能,當程序使用內存時,buffer/cached會很快地被使用。

五 關于 buffer和cache

5.1 什么是buffer/cache?

buffer 和 cache 是兩個在計算機技術中被用濫的名詞,放在不通語境下會有不同的意義。

在 Linux 的內存管理中,這里的 buffer 指 Linux 內存的: Buffer cache 。這里的 cache 指 Linux 內存中的: Page cache 。翻譯成中文可以叫做緩沖區緩存頁面緩存。 在歷史上,它們一個( buffer )被用來當成對 io 設備寫的緩存,而另一個( cache )被用來當作對 io 設備的讀緩存,這里的 io 設備,主要指的是塊設備文件和文件系統上的普通文件。 但是現在,它們的意義已經不一樣了。 在當前的內核中, page cache 顧名思義就是針對內存頁的緩存,說白了就是,如果有內存是以 page 進行分配管理的,都可以使用 page cache 作為其緩存來管理使用。 當然,不是所有的內存都是以頁( page )進行管理的,也有很多是針對塊( block )進行管理的,這部分內存使用如果要用到 cache 功能,則都集中到 buffer cache 中來使用。(從這個角度出發,是不是 buffer cache 改名叫做 block cache 更好?)然而,也不是所有塊( block )都有固定長度,系統上塊的長度主要是根據所使用的塊設備決定的,而頁長度在 X86 上無論是 32 位還是 64 位都是 4k 。

明白了這兩套緩存系統的區別,就可以理解它們究竟都可以用來做什么了。

5.2 什么是 page cache

Page cache 主要用來作為文件系統上的文件數據的緩存來用,尤其是針對當進程對文件有 read / write 操作的時候。如果你仔細想想的話,作為可以映射文件到內存的系統調用: mmap 是不是很自然的也應該用到 page cache ?在當前的系統實現里, page cache 也被作為其它文件類型的緩存設備來用,所以事實上 page cache 也負責了大部分的塊設備文件的緩存工作。

5.3 什么是 buffer cache

Buffer cache 則主要是設計用來在系統對塊設備進行讀寫的時候,對塊進行數據緩存的系統來使用。這意味著某些對塊的操作會使用 buffer cache 進行緩存,比如我們在格式化文件系統的時候。一般情況下兩個緩存系統是一起配合使用的,比如當我們對一個文件進行寫操作的時候, page cache 的內容會被改變,而 buffer cache 則可以用來將 page 標記為不同的緩沖區,并記錄是哪一個緩沖區被修改了。這樣,內核在后續執行臟數據的回寫( writeback )時,就不用將整個 page 寫回,而只需要寫回修改的部分即可。

5.4 如何回收 cache ?

Linux 內核會在內存將要耗盡的時候,觸發內存回收的工作,以便釋放出內存給急需內存的進程使用。一般情況下,這個操作中主要的內存釋放都來自于對 buffer / cache 的釋放。尤其是被使用更多的 cache 空間。既然它主要用來做緩存,只是在內存夠用的時候加快進程對文件的讀寫速度,那么在內存壓力較大的情況下,當然有必要清空釋放 cache ,作為 free 空間分給相關進程使用。所以一般情況下,我們認為 buffer/cache 空間可以被釋放,這個理解是正確的。

但是這種清緩存的工作也并不是沒有成本。理解 cache 是干什么的就可以明白清緩存必須保證 cache 中的數據跟對應文件中的數據一致,才能對 cache 進行釋放。所以伴隨著 cache 清除的行為的,一般都是系統 IO 飆高。因為內核要對比 cache 中的數據和對應硬盤文件上的數據是否一致,如果不一致需要寫回,之后才能回收。

  • 人工觸發緩存清除

在系統中除了內存將被耗盡的時候可以清緩存以外,我們還可以使用下面這個文件來人工觸發緩存清除的操作:

 [root@tencent64 ~]# cat /proc/sys/vm/drop_caches

方法是:

 echo 1 > /proc/sys/vm/drop_caches

當然,這個文件可以設置的值分別為 1 、 2 、 3 。它們所表示的含義為:

 echo 1 > /proc/sys/vm/drop_caches

表示清除 pagecache 。

 echo 2 > /proc/sys/vm/drop_caches

表示清除回收 slab 分配器中的對象(包括目錄項緩存和 inode 緩存)。 slab 分配器是內核中管理內存的一種機制,其中很多緩存數據實現都是用的 pagecache 。

echo 3 > /proc/sys/vm/drop_caches 表示清除 pagecache 和 slab 分配器中的緩存對象。

什么是Linux系統

Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。

關于Linux系統命令free的使用方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

浮梁县| 盐边县| 青河县| 凌海市| 甘孜县| 普洱| 安乡县| 湖口县| 贡觉县| 徐闻县| 蛟河市| 江永县| 喀喇沁旗| 白河县| 响水县| 灵山县| 元谋县| 巴林右旗| 富阳市| 丰都县| 会泽县| 财经| 龙胜| 东城区| 白朗县| 康定县| 伊宁市| 开江县| 福清市| 上饶市| 望奎县| 丹凤县| 高唐县| 林西县| 渝北区| 虎林市| 理塘县| 乐亭县| 济南市| 天全县| 合作市|