小编Zen*_*nil的帖子

在 Linux 中不断增加交换大小并且交换空间没有被回收?

我有一个 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 的免费 …

java swap virtual-memory

10
推荐指数
1
解决办法
2万
查看次数

基于 Linux 将进程内存从 RAM 交换到交换文件的确切条件是什么?

我的服务器有 8Gigs 的 RAM 和 8Gigs 配置用于交换文件。我正在运行内存密集型应用程序。这些应用程序具有峰值负载,在此期间我们发现交换使用量增加。使用了大约 1 GIG 的交换。

我有另一台带有 4G 内存和 8 Gb 交换的服务器以及类似的内存密集型应用程序在其上运行。但是在这里交换使用非常可以忽略不计。大约 100 MB。

我想知道Linux 将 RAM 中的进程内存交换到交换文件的确切条件或粗略公式是什么。我知道它基于交换因子。它还有什么依据?交换文件大小?任何指向解释这一点的 Linux 内核内部文档/源代码的指针都会很棒。

linux swap virtual-memory

7
推荐指数
1
解决办法
717
查看次数

标签 统计

swap ×2

virtual-memory ×2

java ×1

linux ×1