首页 > 解决方案 > ignite 上的查询导致 ignite 节点无响应

问题描述

当我们从 table 中选择 count(*) 时,整个 ignite 服务器对查询的执行变得无响应。查询执行时间也非常长,如果记录数越高,查询执行时间也会越长。

即使查询需要很长时间,整个服务器也不应该变得无响应(甚至无法 ssh),所有其他查询都会超时。Apache 点燃 2.7.5 版

Apache Ignite 版本:2.7.5

点燃持久性已启用 (true)

分区模式下的 2 节点集群

RAM - 每个节点 150 GB

JVM xms 和 xmx 20G

记录数 - 1.6 亿

JVM 选项 -

/usr/java/jdk1.8.0_144/bin/java -XX:+AggressiveOpts -server -Xms20g -Xmx20g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError - XX:HeapDumpPath=/etappdata/ignite/logs/PROD/etail-prod-ignite76-163/logs -XX:+ExitOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX: NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Xloggc:/etappdata/ignite/logs/PROD/etail-prod-ignite76-163/gc.log -XX:+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=假-Dcom.sun.management.jmxremote.authenticate=假-Dcom.sun.management.jmxremote.local.only=假-Djava.rmi。 server.hostname=etail-prod-ignite76-163 -XX:MaxDirectMemorySize=4g -javaagent:/tmp/apminsight-javaagent-prod/apminsight-javaagent.jar -Dfile.encoding=UTF-8 -XX:+UseG1GC -DIGNITE_QUIET=错误 -DIGNITE_SUCCESS_FILE=/ignite/apache-ignite-2.7.5-bin/work/ignite_success_7d9ec20d-9728-475a-aa80-4355eb8eaf02 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=49112 -Dcom .sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -DIGNITE_HOME=/ignite/apache-ignite-2.7.5-bin -DIGNITE_PROG_NAME=./bin/ignite.sh -cp /点燃/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 config/config-cache.xml

标签: ignite

解决方案


对于诸如SELECT * FROM table(没有 WHERE)之类的查询,建议启用惰性模式,以便 Ignite 不会尝试一次将整个结果集存储在堆上。

您可以通过 JDBC/ODBC 驱动程序属性/连接字符串或在SqlFieldsQuery.


推荐阅读