Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenDJ dbcache实现-它位于RAM中的什么位置?_Java_Caching_Ldap_Heap Memory_Opendj - Fatal编程技术网

Java OpenDJ dbcache实现-它位于RAM中的什么位置?

Java OpenDJ dbcache实现-它位于RAM中的什么位置?,java,caching,ldap,heap-memory,opendj,Java,Caching,Ldap,Heap Memory,Opendj,我试图理解OpenDJ和JavaVM是如何处理dbcache的内存分配的。不过,有几件事我无法完全理解。如前所述,可以分配一些预定义数量的RAM来缓存数据库。它还不时提到,OpenDJ可能会尝试在内存中存储尽可能多的db文件。迄今为止的2个问题: dbcache实际上是堆的一部分吗?如果答案是“是”,那么 它的内存具体分配在哪里?也就是说,它是旧的吗 世代空间,永久世代空间,甚至年轻世代空间?或 也许他们两个都不是,在平常的堆里也看不到 内存区域(意味着它不是放在堆中,而是放在自己的堆中) 内存

我试图理解OpenDJ和JavaVM是如何处理dbcache的内存分配的。不过,有几件事我无法完全理解。如前所述,可以分配一些预定义数量的RAM来缓存数据库。它还不时提到,OpenDJ可能会尝试在内存中存储尽可能多的db文件。迄今为止的2个问题:

  • dbcache实际上是堆的一部分吗?如果答案是“是”,那么 它的内存具体分配在哪里?也就是说,它是旧的吗 世代空间,永久世代空间,甚至年轻世代空间?或 也许他们两个都不是,在平常的堆里也看不到 内存区域(意味着它不是放在堆中,而是放在自己的堆中) 内存空间,其大小仅由堆的大小派生而来 使用本文提到的设置)
  • 我能否以某种方式确保(即,是否有特定的设置 在服务启动期间缓存完整数据库的OpenDJ, 并确保在其他情况下(即,如果分配的RAM大小设置不正确, 或者内存不足)服务根本无法启动

  • 非常感谢您的帮助。

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

    2/OpenDJ有一个选项,可以指定服务器是否应该预加载缓存,以及预加载缓存的最长时间。请查看OpenDJ管理指南,以及它的性能调优部分以了解详细信息


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

    嗨,Ludovic,谢谢你的澄清。用例可能是一些高负载的系统,它拥有大量未使用的内存(因此它可以负担1-2GB的全数据库缓存),同时,必须遵守严格的SLA管理重复次数。这将允许其管理员始终确保,如果服务能够启动,这意味着缓存已成功创建,否则他会为某些与内存相关的设置提供不正确的值(可以很容易地立即调整)。如果没有这一点,他就无法确定系统是否总是在其功能的顶端运行。我还可以问一下:有没有办法诊断目前实际缓存了多少数据库内容?还有一个问题:db缓存在代码中是如何表示的?它是一个大的物体,还是许多小的物体?如果是后者,那么是否有可能通过在某个时刻处理OpenDJ的实例来“删除”(删除/解除分配)这些相对不常被引用的对象中的某些对象,尽管它们最初是预加载的,因为设置了预加载选项?但通过LDAP或JMX可以获得有关数据库及其缓存利用率的监控信息。缓存实现的细节特定于嵌入式键值存储。但是,预加载缓存并不意味着缓存对象将永远留在缓存中。缓存是一个缓存,当它变满时,对象开始从中移出。