Solaris 上的进程监控

Piy*_*too 3 solaris oracle-database swap

$ 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
Run Code Online (Sandbox Code Playgroud)

以上是prstatOracle 11g安装的Solaris Box 上的命令输出。Solaris 机器上的 RAM 是64GBoracle 进程似乎正在交换5.5 GB,这正常吗?感谢您提供有关获取更细粒度信息的任何建议!

max*_*zig 5

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).
Run Code Online (Sandbox Code Playgroud)

(来自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.