在InstDB系统审批数据过程中,遇到“审批异常”通常涉及两种情况,每种情况都有其特定的排查与解决方案。
第一种情况:审批回调至DataSpace时发生异常
此异常可能由网络问题或DataSpace服务异常引起。解决步骤如下:
1.检查DataSpace服务状态:确保DataSpace服务可正常访问。
2.验证网络连接:若服务状态正常,进一步检查网络设置,确认无访问限制。
第二种情况:ElasticSearch数据搜索引擎运行异常
当ElasticSearch运行出现问题时,可通过以下命令查看详细日志:
docker logs -f instdb_elasticsearch
日志中可能出现的两种典型问题及解决方案如下:
问题一:虚拟内存区域限制过低
如果是日志中出现“max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]”这种提示内容,则是因为Elasticsearch或某些其他基于Java的、对内存映射文件(memory-mapped files)有较高需求的应用程序时。错误信息的核心内容是关于Linux内核参数vm.max_map_count的设置过低。所以要解决这个问题,您需要增加vm.max_map_count的值。这通常可以通过编辑/etc/sysctl.conf文件来实现,具体执行如下命令:
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p /etc/sysctl.conf/
docker restart instdb_elasticsearch
问题二:CPU不支持AVX指令集
如果是日志中出现“OpenJDK 64-Bit Server VM warning: UseAVX=2 is not supported on this CPU, setting it to UseAVX=0”这种提示内容,则是因为Elasticsearch运行在基于Java的OpenJDK环境中时。Elasticsearch是一个基于Lucene构建的搜索引擎,而Lucene和Elasticsearch的某些操作可能会受到JVM参数和底层硬件特性的影响。一般面对这种问题有3个解决方案:
1.确认CPU支持:首先,确认您的CPU是否支持所需的AVX级别。如果不支持,那么您可能需要接受性能上的限制。
2.调整JVM参数:如果CPU支持AVX但不支持AVX2,您可以尝试调整JVM启动参数,例如设置-XX:+UseAVX来启用AVX但不启用AVX2。这可以通过修改Elasticsearch的启动脚本或配置文件来实现。
3.升级硬件:如果性能是关键因素,并且您的应用程序受益于AVX2或更高级别的AVX指令集,那么考虑升级到支持这些特性的CPU可能是一个解决方案。
如果是没办法尽快升级硬件的情况下,可以先通过第二种调整JVM参数的方式来临时解决这一问题,具体执行如下命令:
1.先把容器内部的jvm.options文件拷贝到当前服务器,比如目录放在/data
docker cp instdb_elasticsearch:/usr/share/elasticsearch/config/jvm.options /data
2.打开jvm.options文件并修改修改末尾的UseAVX参数
vim jvm.options
3.修改完成后将jvm.options文件拷贝到容器目录
docker cp jvm.options instdb_elasticsearch:/usr/share/elasticsearch/config/jvm.options
3.重启Elasticsearch
docker restart instdb_elasticsearch
以上是常见的两种方案,可以解决在InstDB审批数据时中出现“审批异常”的情况,如果上述没能解决问题,请联系软件栈团队做技术支持。



