Memory

來自日誌的峰值記憶體使用量

  • May 11, 2017

atop每天以 10 分鐘的間隔儲存日誌,我可以使用 讀取它們atop -r <path_to_log>,但是如何在此日誌中找到峰值記憶體使用量?

分析記錄數據的命令是atopsar

例如:

# atopsar -r /var/log/atop/atop_20170511 -m -R 1 | head

trucka 3.4.113-sun7i+ #1 SMP PREEMPT Fri Oct 28 16:54:21 CEST 2016 armv7l 2017/05/11 -------------------------- analysis date: 2017/05/11 -------------------------- 00:00:01 memtotal memfree buffers cached dirty slabmem swptotal swpfree _mem_ 00:10:01 1888M 604M 381M 422M 0M 185M 2047M 2047M 00:20:01 1888M 604M 381M 422M 0M 185M 2047M 2047M 00:30:01 1888M 604M 381M 422M 0M 185M 2047M 2047M 00:40:01 1888M 604M 381M 422M 0M 185M 2047M 2047M

您必須考慮在您的情況下什麼記憶對您很重要。

按第三列 (memfree) 排序以找到可用記憶體的最低點可能對您有意義。

您還可以考慮查看 swapfree(第 9 列)以找到使用最多記憶體的點,這會導致記憶體管理頁面換出以進行交換。

例如,我使用 sort 命令對輸出進行排序以獲得最低的可用記憶體:

# atopsar -r /var/log/atop/atop_20170511 -m -R 1 | sort -b -k 3,3 | head

trucka 3.4.113-sun7i+ #1 SMP PREEMPT Fri Oct 28 16:54:21 CEST 2016 armv7l 2017/05/11 06:40:01 1888M 416M 400M 612M 9M 164M 2047M 2047M 06:30:01 1888M 543M 423M 483M 4M 141M 2047M 2047M 03:10:01 1888M 551M 376M 480M 0M 184M 2047M 2047M 03:20:01 1888M 551M 376M 480M 0M 184M 2047M 2047M 03:30:01 1888M 551M 376M 480M 0M 184M 2047M 2047M

為了美化輸出,我將在以下範例中忽略對 autosar 標題的前 7 行進行排序:

# atopsar -r /var/log/atop/atop_20170511 -m -R 1 | awk 'NR<7{print $0;next}{print $0| "sort -k 3,3"}' | head -11

trucka 3.4.113-sun7i+ #1 SMP PREEMPT Fri Oct 28 16:54:21 CEST 2016 armv7l 2017/05/11 -------------------------- analysis date: 2017/05/11 -------------------------- 00:00:01 memtotal memfree buffers cached dirty slabmem swptotal swpfree _mem_ 06:40:01 1888M 416M 400M 612M 9M 164M 2047M 2047M 06:30:01 1888M 543M 423M 483M 4M 141M 2047M 2047M 03:10:01 1888M 551M 376M 480M 0M 184M 2047M 2047M 03:20:01 1888M 551M 376M 480M 0M 184M 2047M 2047M

引用自:https://unix.stackexchange.com/questions/364359