我收到警报,说我的交换使用量已达到 80%,当我检查时,这确实是一个事实topas
。
我发现的问题是:
1)查看vmstat 5 10
,我发现很多PI都有0SRs。这怎么可能呢?
kthr 内存页面错误 cpu ----- ----------- ------------------------ ------------ ----------------------- rb avm fre re pi po fr sr cy in sy cs us sy id wa pc ec 12 1 12245252 92621 0 229 0 0 0 0 1884 56260 24568 84 15 0 0 2.50 99.9 12 1 12245413 90313 0 190 0 0 0 0 1764 51759 23827 86 14 0 0 2.50 99.9 12 1 12245193 88040 0 218 0 0 0 0 1734 69307 25347 85 15 0 0 2.50 99.9 14 1 12246377 83810 0 157 0 0 0 0 1960 80471 24057 84 16 0 0 2.50 100.0 13 1 12246050 79785 0 183 0 0 0 0 2280 103138 21990 81 19 0 0 2.50 100.0 12 1 12245988 77393 0 173 0 0 0 0 1881 51984 22331 84 16 0 0 2.50 100.0 14 1 12246180 74721 0 179 0 0 0 0 1792 52624 20610 79 21 0 0 2.50 99.9 15 1 12246131 72304 0 176 0 0 0 0 2109 58504 23344 82 18 0 0 2.50 99.9 15 1 12246673 68231 0 187 0 0 0 0 2272 73068 25319 85 15 0 0 2.50 99.9 13 1 12246305 66342 0 172 0 0 0 0 1966 104313 21884 83 17 0 0 2.50 100.0
2) 我去寻找是谁在消耗我宝贵的记忆,结果发现我实际上对如何在 AIX 中解决这个问题知之甚少。
在某个地方找到了这个命令,阅读手册后发现它似乎合理:
ps -ealf | head -1 ; ps -ealf | sort -rn +9 | head
通过查看手册,这似乎是合理的,并给出了如下输出:
FS UID PID PPID C PRI NI 地址 SZ STIME TTY 时间 CMD 242001 A util 1581080 1 76 60 20 fb34510 150044 10:55:40 pts/0 103:43 /usr... 242001 A util 569540 1 0 60 20 d235510 142580 11:01:09 pts/0 68:55 /usr/... 242001 A 实用程序 1425464 1 4 60 20 43c6510 129916 23:17:58 - 168:02 /usr... 202001 A util 245864 1 83 60 24 da9e510 113008 13:37:22 pts/2 43:26 /usr/... 242001 A util 1163370 1 0 68 24 d69d510 103572 09:55:52 pts/13 17:24 /usr/... 242001 A util 466984 1 0 60 20 5d0c510 83064 11:00:34 pts/0 22:57 /usr/... 242001 一次突袭 1048782 1 7 60 20 e5b8510 78724 16:41:18 pts/6 0:36 /usr/... 242001 A util 659612 1 13 60 20 edc3510 76400 11:13:17 pts/0 10:57 /usr/... 242001 A 实用程序 1134736 1 0 60 20 eb91510 75188 06:21:23 - 27:23 /usr/...
根据手册页,SZ 应该是以 1k 为单位的大小;这也没什么意义,因为这些是 Xms=1G(左右)的 Java 进程,如图所示,最大的进程有 ~150mb。再说一遍...?
最后,我的服务器目前没有达到最大负载,但仍显示交换空间使用率约为 20%。我该如何解释呢?
我有点迷茫了。这些事情在 Solaris 上更容易解决。
有人可以分享一些想法吗?
答案1
您的 vmm 设置是什么?
确保您有 lru_file_repage=1。
vmo -o lru_file_repage
默认设置 (lru_file_repage=0) 的效果是 AIX 会将应用程序页面调出,即使周围有大量可以丢弃页面的缓存文件。其中一个效果是调页空间使用率不断增长。
设置 lru_file_repage=0 是默认设置,包括 AIX 5.3