2020年7月13日 星期一

Linux 查找記憶體洩漏

top

顯示process的記憶體使用
top -p pid
top 列出所有process, 再按 p, m等指令去切換

VIRT一直增加,可能是有洩漏

VIRT virtual memory usage 虛擬記憶體
        包括lib, code, data等
         process申請的虛擬記憶體大小,如果申請了100m, 但是只用20m,那還是100m
  
RES resident memory usage 常駐記憶體
       當前使用的記憶體大小,不包括swap out
       包括其他process共享記憶體
       如果申請100m,只用10m,那就是10m

SHR shared memory 共享記憶體
      process本身使用的共享記憶體
      包括整個共享lib 的大小,就算只用了其中一個lib
      計算process使用的物理記憶體使用量 RES-SHR
      swap out之後會降下來

DATA 資料佔用的記憶體
      top 沒顯示,按 f 鍵可顯示
      真正的process 要求的資料空間

free

顯示系統記憶體使用狀況
free -m

pmap

顯示process 記憶體使用映射

sudo pmap pid
sudo pmap -X pid
sudo pmap -XX pid

writeable/private 是實際使用記憶體,不含share lib
一直增加就可能有洩漏

沒有留言:

張貼留言