性能问答>tomcat进程环境变量,对于jni本地调用是否生效>
1回复
2年前

tomcat进程环境变量,对于jni本地调用是否生效



问题本身是比较常见的GLIBC 64M内存问题, (参见https://xie.infoq.cn/article/e6fa07979e4375367ae9c2795)

常见的解决方案: 设置环境变量 MALLOC_ARENA_MAX=4 来控制glibc的内存分配块的上限

但由于涉及jni调用,包括了操作系统复杂的环境变量生效层级, 因此有以下疑问。

 

 

应用处理链路:
java web app(tomcat)->  jmaick库(java图片处理接口) -> (jni调用) imageMagick(操作系统本地图片处理软件) -> glibc(操作系统本地库) -> 内存分配器(默认ptmalloc,第三方tcmalloc/jemalloc) ->  分配本地内存 (堆外内存)

 

疑问:
admin用户启动tomcat,进程的环境变量(MALLOC_ARENA_MAX=4)(非全局变量),是否能够有效控制内存分配上限?

jni调用中,环境变量生效机制是什么样的?

742 阅读
请先登录,查看1条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步