如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體
檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體
檢視系統記憶體有很多方法,但主要的是用top命令和free 命令
當執行top命令看到結果,要怎麼看呢?這裡說明一下:
Mem: 666666k total, 55555k used,並不是代表你的應用程式已經使用了55555k的記憶體,這55555k是包含了:應用程式記憶體 + 緩衝 + 快取的記憶體的。
用free命令檢視更直接:
下面是一個例子(單位是MB):
[root@linuxzgf ~]# free -m
total used free shared buffers cached
Mem: 7982 6811 1171 0 350 5114
-/+ buffers/cache: 1346 6636
Swap: 16935 11 16924
在這裡例子中,應用程式只使用了1346MB記憶體,還有6636MB空閒記憶體可以使用.
一些簡單的計算方法:
物理已用記憶體 = 實際已用記憶體 - 緩衝 - 快取 = 6811M - 350M - 5114M
物理空閒記憶體 = 總實體記憶體 - 實際已用記憶體 + 緩衝 + 快取
應用程式可用空閒記憶體 = 總實體記憶體 - 實際已用記憶體
應用程式已用記憶體 = 實際已用記憶體 - 緩衝 - 快取
top命令的結果詳解
top命令 是Linux下常用的效能 分析工具 ,能夠實時顯示系統 中各個程式的資源佔用狀況,類似於Windows的任務管理 器。下面詳細介紹它的使用方法。
top - 02:53:32 up 16 days, 6:34, 17 users, load average: 0.24, 0.21, 0.24
Tasks: 481 total, 3 running, 474 sleeping, 0 stopped, 4 zombie
Cpu(s): 10.3%us, 1.8%sy, 0.0%ni, 86.6%id, 0.5%wa, 0.2%hi, 0.6%si, 0.0%st
Mem: 4042764k total, 4001096k used, 41668k free, 383536k buffers
Swap: 2104472k total, 7900k used, 2096572k free, 1557040k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32497 jacky 20 0 669m 222m 31m R 10 5.6 29:27.62 firefox
4788 yiuwing 20 0 257m 18m 13m S 5 0.5 5:42.44 konsole
5657 Liuxiaof 20 0 585m 159m 30m S 4 4.0 5:25.06 firefox
4455 xiefc 20 0 542m 124m 30m R 4 3.1 7:23.03 firefox
6188 Liuxiaof 20 0 191m 17m 13m S 4 0.5 0:01.16 konsole
統計資訊區前五行是系統整體的統計資訊。第一行是任務佇列資訊,同 uptime 命令的執行結果。其內容如下:
01:06:48 當前時間
up 1:22 系統執行 時間,格式為時:分
1 user 當前登入使用者 數
load average: 0.06, 0.60, 0.48 系統負載 ,即任務佇列的平均長度。
三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
第二、三行為程式和CPU的資訊。當有多個CPU時,這些內容可能會超過兩行。內容如下:
Tasks: 29 total 程式總數
1 running 正在執行的程式數
28 sleeping 睡眠的程式數
0 stopped 停止的程式數
0 zombie 殭屍程式數
Cpu(s): 0.3% us 使用者空間佔用CPU百分比
1.0% sy 核心 空間佔用CPU百分比
0.0% ni 使用者程式空間內改變過優先順序的程式佔用CPU百分比
98.7% id 空閒CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
最後兩行為記憶體 資訊。內容如下:
Mem: 191272k total 實體記憶體總量
173656k used 使用的實體記憶體總量
17616k free 空閒記憶體總量
22052k buffers 用作核心快取 的記憶體量
Swap: 192772k total 交換區總量
0k used 使用的交換區總量
192772k free 空閒交換區總量
123988k cached 緩衝的交換區總量。
記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,
該數值即為這些內容已存在於記憶體中 的交換區的大小。
相應的記憶體再次被換出時可不必再對交換區寫入。
程式資訊區統計資訊區域的下方顯示了各個程式的詳細資訊。首先來認識一下各列的含義。
序號 列名 含義
a PID 程式id
b PPID 父程式id
c RUSER Real user name
d UID 程式所有者的使用者id
e USER 程式所有者的使用者名稱
f GROUP 程式所有者的組名
g TTY 啟動程式的終端名。不是從終端啟動的程式則顯示為 ?
h PR 優先順序
i NI nice值。負值表示高優先順序,正值表示低優先順序
j P 最後使用的CPU,僅在多CPU環境 下有意義
k %CPU 上次更新到現在的CPU時間佔用百分比
l TIME 程式使用的CPU時間總計,單位秒
m TIME+ 程式使用的CPU時間總計,單位1/100秒
n %MEM 程式使用的實體記憶體 百分比
o VIRT 程式使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
p SWAP 程式使用的虛擬記憶體中,被換出的大小,單位kb。
q RES 程式使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
r CODE 可執行程式碼佔用的物理 記憶體大小,單位kb
s DATA 可執行程式碼以外的部分(資料 段+棧)佔用的物理 記憶體大小,單位kb
t SHR 共享記憶體大小,單位kb
u nFLT 頁面錯誤次數
v nDRT 最後一次寫入到現在,被修改過的頁面數。
w S 程式狀態。
D =不可中斷的睡眠狀態
R =執行
S =睡眠
T =跟蹤/停止
Z =殭屍程式
x COMMAND 命令名/命令列
y WCHAN 若該程式在睡眠,則顯示睡眠中的系統函式名
z Flags 任務標誌,參考 sched.h
預設情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通過下面的快捷鍵來更改顯示內容。
更改顯示內容通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z 即可顯示或隱藏對應的列,最後按Enter鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z 可以將相應的列向左移動。最後按Enter鍵確定。
按大寫的 F 或 O 鍵,然後按 a-z 可以將程式按照相應的列進行排序。而大寫的 R 鍵可以將當前的排序倒轉。
top命令使用過程中,還可以使用一些互動的命令來完成其它引數的功能。這些命令是通過快捷鍵啟動的。
<空格>:立刻重新整理。
P:根據CPU使用大小進行排序。
T:根據時間、累計時間排序。
q:退出top命令。
m:切換顯示記憶體資訊。
t:切換顯示程式和CPU狀態資訊。
c:切換顯示命令名稱和完整命令列。
M:根據使用記憶體大小進行排序。
W:將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。
可以看到,top命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤其重要。但是,它的缺點是會消耗很多系統資源。
居然檢視了記憶體,以下指令也會用到:
檢視CPU個數
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
檢視CPU核數
# cat /proc/cpuinfo | grep "cpu cores" | uniq
檢視CPU型號
# cat /proc/cpuinfo | grep 'model name' |uniq
那麼,該伺服器有2個4核CPU,型號Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
佔用記憶體的測量
測量一個程式佔用了多少記憶體,linux為我們提供了一個很方便的方法,/proc目錄為我們提供了所有的資訊,實際上top等工具也通過這裡來獲取相應的資訊。
/proc/meminfo 機器的記憶體使用資訊
/proc/pid/maps pid為程式號,顯示當前程式所佔用的虛擬地址。
/proc/pid/statm 程式所佔用的記憶體
感謝您的關注!可加QQ1群:135430763,QQ2群:454796847,QQ3群:187424846。QQ群進群密碼:xttblog,想加微信群的朋友,可以微信搜尋:xmtxtt,備註:“xttblog”,新增助理微信拉你進群。備註錯誤不會同意好友申請。再次感謝您的關注!後續有精彩內容會第一時間發給您!原創文章投稿請傳送至532009913@qq.com郵箱。商務合作可新增助理微信進行溝通!
相關文章
- 獲取linux可用記憶體 剩餘記憶體Linux記憶體
- linux系統檢視記憶體使用率Linux記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- UNIX系統記憶體檢視方法記憶體
- 實體記憶體和虛擬記憶體記憶體
- 檢視swap記憶體記憶體
- 檢視linux可用記憶體Linux記憶體
- Linux檢視記憶體資訊Linux記憶體
- Redis記憶體——記憶體消耗(記憶體都去哪了?)Redis記憶體
- 記憶體管理篇——實體記憶體的管理記憶體
- 記憶體_大頁記憶體記憶體
- Linux 記憶體管理:記憶體對映Linux記憶體
- 如何檢視Linux的記憶體使用狀況Linux記憶體
- Linux記憶體子系統——Locking Pages(記憶體鎖定)Linux記憶體
- 17 種檢視 Linux 實體記憶體的方法Linux記憶體
- Linux記憶體不夠了?看看如何開啟虛擬記憶體增加記憶體使用量Linux記憶體
- 計算機作業系統——虛擬記憶體與實體記憶體計算機作業系統記憶體
- 虛擬記憶體到實體記憶體(32位)記憶體
- 【Java基礎】實體記憶體&虛擬記憶體Java記憶體
- Linux實體記憶體管理Linux記憶體
- 記憶體管理 記憶體管理概述記憶體
- 【記憶體管理】記憶體佈局記憶體
- MongoDB 如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- MongoDB如何使用記憶體?為什麼記憶體滿了?MongoDB記憶體
- linux下檢視記憶體使用情況Linux記憶體
- SOLARISE檢視記憶體使用情況記憶體
- 記憶體管理兩部曲之實體記憶體管理記憶體
- 遊戲記憶體對比普通記憶體區別 遊戲記憶體和普通記憶體相差大嗎?遊戲記憶體
- Linux AS 使用記憶體檔案系統Linux記憶體
- 虛擬記憶體系統——瞭解記憶體的工作原理記憶體
- Go:記憶體管理與記憶體清理Go記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- 聊聊 記憶體模型與記憶體序記憶體模型
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- linux檢視cpu、記憶體、版本資訊Linux記憶體
- Linux下檢視記憶體,CPU資訊Linux記憶體
- linux aix檢視CPU和記憶體LinuxAI記憶體
- Linux讀寫實體記憶體Linux記憶體