Process

誰來解釋procstat輸出記憶體資訊?

  • August 6, 2020

我使用命令procstat -r $(pidof myprocess),我得到以下輸出……

 PID COMM             RESOURCE                          VALUE
84867 myprocess       user time                    00:00:12.637834
84867 myprocess       system time                  00:00:06.671334
84867 myprocess       maximum RSS                            11400 KB
84867 myprocess       integral shared memory               1931920 KB
84867 myprocess       integral unshared data                 28272 KB
84867 myprocess       integral unshared stack               301568 KB
84867 myprocess       page reclaims                            653
84867 myprocess       page faults                                0
...

我有點擔心

84867 myprocess       integral shared memory             1 931 920 KB
84867 myprocess       integral unshared data                28 272 KB
84867 myprocess       integral unshared stack              301 568 KB

這三個詞是什麼意思?

htop給了我關於記憶的體面價值(VIRT等)。

我應該擔心記憶體洩漏嗎?

這沒有很好的記錄,也讓我感到困惑。

integral shared memory和status 是執行計數器integral unshared data,而integral unshared stack不是目前使用情況的快照。它們無限增長是正常的。它們並不表示記憶體洩漏。

有關每個欄位數據的確切描述,請參見http://www.khmere.com/freebsd_book/html/ch07.html

程序連結到的每個共享庫的integral shared memory包含code和段。rodata將近 2GB 的數字很大,但如果它是像瀏覽器這樣的大型應用程序,這並不奇怪。未共享段是由您的程序分配的數據,包括來自共享庫的 r/w 數據頁等。如果這些數據沒有驚人地上升(或更糟,無界),您可能沒問題。

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