Docker 容器內存監控
linux內存監控
要明白docker容器內存是如何計算的,首先要明白linux中內存的相關概念。
使用free命令可以查看當前內存使用情況。
[root@localhost ~]$ free total used free shared buffers cachedMem: 264420684 213853512 50567172 71822688 2095364 175733516-/+ buffers/cache: 36024632 228396052Swap: 16777212 1277964 15499248
這里有幾個概念:
mem: 物理內存 swap: 虛擬內存。即可以把數據存放在硬盤上的數據 shared: 共享內存。存在在物理內存中。 buffers: 用于存放要輸出到disk(塊設備)的數據的 cached: 存放從disk上讀出的數據可以參考這里。
為方便說明,我對free的結果做了一個對應。
[root@localhost ~]$ free total used free shared buffers cachedMem: total_mem used_mem free_mem shared_mem buffer cache-/+ buffers/cache: real_used real_freeSwap: total_swap used_swap free_swap
名稱 說明 total_mem 物理內存總量 used_mem 已使用的物理內存量 free_mem 空閑的物理內存量 shared_mem 共享內存量 buffer buffer所占內存量 cache cache所占內存量 real_used 實際使用的內存量 real_free 實際空閑的內存量 total_swap swap總量 used_swap 已使用的swap free_swap 空閑的swap
一般認為,buffer和cache是還可以再進行利用的內存,所以在計算空閑內存時,會將其剔除。
因此這里有幾個等式:real_used = used_mem - buffer - cachereal_free = free_mem + buffer + cachetotal_mem = used_mem + free_mem
了解了這些,我們再來看free的數據源。其實其數據源是來自于/proc/memeinfo文件。
[root@localhost ~]$ cat /proc/meminfo MemTotal: 264420684 kBMemFree: 50566436 kBBuffers: 2095356 kBCached: 175732644 kBSwapCached: 123688 kBActive: 165515340 kBInactive: 37004224 kBActive(anon): 92066880 kBInactive(anon): 4455076 kBActive(file): 73448460 kBInactive(file): 32549148 kBUnevictable: 362900 kBMlocked: 74696 kBSwapTotal: 16777212 kBSwapFree: 15499248 kBDirty: 2860 kBWriteback: 0 kBAnonPages: 24932928 kBMapped: 58165040 kBShmem: 71822688 kBSlab: 8374496 kBSReclaimable: 8163096 kBSUnreclaim: 211400 kBKernelStack: 45824 kBPageTables: 606296 kBNFS_Unstable: 0 kBBounce: 0 kBWritebackTmp: 0 kBCommitLimit: 148987552 kBCommitted_AS: 114755628 kBVmallocTotal: 34359738367 kBVmallocUsed: 772092 kBVmallocChunk: 34225428328 kBHardwareCorrupted: 0 kBAnonHugePages: 22083584 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kBDirectMap4k: 7168 kBDirectMap2M: 2015232 kBDirectMap1G: 266338304 kB
docker
說完linux的內存,我們再來看下docker的內存監控。docker自身提供了一種內存監控的方式,即可以通過docker stats對容器內存進行監控。
新聞熱點
疑難解答