正如您在运行如下所示的 vmstat 时所看到的。
bash-3.00# vmstat 1 5
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr m1 m1 m1 m2 in sy cs us sy id
2 0 0 12812792 7094520 668 1023 213 939 939 0 0 1 1 1 0 30519 66084 35693 12 7 81
10 19 0 5469784 797392 265 325 583 1119 1119 0 0 1 1 0 0 35404 75227 44916 14 8 78
34 10 0 5577672 846056 570 554 3802 1233 1233 0 0 1 0 0 0 35013 72253 46505 10 10 79
19 0 0 5576352 843112 462 2825 1200 963 963 0 0 0 0 0 0 35070 73182 44379 13 8 78
2 0 0 5582624 854664 1698 1885 134 1198 1198 0 0 2 1 1 0 35688 71013 43705 11 7 82
这有什么问题?因为内存使用率约为 %95。
***---****---****----*****
由于系统是 HA 系统,这里是备用机器的输出。
bash-3.00# vmstat 1 5
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr m1 m1 m1 m2 in sy cs us sy id
1 0 0 13949104 8516736 553 1047 121 21 20 0 0 1 1 1 9 30691 69172 34352 12 7 81
0 0 0 12456136 7171232 1122 2554 4117 0 0 0 0 3 1 2 0 31505 85240 35958 11 8 81
0 0 0 12353888 7147488 1401 664 0 0 0 0 0 0 0 0 0 31647 73507 35881 13 6 81
0 0 0 12345536 7129280 13 40 0 0 0 0 0 0 0 0 0 30787 69357 34695 14 6 80
0 0 0 12345440 7125040 217 1646 0 24 24 0 0 0 0 0 0 31390 73710 38393 12 10 78
索拉里斯?哪个版本(大概是空闲列中的 8 或 9)?Sun集群还是vcs?
无论如何,忽略第一行,因为这是自启动以来的平均值。
顺便说一句,备份是否在被动节点上运行,并导致机器上的小故障和页面调入表面上什么都不做?并查看上下文切换。
在活动节点上,90% 的内存使用率可能只是您正在运行的任何东西使用的内存:也许是 Oracle 的 SGA;其余的用于缓存。这个是正常的。该系统似乎确实受 io 限制,至少在您显示的几秒钟内是这样。有分页进出但没有严重的内存压力,所以这可能反映了内存映射 io。一些交换空间正在使用中,但这可能反映了预分配而不是任何短缺。
运行
vmstat -s
:vmstat -p 10 5
. 如果是 Solaris,还有prstat -a
:prstat -t
;prstat -a -s rss
; 在 Solaris 9 上echo ::memstat | mdb -k
(这可能需要一段时间,所以不要惊慌)。这些将显示系统正在使用内存做什么,以及哪些应用程序正在使用它。如果您认为您的应用程序软件正在泄漏内存,请比较 prstat 随时间的测量结果。如果您始终受 io 限制,
iostat -xn 60
请在适当的情况下运行并与您的存储管理员交谈。但那是另一回事。我不确定这里问的是什么,但您记得 vmstat 输出的第一行显示了自上次重新启动以来项目的平均值吗?后续行显示最后一个采样周期的值,因此通常忽略第一行。