OpenDJ dbcache实现 - 它位于RAM中的哪个位置?

时间:2015-10-13 04:40:00

标签: java caching ldap heap-memory opendj

我试图了解OpenDJ如何与java vm一起处理dbcache的内存分配。不过,有几件事我无法完全理解。如上所述here,可以为缓存数据库的唯一目的分配一些预定义量的RAM。它也在这里和那里提到,OpenDJ 可能尝试尽可能多地将db文件存储在内存中。到目前为止有2个问题:

  1. dbcache实际上是堆的一部分吗?如果答案是"是",那么 它被分配的内存究竟在哪里?即,是旧的 代空间,永久代空间,甚至年轻代空间?要么 可能它不是它们,也不能在通常的堆中看到它 记忆区域(意思是它不是放在堆中,而是放在它自己的区域中) 内存空间,其大小只是从堆的大小派生而来 使用本文提到的设置??
  2. 我可以以某种方式确保(即,是否有特定的设置) OpenDJ)我的完整数据库在服务启动期间被缓存, 并确保否则(即如果分配的RAM的大小没有正确设置, 或者没有足够的RAM)服务只是不会开始?
  3. 感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

有趣的是你指的是我的博客...... 1 /是,dbcache是​​JVM堆的一部分。 OpenDJ让JVM决定在哪里分配dbcache。通常它在新一代空间中分配,但如果要分配的数量超过新一代的大小,则在旧代空间中分配。

2 / OpenDJ可以选择指定服务器是否应预加载缓存以及尝试预加载缓存所花费的最长时间。有关详细信息,请查看OpenDJ管理指南及其性能调整部分。

如果没有缓存整个数据库,则无法阻止服务器启动。我无法想到这种特定行为的有效用例。