我有一个 8GB RAM 的 linux 盒子,上面运行着 4 个 tomcat 服务器。其中之一设置为 3000MB 内存(jvm -Xms 和 -Xmx 设置),其他设置为 1500MB。交换分区也设置为 8Gigs。当我启动这些服务器时,交换文件使用率很低。但是在一段时间内以及在一个/所有服务器处于活动高峰期的某些时间段内,交换使用量开始增加。这是典型的 sar -r 输出。
kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
48260 8125832 99.41 196440 2761852 7197688 1190912 14.20 316044
75504 8098588 99.08 198032 2399460 7197688 1190912 14.20 316032
它显示当前使用了 14.2% 的交换。有趣的是这 % 永远不会减少。它继续增加并达到30-40%。我们每周重新启动我们的服务器。
我会假设%swpused在活动高峰期会增加,而在活动低潮期会减少……或者至少保持不变。这看起来交换空间永远不会被操作系统回收..
free 的输出:free -m 缓存的已用空闲共享缓冲区总数:7982 7937 45 0 32 2088 -/+ 缓冲区/缓存:5816 2166 交换:8191 1163 7028
所以至少有 2g 的免费 …