記憶體是電腦系統中的關鍵資源,對於Linux作業系統來說更是至關重要。但是,你是否曾經遇到過記憶體不足的問題,或是覺得自己的系統記憶體使用效率不高?本文將帶你深入了解Linux記憶體相關的概念和原理,從而幫助你更好地管理和優化系統記憶體。
1./proc/meminfo
查看 RAM 使用情況最簡單的方法是透過 /proc/meminfo。這個動態更新的虛擬檔案其實是許多其他記憶體相關工具 (如:free / ps / top) 等的組合顯示。 /proc/meminfo 列出了所有你想了解的記憶體的使用情況。進程的記憶體使用資訊也可以透過 /proc//statm 和 /proc//status 來查看。
$ cat /proc/meminfo MemTotal: 8010436 kB MemFree: 7514008 kB MemAvailable: 7567204 kB Buffers: 872 kB Cached: 282844 kB SwapCached: 0 kB Active: 213156 kB Inactive: 111632 kB Active(anon): 41264 kB Inactive(anon): 32888 kB Active(file): 171892 kB Inactive(file): 78744 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 32 kB Writeback: 0 kB AnonPages: 41088 kB Mapped: 35936 kB Shmem: 33080 kB Slab: 66888 kB SReclaimable: 48120 kB SUnreclaim: 18768 kB KernelStack: 1872 kB PageTables: 2788 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 4005216 kB Committed_AS: 272452 kB VmallocTotal: 34359738367 kB VmallocUsed: 22136 kB VmallocChunk: 34359707388 kB HardwareCorrupted: 0 kB AnonHugePages: 4096 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 79740 kB DirectMap2M: 3065856 kB DirectMap1G: 7340032 kB
2.atop
#atop 指令是一個終端機環境的監控指令。它顯示的是各種系統資源(CPU, memory, network, I/O, kernel)的綜合,並且在高負載的情況下進行了彩色標註。
$ sudo atop
3.free
free 指令是一個快速查看記憶體使用情況的方法,它是對 /proc/meminfo 收集到的資訊的一個概述。
$ free -h
4.GNOME System Monitor
GNOME System Monitor 是一個顯示最近一段時間內的 CPU、記憶體、交換區及網路的使用情況的視圖工具。它還提供了一種查看 CPU 及記憶體使用情況的方法。
$ gnome-system-monitor
5.htop
#htop 指令顯示了每個進程的記憶體即時使用率。它提供了所有進程的常駐記憶體大小、程式總記憶體大小、共享庫大小等的報告。列表可以水平及垂直滾動。
$ htop
6.KDE System Monitor
功能同 4 介紹的 GENOME 版本。
$ ksysguard
7.memstat
#memstat 是一個有效辨識 executable(s), process(es) and shared libraries 使用虛擬記憶體狀況的指令。給定一個進程 ID,memstat 可以列出這個進程相關的可執行檔、資料和共用程式庫。
$ memstat -p
8.nmon
#nmon 是一個基於 ncurses 的系統基準測試工具,它可以監控 CPU、記憶體、I/O、檔案系統及網路資源等的互動模式。對於記憶體的使用,它可以即時的顯示總 / 剩餘記憶體、交換空間等資訊。
$ nmon
9.ps
#ps 指令可以即時的顯示各個進程的記憶體使用情況。 Reported memory usage information includes %MEM (percent of physical memory used), VSZ (totalamount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort” 選項對進程進行排序,例如按 RSS 進行排序:
$ ps aux | sort -rss
圖8:Linux下查看記憶體使用方法總結
10.smem
#smem 指令讓你可以統計基於 / proc 資訊的不同進程和使用者的記憶體使用情況。記憶體使用情況的分析可以匯出圖表(如長條圖和圓餅圖)。
smem -P sshd -k PID User Command Swap USS PSS RSS 815 root /usr/sbin/sshd 0 868.0K 951.0K 1.3M 14104 root sshd: root@pts/0 0 2.8M 3.5M 5.3M 14292 root python /usr/bin/smem -P ssh 0 5.1M 5.8M 7.2M
11.top
#top 指令提供了即時的運行中的程式的資源使用統計。你可以根據記憶體的使用和大小來進行排序。
$ top
12.vmstat
#vmstat 指令顯示即時的和平均的統計,覆蓋 CPU、記憶體、I/O 等內容。例如記憶體情況,不僅顯示實體內存,也統計虛擬記憶體。
透過本文的學習,你已經了解了Linux記憶體管理的基本原理、記憶體分類、記憶體使用情況的檢視以及如何優化系統記憶體等知識。同時,我們也分享了一些實用的記憶體管理工具和技巧,幫助你進一步提升系統效能和運作效率。希望這篇文章能夠對你有所啟發和幫助!
以上是總結Linux下查看記憶體使用量的多種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!