Solaris 上的進程監控

Solaris 上的進程監控
$ prstat -t
NPROC USERNAME  SWAP   RSS MEMORY      TIME  CPU
164 oracle   5446M 5445M   8.3%  13:47:50 1.6%
52 root      576M  728M   1.1%  42:29:50 1.0%
 1 noaccess  300M  273M   0.4%   0:20:54 0.0%
 1 smmsp    2192K 9912K   0.0%   0:00:06 0.0%
 1 nagios    584K 4256K   0.0%   0:01:54 0.0%
 6 daemon   8360K   11M   0.0%   0:12:39 0.0%

Total: 225 processes, 839 lwps, load averages: 1.68, 1.58, 1.46

prstat以上是已安裝的 Solaris Box 上的命令輸出Oracle 11g。然而, Solaris 機器上的 RAM64GB似乎在交換 oracle 進程5.5 GB,這正常嗎?如果有任何有關獲取更細粒度資訊的建議,我們將不勝感激!

答案1

prstat將交換定義為:

SWAP

    The sum of swap reservations of the associated processes
    for  each  user,  project,  task,  or  zone. This counts
    shared memory only once for each user, project, task, or
    zone.  Swap  is  reserved when anonymous memory is allo-
    cated or files are mapped private. The value of swap  is
    expressed  in kilobytes (K), megabytes (M), or gigabytes
    (G).

(從Solaris 10 上的 prstat(1M),參見開啟 Solaris prstat

基本上,這意味著該值包括當前尚未存取但已映射到進程位址空間的記憶體。這樣的記憶體將來可能會被使用,因此可能會被換出(即真正寫入交換分割區)。因此,在建立初始映射時,Solaris prstat 將它們計為 SWAP。

這並不意味著這個記憶體量實際上已寫入或必須寫入 SWAP 分區。

這些交換保留、匿名記憶體和映射檔案是虛擬記憶體Solaris 系統。

另請注意,您正在使用-t- 因此範例中顯示的值不是 oracle 進程的值,而是在 user 下運行的所有進程的聚合值oracle

使用某些 Solaris 連接埠可以top提供更有用的信息,即 SIZE(或 VMEM)和 RES(或 RSS)值。 VMEM 包含所有虛擬記憶體頁面,RSS 是常駐大小。這樣,關係 VMEM >= RSS 為真(對於 prstat RSS 可能 > SWAP,即 RSS 不包含在 SWAP 中)。

如果您關心實際的交換活動,您可以使用類似的東西vmstat

相關內容