Linux系統性能分析——內存

一、引言
Linux系統的性能分析,基本上是分爲CPU、內存、磁盤IO、網絡這幾個部分。

本篇介紹內存的性能分析。
二、內存情況
1、 /proc/meminfo
/proc/meminfo
具體參數:
MemTotal:總的物理內存大小。
MemFree:未使用的物理內存大小 。
Buffers:用來給文件做緩衝物理內存大小 。
Cached:被高速緩衝存儲器(cache memory)用的物理內存大小。
SwapCached:被高速緩衝存儲器(cache memory)用的swap內存交換空間的大小。
Active:在活躍使用中的緩衝或高速緩衝存儲器頁面文件的大小,除非非常必要否則不會被移作他用.
Inactive:在不經常使用中的緩衝或高速緩衝存儲器頁面文件的大小,可能被用於其他途徑.
SwapTotal:交換空間的總大小 。
SwapFree:未被使用交換空間的大小。
Dirty:等待被寫回到磁盤的內存大小。
Writeback:正在被寫回到磁盤的內存大小。

2、free
free
具體參數:
1和2分別代表數據第1行、第2行
total1:總的物理內存大小。
used1:已經使用內存大小。
free1:未使用內存大小。
shared1:共享內存大小(一般不用)。
buffers1:系統分配但未被使用的用來給文件做緩衝的物理內存大小 。
cached1:系統分配但未被使用的用來給高速緩衝存儲器用的物理內存大小。
used2:實際使用內存大小
free2:實際可用內存大小
swap:內存交換空間參數
實際使用內存大小=used1-(buffers1+cached1)
實際可用內存大小=free1+buffers1+cached1

3、vmstat
vmstat
使用說明:
#vmstat [delay [count]]
delay:代表取樣的時間間隔,可省略。
count:代表取樣次數,可省略。
具體參數:
swpd:swap內存交換空間已使用的大小。
free:空閒的物理內存的大小。
buff:用來給文件做緩衝物理內存大小 。
cache:被高速緩衝存儲器(cache memory)用的物理內存大小。

三、進程佔用內存
1、top
top
具體參數:
Mem、Swap:與free命令結果相同
PID:進程id
USER:進程所有者
PR:進程優先級
NI:nice值。負值表示高優先級,正值表示低優先級
%MEM:進程使用的物理內存百分比(使用M可按降序排序)
VIRT:virtual memory usage。進程佔用的虛擬內存的大小(VIRT=SWAP+RES)
RES:resident memory usage。進程使用的常駐內存大小,就是進程實際使用內存的情況。
SHR:shared memory。共享內存的大小,包括共享內存、共享庫佔用的大小等。
S: 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程
%CPU:上次更新到現在的CPU時間佔用百分比
%MEM:進程使用的物理內存百分比
TIME+:進程使用的CPU時間總計,單位1/100秒
COMMAND:進程名稱(命令名/命令行)
2、ps
ps
使用說明:
#ps axu –sort -rss | head -5
按照rss排序顯示前5條記錄。
具體參數:
%CPU:進程的cpu佔用率。
%MEM:進程的內存佔用率。
VSZ:進程所使用的虛存的大小(Virtual Size)。
RSS:進程使用的駐留集大小或者是實際內存的大小。

三、進程佔用內存位置
1、pmap
pmap
使用說明:
#pmap PID
如圖所示,顯示了PID爲1的/sbin/init進程使用的文件及庫所佔用的內存。
2、jmap
jmap是java提供的內存查看工具,能看java進程的對象內存分配的詳細情況.

文章部分內容參考:http://www.simplemain.com/article/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章