1回复
3年前
-Xms 选项好像在 GKE 上被忽略,但 -Xmx 生效了
我在 GKE 集群上运行 java 应用(ksqldb 0.15.0),配置了 -Xms 3G , -Xmx 5G。
-Xmx 运行正常,但 -Xms 好像没生效。
运行命令如下:
java -cp /usr/share/java/ksqldb-rest-app/*: -Xms3G -Xmx5G -server -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+ExplicitGCInvokesConcurrent -XX:NewRatio=1 -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dksql.log.dir=/usr/ 日志 -Dlog4j.configuration=file:/etc/ksqldb/log4j.properties -Dksql.server.install.dir=/usr -Xlog:gc*:file=/usr/logs/ksql-server-gc.log:time, 标签:filecount=10,filesize=102400 io.confluent.ksql.rest.server.KsqlServerMain /etc/ksqldb/ksqldb-server.properties
我用了 jstat 来排查,结果如下;
NGCMN | NGCMX | NGC | S0C | S1C | EC | OGCMN | OGCMX | OGC | OC | MCMN | MCMX | MC | CCSMN | CCSMX | CCSC | YGC | FGC | CGC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
192 | 2621440 | 1572864 | 157248 | 157248 | 1258368 | 64 | 2621440 | 1572864 | 1572864 | 0 | 1163264 | 132268 | 0 | 1048576 | 18828 | 505 | 0 | 4 |
NGCMN + OGCMN 的期望值为 3145728(=3GB),但实际值为 256。
但是 NGMCX + OGCMX 的总和是 5242880(=5GB),所以 -Xmx 正确生效。
运行 Pod 的主机有 15GB 的物理内存。
我漏掉什么了吗?
1364 阅读