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 機器上的 RAM 是64GB
oracle 程序似乎正在交換5.5 GB
,這正常嗎?將不勝感激有關獲得更細粒度資訊的任何建議!
prstat
將 SWAP 定義為: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),參見Open 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
.