Terminal

top 命令和 + 和 * 符號

  • January 28, 2022

我正在嘗試使用以下 top 命令獲取記憶體使用情況。

KiB Mem :  8009480 total,  1438848 free,  1964392 used, 4606240 buff/cache 
KiB Swap:  7340028 total,  5302364 free,  2037664 used. 5202692 avail Mem
top -p $PID -n 1 -b | grep 'KiB Mem :' | awk -F, '{print $3}'
1963780 used

奇怪的是,有時我收到的輸出為

*"15108960+used"*

我無法理解為什麼有時會出現+,*符號。

我在手冊頁中找不到任何關於它的內容。

這意味著什麼?如何在沒有和輸出的情況下進行top命令列印。*``+

注意:在 CentOs 機器上執行。

首先,top不是獲取機器記憶體資訊的好方法。該free命令旨在用於獲取記憶體資訊。你也可以使用vmstat -s.

現在,關於top,我從未*在摘要區域中看到字元,但+標誌的解釋出現在以下的手冊頁中top(1)

         If you see a `+' between a displayed number and the
         following label, it means that top was forced to truncate
         some portion of that number.  By raising the scaling
         factor, such truncation can be avoided.

您可以使用-E標誌或E互動式命令將縮放從 KiB 更改為其他值。

  -E  :Enforce-Summary-Memory-Scaling as:  -E  k | m | g | t | p | e
       Instructs top to force summary area memory to be scaled as:
          k - kibibytes
          m - mebibytes
          g - gibibytes
          t - tebibytes
          p - pebibytes
          e - exbibytes

       Later this can be changed with the `E' command toggle.

因此,例如,-Em將縮放從 KiB 更改為 MiB。

但同樣,如果您只想獲取記憶體資訊,請不要使用top,使用free.

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