进程驻留集大小 (RSS) 是否考虑映射为大页面的页面?例如在 Centos 7 上配置为(禁用透明大页面,大页面池配置为最小值:0,最大值 200000):
[root@p]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@p]# cat /proc/sys/vm/nr_overcommit_hugepages
200000
[root@p]# cat /proc/sys/vm/nr_hugepages
0
将过程创建为:
你好.java:
import javax.net.*;
class Hello {
public static void main(String[] argv) throws Exception {
System.out.println("Hello!");
Thread.sleep(1000000);
}
}
javac Hello.java
java -XX:+UseLargePages -XX:+AlwaysPreTouch -Xmx120000m -Xms120000m Hello
导致显示结果中的 RSS 列:
ps axu |grep java
显示大约 120Gb?
我在这里最终要弄清楚的是,如果 java 确实在我的配置中预先触摸了大页面,或者其他什么是错误的。