云服务器内容精选

  • 原因分析 导致出现I/O Reactor STOPPED的原因,大致可以分为以下3类: 回调中抛出异常导致。 客户端并发太高导致。 在日志中发现异常后,查看ElasticSearch集群监控指标,如CPU使用率、网络连接数等。 当用户集群配置为5台16U128G的i3.4xlarge.8节点时,且每天上午5点左右会做大量bulk操作,写入大概100G-200G的数据,根据集群监控指标的CPU使用率、网络流入流出速率来看对ElasticSearch节点造成不了压力,网络连接数较高,其它节点情况也相同。但是,有的节点网络连接数高达近9000,5个节点瞬间有将近5万连接数,用户的代码大致是用同一个Rest Client多个线程并发且调用HLRC的bulkAsync接口。客户端一个节点,单是ES的连接就消耗了4-5万个连接数,这种情况很容易造成客户端节点句柄数耗尽,或者连接数耗尽。 ElasticSearch的Rest client导致。建议ElasticSearch完善Rest client,添加exception handler。 Apache(HLRC和LLRC都使用了Apache HTTPComponents Async Client)手册中提到,在与会话通道交互过程中有些I/O异常是可以预料的,这些异常可能会导致单个session终止,但不会影响I/O Reactor和其他session。但某些情况下,当I/O Reactor本身遇到内部问题是,例如底层NIO的一些类中的I/O异常或者没被handle的一些Runtime Exception。这些异常是致命的,会使I/O Reactor关闭。Apache官方建议重写IOReactorExceptionHandler接口。 图3 重写IOReactorExceptionHandler接口 但是尝试了重写ExceptionHandler并放到HLRC的配置中,并通过在回调中抛出异常来模拟异常场景,最后发现这种回调的异常并不会被IOReactorExceptionHandler捕获,运行脚本后也没有异常抛出,所以此处IOReactorExceptionHandler的实现并不好验证。通过ElasticSearch社区issue中其他开发者的验证,添加了IOReactorExceptionHandler后跑很久也不会有问题。所以建议添加IOReactorExceptionHandler,但是注意不要忽略所有异常。 Elasticsearch Rest Client需要有一个exception handler,而不是让用户通过设置IOReactorExceptionHandler来处理异常,且这种方式也不会解决所有的异常。
  • I/O Reactor STOPPED是什么问题? 首先根据调用栈可以定位到报错来自CloseableHttpAsyncClientBase中的90行,如下图所示: ensureRunning()方法是在每次请求执行开始的时候调用,用来确认client状态是否为ACTIVE,如果不是ACTIVE,则会报错。然后观察CloseableHttpAsyncClientBase中的status何时会变成STOPPED,发现有且仅有两处会set为STOPPED,如下图所示: 图1 第一处STOPPED 图2 第二处STOPPED 由于客户不会手动关闭客户端之后再调用接口,所以有且仅有第一处会导致status切换为STOPPED状态。 对于第一处STOPPED,reactorThread线程是用来在io events发生时调度io events,当内部抛出异常时,最终会将status改为STOPPED状态。然后在bulkAsync请求的回调中抛出异常验证status的状态切换,如下图所示: 当请求失败,status会切换为STOPPED且I/O Reactor将关闭,并使HLRC实例卡住。后续使用该HLRC实例调用任何请求都会失败。此处手动抛出异常是为了复现问题,生产环境中很难分辨是什么原因导致I/O Reactor关闭。
  • 快照仓库找不到 在 云搜索服务 的“集群管理”页面上,单击集群“操作”列的“Kibana”访问集群。 在Kibana的左侧导航中选择“Dev Tools”,单击“Get to work”,进入Console界面。 Console左侧区域为输入框,右侧为结果输出区域,为执行命令按钮。 执行命令GET _snapshot/_all返回为空,或者执行命令GET _snapshot/repo_auto/_all返回如图1提示错误,这个表示没有设置快照。需要重新修改快照配置信息。 图1 返回信息 单击集群名称,进入集群基本信息页面,选择“集群快照”,进入集群快照页面。 单击“基础配置”后面的,修改基础配置。 修改完成后,单击“确定”。 如果保存后还不能生效,可以尝试修改下备份路径,换一个不一样的值保存然后再修改回来。 父主题: 功能使用类
  • 为什么提交代码时会触发执行没有监听代码提交事件的流水线? 提交代码时触发执行了没有监听代码提交事件的流水线(即没有监听push事件的流水线),可能是以下原因导致: 修改并提交了合并请求的源分支代码,且该合并请求没有关闭。 在流水线上配置了合并请求时触发,且监听了更新事件。 图1 合并请求触发事件 综合上述两个条件,修改未关闭合并请求的源分支代码,且在流水线监听了合并请求的更新事件,提交代码时,会触发该合并请求的更新事件,如果该合并请求的目标分支在流水线监听范围内,则会触发执行相应的流水线。 父主题: 功能使用
  • 开启AI质检任务 AI质检任务采集开启和驳回可参考执行采集 关于采集模板中的其他字段说明可详见表3。 关于智能评审规则如下表:(单选) 表1 智能评审规则 规则1 任意一张照片同时满足所有对象,条目即通过 规则2 任意一张图片满足其中一个对象,则条目通过(适用于:1.扩容条件多元化项目的站点;2.其他场景配置需慎重) 规则3 每个对象在多张照片中都有识别到符合配置的数量,则条目通过 规则4 任意张照片同时满足所有对象,条目即通过 规则5 任意1张照片有对象不满足,则条目不通过 一个KCP可配置多个item,一个item可对应单个或多个智能对象,用户根据评审规则对应区分智能对象建立item,可以更好的通过AI评审。 父主题: AI质检功能使用介绍
  • 测试发布 应用创建成功后,可发布测试版应用。 在“版本发布管理”界面,单击对应应用操作栏的“发布”。 在弹出的发布界面,选择“测试发布”,单击“选择人员”,可添加测试体验的人员。 单击“发布”,发布测试版成功。 获取测试版本,是为了进行充分体验和测试,以保证验证通过。可通过以下两种方式获取测试版本: 在“版本发布管理”页面,确认待测试的版本记录,点击 “下载”,即可将测试版本对应的安装包下载到本地。 在“云尊享应用信息”页面点击“下载应用”,查看企业内应用商店下载链接和二维码,即可扫码或点击链接进行下载。 父主题: 功能使用