0

我在 Red Hat 6 64 位机器上安装了 Jackrabbit 2.4.0(作为 rar 部署到 JBoss AS 7.1.0 中)。JBoss JVM 将最大堆大小设置为 8 GB。该机器具有 24GB 的 RAM。奇怪的是,当 JBoss 启动时,它有将近 20 GB 的虚拟大小(从顶部获取的统计数据)。Linux 页面缓存(交换缓存)大约为 10 GB,因此系统实际上将有大约 5 GB 的可用内存。我不确定为什么页面缓存如此之大,我正在尝试与保存 Lucene 索引的 jackrabbit 数据目录的大小建立链接。目录的大小约为 10 GB。我的问题是:Lucene 是否对索引文件使用内存映射?

提前致谢。

4

2 回答 2

3

我的问题是:Lucene 是否对索引文件使用内存映射?

Lucene 仅在您要求时才使用内存映射。您可能还想阅读这篇文章。

于 2013-03-27T16:49:33.540 回答
0

JBOSS 总常驻内存由几个因素组成,并非所有因素都是堆:

  1. 烫发
  2. JAR 和 JVM
  3. 映射字节数组
  4. 线程堆栈(每个线程约 1MB)

有您的应用程序和应用程序服务器本身。

因此,您当然应该使用 Visual VM 之类的工具进行分析,以查看正在发生的事情的详细信息,但它只会对堆和 perm gen 有所帮助。你需要像 Linux 上的 nmap 这样的工具来找出其余的东西。

于 2013-03-27T16:50:35.067 回答