java程序的VIRT很高10G以上,研究了网上文章得出结论:不影响也不会占用内存,不用管。
VIRT是虚拟的地址空间,在使用 mmap 并设置 MAP_NORESERVE 标志时并不会占用内存或交换区。通过pmap -x可以查看到anon分配的内存块,是glibc在版本 2.10 引入的 arena 新功能导致对每个线程都分配一个64M(虚拟内存)本地arena来加速多线程的执行,所以多线程程序分配的虚拟内存会比较多。不需要在意,实在介意可以设置环境变量MALLOC_ARENA_MAX可以控制块的数量。