Linux如何查看內存的使用情況?

2021-02-14 Python大師

內存的管理和優化,是 Linux 系統性能優化的重要組成部分,換句話說,內存資源是否充足,會直接影響應用系統(包含作業系統和應用程式)的使用性能。

本節將介紹幾個系統命令,通過它們,可以快速查看 Linux 系統中內存的使用狀況。

Linux查看內存使用情況:free命令

free 是監控 Linux 內存使用狀況最常用的命令之一,有關該命令的基本用法,已經在《Linux free命令》一節中做了詳細介紹,所以不再贅述,這裡重點給大家講解如何使用 free 命令查看系統內存的使用情況。

下面是 free 命令在當前測試系統中的輸出結果:

[root@localhost  ~]             total       used       free     shared    buffers     cachedMem:          2004        573       1431          0         47        201-/+ buffers/cache:        323       1680Swap:         1983          0       1983

從輸出結果可以看到,該系統共 2GB 內存,其中系統空閒內存還有 1431MB,並且 swap 交換分區還未使用,因此可以判斷出當前系統的內存資源還非常充足。

除此之外,free 命令還可以實時地監控內存的使用狀況,通過使用 -s 選項,可以實現在指定的時間段內不間斷地監控內存的使用情況。例如:

[root@localhost ~]# free -m -s 5             total       used       free     shared    buffers     cachedMem:          2004        571       1433          0         47        202-/+ buffers/cache:        321       1683Swap:         1983          0       1983
total used free shared buffers cachedMem: 2004 571 1433 0 47 202-/+ buffers/cache: 321 1683Swap: 1983 0 1983

要想實現動態地監控內存使用狀況,除了使用 free 命令提供的 -s 選項,還可以藉助 watch 命令。通過給 watch 命令後面添加需要運行的命令,watch 就會自行重複去運行這個命令(默認 2 秒執行一次),例如:

[root@localhost ~]# watch -n 3 -d freeEvery 3.0s: free                                        Tue Oct 29 03:05:43 2019
total used free shared buffers cachedMem: 2052988 586504 1466484 0 49184 207360-/+ buffers/cache: 329960 1723028Swap: 2031608 0 2031608

上面執行的命令中,-n 選項用於執行重複執行的間隔時間,-d 選項用於在顯示數據時,高亮顯示變動了的數據。

Linux查看內存使用情況:vmstat命令

vmstat 命令在監控系統內存方面的功能很強大,有關此命令的基本用法,已經在《Linux vmstat命令》一節中做了詳細介紹,這裡重點講解如何使用此命令查看內存的使用狀況。

下面是執行 vmstat 命令的輸出結果:

[root@localhost ~]# vmstat 2 3procs -memory ---swap-- io---- --system-- cpur  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0      0 1436128  53004 210744    0    0     7     0   13   14  0  0 100  0  01  0      0 1436112  53004 210744    0    0     0     0  128  226  0  0 100  0  00  0      0 1435988  53004 210744    0    0     0     0  144  220  1  0 99  0  0

對於內存的監控,我們只需要重點關注 swpd、si 和 so 這 3 列。從此輸出結果可以看出,當前系統中,虛擬內存沒有使用,硬碟和內存之間沒有交換數據,可見內存資源處於空閒狀態。

Linux查看內存使用情況:sar命令

sar 命令也可以用來監控 Linux 的內存使用狀況,通過「sar -r」組合可以查看系統內存和交換空間的使用率。

有關 sar 命令的基本用法,可以閱讀《Linux sar命令》一文做詳細了解。

如下是執行「sar -r」命令的輸出結果:


[root@localhost ~]Linux 2.6.32-431.el6.x86_64 (localhost) 10/29/2019 _x86_64_ (8 CPU)
04:54:20 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit04:54:22 AM 1218760 834228 40.63 53228 424908 738312 18.0804:54:24 AM 1218744 834244 40.64 53228 424908 738312 18.0804:54:26 AM 1218712 834276 40.64 53228 424908 738312 18.08Average: 1218739 834249 40.64 53228 424908 738312 18.08

此輸出結果中,各個參數表示的含義如下:

