可以通过检查 Mle_heap_status
和 Mle_memory_used
状态变量的值来获取 MLE 组件的内存分配和使用信息。在组件通过创建或执行使用 JavaScript 的存储程序激活之前,不会分配内存。这意味着,在组件处于活动状态之前,Mle_heap_status
的值为 Not Allocated
,而 Mle_memory_used
的值为 0
。当组件处于活动状态时,Mle_heap_status
应为 Allocated
,而 Mle_memory_used
应为 0 到 100 之间的整数(含);后一个变量表示 MLE 组件使用的内存占其分配内存的百分比,向上舍入到最接近的整数。如果需要回收不再使用的内存,Mle_heap_status
也可能为 Garbage Collection
。
默认情况下,分配给 MLE 组件的内存量为 64MB(67108864 字节)。您可以通过将 mle.memory_max
系统变量设置为最大 8GB(8589934592 字节)来调整此值;最小可能值为 32MB。增加此值时,您应该记住,必须保留足够的内存供 MySQL 服务器的其他用途使用,并确保系统进程正常运行。
如果将 mle.memory_max
设置为大于系统总内存量的值,则会导致未定义的行为。
只有在 MLE 组件处于非活动状态时,才能更改分配给它的内存量。要在安装时将分配设置为非默认值,请使用 INSTALL COMPONENT 'file://component_mle' SET GLOBAL mle.memory_max = 1024*1024*512
之类的语句,或者在安装后但在使用任何 JavaScript 存储程序之前进行设置。
您可以通过检查 Mle_oom_errors
状态变量的值来获取 MLE 存储程序引发的内存不足错误的数量。
有关多语言引擎组件使用的线程的信息,您可以参考 Mle_threads
状态变量,该变量显示当前附加到 GraalVM 的物理线程数。Mle_threads_max
显示自组件变为活动状态以来,在任何时间点附加到 GraalVM 的最大并发物理线程数。