我们有一些运行20到30 GB RAM的服务器(RHEL4的一个变种)。 他们目前正在运行SMP i386内核,而不是x64,甚至不是巨型内核。 这意味着LowMem被限制在<1G,因此dentry_cache和ext3_inode_cache每个都是100M左右。 我怎么知道这是一个问题?
这是一个典型的vmstat报告,它正在编译一些Java:
$ vmstat 10 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- rb swpd free buff cache si so bi bo in cs us sy id wa 1 1 0 19493816 394740 922420 0 0 1058 2292 1491 1020 6 3 80 12 2 1 0 19519480 395244 850156 0 0 1179 1412 1329 1195 9 4 75 12 1 1 0 19557368 392616 828344 0 0 1783 1680 1498 1756 14 5 72 9
当有太多记忆时,我不喜欢bi非零的方式。 我slabtop可以更直接地指出问题,但是我不太了解如何解释它的输出。
更新:显而易见的问题是“为什么不移动到64位”,谷歌甚至在“64位内核32位用户区”上有很多点击。 但这些机器的主要目的是build立32位软件,我不知道如何保证不会受到切换内核的影响。
我不认为PAE可能会伤害到你,但是有了这么多的内存,为什么不去64位的系统。
http://linux-mm.org/
你可以在这里阅读更多关于vmstat:
http://www.helpmehost.com/linux/reading-vmstat-in-linux-part-1/ (和第2部分)
为什么不这样做呢?