kbmemfree:表示空閒的物理內存的大小;

kbmemeused:表示已使用的物理內存的大小;

%memused:表示已使用內存佔總內存大小的百分比;

kbbuffers:表示緩衝區所使用的物理內存的大小;

kbcached:表示告訴緩存所使用的物理內存的大小;

kbcommit 和 %commit:分別表示當前系統中應用程式使用的內存大小和百分比;

相比 free 命令,sar 命令的輸出信息更加人性化,不僅給出了內存使用量,還給出了內存使用的百分比以及統計的平均值。比如說,僅通過 %commit 一項就可以得知,當前系統中的內存資源充足。

相關焦點

  • Linux下查看內存的使用情況
    Linux下使用什麼方法來查看內存的使用情況呢?
  • Linux下查看內存使用情況方法總結
    在做Linux系統優化的時候,物理內存是其中最重要的一方面。自然的,Linux也提供了非常多的方法來監控寶貴的內存資源的使用情況。下面的清單詳細的列出了Linux系統下通過視圖工具或命令行來查看內存使用情況的各種方法。1./proc/meminfo查看RAM使用情況最簡單的方法是通過 /proc/meminfo。
  • Linux系統命令 - 查看內存使用情況
    ;buff/cache 表示緩存和緩衝內存量; Linux 系統會將很多東西緩存起來以提高性能,這部分內存可以在必要時進行釋放,給其他程序使用。available 表示可用內存;輸出結果很容易理解。Swap 這一行表示交換內存,從示例中的數字可以看到,基本上沒使用到交換內存。2.
  • Linux如何查看內存佔用情況
    Linux下查看某一個進程所佔用的內存,首先可以通過 ps 命令找到進程 id,比如 ps -ef | grep sender_main_test_strategy_newhot.py 可以看到進程對應的 id 為 30501。ylhao 30501 1 0 Jun04 ?
  • Linux 查看進程消耗內存情況總結
    在Linux中,有很多命令或工具用來查看內存使用情況,今天我們來簡單討論一下如何查看進程消耗、佔用的內存情況,Linux的內存管理和相關概念要比Windows複雜一些。其實所謂共享內存,就是多個進程間共同地使用同一段物理內存空間,它是通過將同一段物理內存映射到不同進程的虛擬空間來實現的。由於映射到不同進程的虛擬空間中,不同進程可以直接使用,不需要像消息隊列那樣進行複製,所以共享內存的效率很高。
  • 如何查看Linux的IP位址
    前言本文主要講解如何查看Linux的IP位址。如何查看Linux的IP位址2. 通過圖形界面查看Linux的IP位址以Ubuntu 20.04為例:使用本地顯示器登錄到Ubuntu圖形桌面後,點擊右上角網絡設置-選擇相應網卡-進入網絡設置界面-點擊齒輪就可以查看到Linux伺服器的IP位址。
  • 如何在 Linux 下檢測內存洩漏
    在 linux 或者 unix 下,我們的 C++ 程序缺乏相應的手段來檢測內存信息,而只能使用 top 指令觀察進程的動態內存總額。而且程序退出時,我們無法獲知任何內存洩漏信息。為了更好的輔助在 linux 下程序開發,我們在我們的類庫項目中設計並實現了一個內存檢測子系統。
  • 在Linux中檢查可用內存的5種方法
    為了查看內存使用情況,我們使用的是Linux命令行,終端應用程式。您可以通過系統Dash打開終端。方法1:free命令由於free命令是最廣泛使用的,毫無疑問是最有用的,我們首先會提到它的用法。此命令用於檢查有關系統RAM使用情況的信息。
  • Android 內存分析之二--使用adb命令查看內存
    使用adb命令查看內存2.1使用dumpsys meminfo命令dumpsys命令是android中用於列印service相關狀態信息的命令,它的原理是Android中系統相關service通過重寫dump接口來實現的。
  • Linux 內存管理初探
    合理的使用內存,有助於提升機器的性能和穩定性。本文主要介紹 linux 內存組織結構和頁面布局,內存碎片產生原因和優化算法,linux 內核幾種內存管理的方法,內存使用場景以及內存使用的那些坑。從內存的原理和結構,到內存的算法優化,再到使用場景,去探尋內存管理的機制和奧秘。一、走進 linux 內存1、內存是什麼?
  • Linux 終端查看最消耗 CPU 內存的進程
    2.內存消耗最多的前10個進程ps auxw|head -1;ps auxw|sort -rn -k4|head -103.虛擬內存使用最多的前10個進程ps auxw|head -1;ps auxw|sort -rn -k5|head -104.也可以試試ps auxw --sort=rss
  • 使用dstat檢查Linux系統性能
    您可能需要查看dstat命令。 Dstat提供了有關Linux系統性能的寶貴見解,幾乎取代了一系列舊工具,如vmstat,netstat,iostat和ifstat,它們具有結合其功能的靈活而強大的命令。使用這一個命令,您可以查看虛擬內存,網絡連接和接口,CPU活動,輸入/輸出設備等。 在今天的帖子中,我們將檢查一些dstat命令,看看它們可以向您展示有關系統的內容。
  • 如何查看Linux進程詳情?(ps命令)
    要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,ps命令就是最基本進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是可以通過執行該命令得到。
  • Linux進程之如何查看進程詳情?
    要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,ps命令就是最基本進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是可以通過執行該命令得到。
  • Linux 進程之如何查看進程詳情?
    連結:https://juejin.im/post/5bf9213ce51d452237153c5c要對進程進行監測和控制,首先必須要了解當前進程的情況,也就是需要查看當前進程,ps命令就是最基本進程查看命令。使用該命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有殭屍、哪些進程佔用了過多的資源等等.總之大部分信息都是可以通過執行該命令得到。
  • Linux 內存的分配和釋放
    「Kbytes」列表示的是對應邏輯地址的容量,以Kb為單位「RSS」列表示的是實際使用的物理內存容量,由於分頁機制的存在,這個值一般要比」Kbytes」的值要少。當這些文件被讀入高速緩存後,相應的內存空間被映射成進程的邏輯內存。當出現多個程序共同使用相同的文件映射(共享庫)時,它們可以共享磁碟高速緩存中的同一空間,從而節省物理內存的使用量,這種技術就是」共享映射」技術。除了共享庫外,進程的fork也使用了共享映射技術。
  • 如何在 Linux 中查看已掛載的文件系統類型 | Linux 中國
    如你所知,Linux 支持非常多的文件系統,例如 ext4、ext3、ext2、sysfs、securityfs、FAT16、FAT32、NTFS 等等,當前被使用最多的文件系統是 ext4。你曾經疑惑過你的 Linux 系統使用的是什麼類型的文件系統嗎?沒有疑惑過?不用擔心!我們將幫助你。本指南將解釋如何在類 Unix 的作業系統中查看已掛載的文件系統類型。
  • Android 內存分析之二--使用adb命令查看內存 作者:晨光
    1.使用adb命令查看內存1.1使用dumpsys meminfo命令dumpsys命令是android中用於列印service相關狀態信息的命令,它的原理是Android中系統相關service通過重寫dump接口來實現的。dumpsys功能比較強大,本文只對其查看內存信息的功能做介紹,其他的功能不做過多闡述。
  • Linux如何查看CPU運行狀態?
    swpd 列表示切換到內存交換區的內存數量(以 kB 為單位)。如果 swpd 的值不為 0,或者比較大,而且 si、so 的值長期為 0,那麼這種情況下一般不用擔心,不用影響系統性能。cache 列表示緩存的內存數量,一般作為文件系統緩存,頻繁訪問的文件都會被緩存。如果緩存值較大,就說明緩存的文件數較多,如果此時 I/O 中 bi 比較小,就表明文件系統效率比較好。
  • 藍隊安全 : 內存取證(下-分析內存)
    linux_bash          # bash 歷史文件# 獲取網絡接口信息的相關命令linux_arp           # 顯示 arp 列表linux_ifconfig      # 顯示網絡接口詳細情況linux_route_cache   # 顯示網絡路由表linux_netstat       # 查看網絡連結情況