我正在使用 guava 库 14.0.1 来实现缓存服务(一个包含用于放置和获取值的 servlet 的 Web 应用程序)。Web 应用程序部署在包含 1GB RAM(谷歌后端)的机器上。写入和读取操作的数量巨大(每秒 50 个查询)。
即使在达到最大大小限制后,机器上使用的 RAM 量也会继续增加。我怀疑内存泄漏。
以下是我用来创建缓存的代码
Cache cache = CacheBuilder.newBuilder()
.expireAfterWrite(1, TimeUnit.DAYS)
.initialCapacity(2000000)
.maximumSize(3800000)
.concurrencyLevel(50)
.recordStats()
.build();
使用检索值
Map result = cache.getAllPresent(keys);
使用将值放入缓存中
cache.put(key, value);
有什么设置可以用来阻止 RAM 使用量超过限制的增加。