当我们从表中选择count(*)时,整个ignite服务器变得对查询的执行没有响应。查询执行时间也非常长,如果记录数越多,查询执行时间就会越长。
即使查询花费了很长时间,整个服务器也不应该变得没有响应(甚至无法ssh),所有其他查询都会超时。Apache ignite版本2.7.5
Apache Ignite版本: 2.7.5
启用了Ignite持久性(true)
分区模式下的2节点群集
RAM -每节点150 GB
JVM xms和xmx 20G
记录数量-1.6亿条
JVM选项-
/ -XX:HeapDumpPath=/etappdata/ignite/logs/PROD/etail-prod-ignite76-163/logs / -Xloggc:/etappdata/ignite/logs/PROD/etail-prod-ignite76-163/gc.log /jdk1.8.0_144/bin/java -XX:+AggressiveOpts -server -Xms20g -Xmx20g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M javaXX:+PrintAdaptiveSizePolicy -XX:+UseTLAB -verbose:gc -XX:+ParallelRefProcEnabled -XX:+UseLargePages -XX:+AggressiveOpts -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true -Djava.net.preferIPv6Stack=false -Djava.net.preferIPv6Addresses=false -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8996 -Dcom.sun.management.jmxremote.rmi.port=8996 -Dcom.sun.management.jmxremote.ssl=false etail -Djava.rmi.server.hostname=etail-prod--javaagent:/tmp/apminsight-javaagent-prod/apminsight-javaagent.jar 76-163 -DIGNITE_SUCCESS_FILE=/ignite/apache-ignite-2.7.5-bin/work/ignite_success_7d9ec20d-9728-475a-aa80-4355eb8eaf02 -Dcom.sun.management.jmxremote.authenticate=false =UTF-8 -XX:MaxDirectMemorySize=4g -XX:+UseG1GC -DIGNITE_QUIET=false -Dcom.sun.management.jmxremote apache -Dcom.sun.management.jmxremote.port=49112 -Dcom.sun.management.jmxremote.ssl=false -DIGNITE_HOME=/ignite/apache-ignite-2.7.5-bin -DIGNITE_PROG_NAME=./bin/ignite.sh配置/ignite/apache-ignite-2.7.5-bin/libs/:/ignite/apache-ignite-2.7.5-bin/libs/ignite-indexing/:/ignite/apache-ignite-2.7.5-bin/libs/ignite-spring/:/ignite/apache-ignite-2.7.5-bin/libs/licenses/ org.apache.ignite.startup.cmdline.CommandLineStartup配置/ -cp -cache.xml
发布于 2020-12-07 19:53:24
对于像SELECT * FROM table (没有WHERE)这样的查询,建议启用lazy mode,这样Ignite就不会一次尝试将整个结果集存储在堆上。
您可以通过JDBC/ODBC驱动程序属性/连接字符串或在SqlFieldsQuery上启用它。
https://stackoverflow.com/questions/65126374
复制相似问题