首批通过分布式安全可靠测评,为关键业务系统打造
桌面版 ODC 内存占用较高
更新时间:2025-06-17 09:01
问题现象
桌面版 ODC 运行过程中通常会占用 2GB 左右内存。
问题原因
Chromium 渲染页面时占用内存
ODC 是一款基于现代 Web 技术的跨平台工具,其采用了 Electron 框架进行跨平台开发。
Electron 是基于 Chromium 进行渲染,Web 版 ODC 与桌面版 ODC 渲染页面时内存占用大小基本相同。
Web 版 ODC 内存占用空间

桌面版 ODC 内存占用空间

使用此方法可以保证 Web 版 ODC 和桌面版 ODC 的一致性,同时可以加快研发的速度。
但是基于 Chromium 会产生内存问题。在系统有足够内存时,Chromium 会占用更多的内存来缓存所需要的内容以加快渲染的速度,但是在其它进程需要内存时,Chromium 会主动释放缓存。因此,系统的可用内存越多,ODC 占用的内存会越大,但是对其它进程的影响非常小,只是在释放缓存后,ODC 的页面速度会变慢。
ODC 中 的 表数据与结果集数据 占用内存
除 Chromium 之外,ODC 的查询表数据与结果集功能同样会占用较多内存。
查询表数据与结果集时会拉取大量的数据,此类数据会存储在内存中,关闭查询窗口后,JavaScript 引擎不会立即释放内存,仅在下一个垃圾回收时才会释放内存,如果可用内存充足,则表数据与结果集数据会更久的保留在内存中。
Java Web 服务端占用内存
桌面版 ODC 中包含一个 Java Web 服务端,Java 程序本身也需要使用较多内存资源。一般来说,在可用内存较多的机器,JVM(Java 虚拟机) 同样会尽可能使用更多内存,从而提供更佳的性能体验。
如上图所示,ODC Java Web 服务占用大约 1GB 内存。
影响的版本
所有版本的桌面版 ODC。
解决方法
推荐 4GB 及以上可用内存环境中配置桌面版 ODC,如果因内存不足导致 ODC 卡顿或退出,请确保机器有足够的空闲 CPU、内存资源。
在 Windows Server 服务器上,如果同时登录使用的用户数量较多,通常可以通过重启服务器来释放资源。
如果系统内存占用达到 90% 以上且未在 ODC 使用大数据量查询时,ODC 的内存长时间维持在 1GB + 窗口数 * 500MB 及以上,可能是内存发生了泄漏,请联系 OceanBase 技术支持进行排查。
如果多个用户同时使用 Windows Server 服务器,例如通过堡垒机浏览器使用 ODC 时,会导致内存占用较高,此时推荐使用 Web 版 ODC,Web 版 ODC 是通过浏览器访问,由 odc-server 服务器承担计算、内存资源,对堡垒机的资源要求会降低。