PLC4X踩坑记录

plc4x引起的oom

使用Jprofiler查看dump文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由上可以看出有大量的NioEventLoop对象没有释放

PlcConnection#close

设备断连重连后导致的oom,看源码close方法主要是channel通道关闭。
在这里插入图片描述

修改NettyChannelFactory源码

在这里插入图片描述

plc4x设计思想是一个设备一个连接,而不是一个网关一个连接

修改protocol字段为public

在这里插入图片描述
修改unitIdentifier字段为public

在这里插入图片描述
每次下发请求前指定从机ID

在这里插入图片描述

总结

若有不对之处还望批评指正,后期打算自己封装一个modbus组件,开源组件好是好,但是遇到问题还需要一步步排查或者有些地方不满足需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/23534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s ingress获取客户端客户端真实IP

背景 在Kubernetes中,获取客户端真实IP地址是一个常见需求。这是因为在负载均衡架构中,原始请求的源IP地址会被替换成负载均衡器的IP地址。 获取客户端真实IP的需求背景包括以下几点: 安全性:基于客户端IP进行访问控制和认证授…

信息学奥赛一本通——1155:回文三位数

文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】 AC代码 题目 【题目描述】 如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如 6886 6886 6886就是一个回文数,求出所有的既是回文数又是素数的三位数。 【输入】 (无…

PyTorch中nn-XXX与F-XXX的区别

nn.XXX与F.XXX PyTorch中torch.nn**(以下简写为nn)中的模块和torch.nn.functional(以下简写为F)**中的模块都提供了常用的神经网络操作,包括激活函数、损失函数、池化操作等。它们的主要区别如下: nn中的…

工厂模式(C++)

定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。 应用场景 在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类…

Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本

Spring Boot、Spring Cloud、Spring Alibaba 版本对照关系及稳定兼容版本 引言 在 Java 生态系统中,Spring Boot、Spring Cloud 和 Spring Alibaba 是非常流行的框架,它们提供了丰富的功能和优雅的解决方案。然而,随着不断的发展和更新&…

Ubuntu中解/压缩命令

一、zip文件 #解压 unzip filename.zip #压缩 zip filename.zip dirname # 递归处理,将指定目录下的所有文件和子目录一并压缩 zip -r filename.zip dirname 二、tar文件 # 解压 tar xvf FileName.tar # 压缩,将DirName和其下所有文件(夹)打包非压…

【ARM Coresight 系列文章 2.3 - Coresight 寄存器】

文章目录 Coresight 寄存器介绍1.1 ITCTRL,integration mode control register1.2 CLAIM寄存器1.3 DEVAFF(Device Affinity Registers)1.4 LSR and LAR1.5 AUTHSTATUS(Authentication Status Register) Coresight 寄存器介绍 Coresight 对于每个 coresight 组件&am…

架构训练营学习笔记:5-3接口高可用

序 架构决定系统质量上限,代码决定系统质量下限,本节课串一下常见应对措施的框架,细节不太多,侧重对于技术本质有深入了解。 接口高可用整体框架 雪崩效应:请求量超过系统处理能力后导致系统性能螺旋快速下降 链式…

各种排序333

冒泡排序 n方 public static void BubbleSort(int[] arr) {int n = arr.Length;for (int i = 0; i < n - 1; i++){for (int j = 0; j < n - i - 1; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}} }选择排序 n方 publ…

Git分布式版本控制工具(详细笔记)

1.设置用户信息 git config -- global user.name"itcast" git config -- global user.email"helloitcast.cn" (邮箱没有什么用&#xff0c;我这里就简单写了) 2.查看配置信息 git config -- global user.name git config -- global user.email 3.为…

考研C语言进阶题库——更新11-15题

目录 11一辆以固定速度行驶的汽车&#xff0c;司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的)&#xff0c;为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少&#xff1f;新的对称 12求小鸡的数量 13坤坤翁母…

DNS入门学习:DNS缓存的原理和作用(中科三方)

在实际业务场景中&#xff0c;DNS解析过程并不总是严格遵循从根域名服务器、顶级域名服务器再到权威域名服务器的一级级查询过程&#xff0c;这只是一个标准状态。为了节省全球查询的时间&#xff0c;同时减轻各级服务器的解析压力&#xff0c;DNS系统中引入了缓存机制。本文中…

Linux运维工程师面试常用知识点总结

Linux运维工程师面试常用知识点总结 一、Linux基础命令部分1.查看某进程所打开的所有文件2.添加一条静态路由3.打包一个目录下文件,除了该目录下某个文件4.提取本地网卡ip地址5.如何在某个文本的每行前面添加#字符6.centos7系统调优7.查询Linux的默认网关8.查找某个文件9.列出…

STM32CubeMx之FreeRTOS的中断优先级+配置

编译运行即可 例如我编写的是一个灯亮500ms 一个等200ms的亮灭 如果他们的优先级是同等的&#xff0c;那么任务都可以实现&#xff0c;时间片会自动切换 但是如果亮500ms的灯 任务优先级更高 还用HALdelay的话 就会让任务二饿死&#xff0c;从而就会只看到任务一的内容 解…

回归预测 | MATLAB实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-BiGRU蛇群算法…

Cilium系列-13-启用XDP加速及Cilium性能调优总结

系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于: 启用本地路由(Native Routing)完全替换 KubeProx…

什么是微服务

微服务的架构特征&#xff1a; 单一职责&#xff1a;微服务拆分粒度更小&#xff0c;每一个服务都对应唯一的业务能力&#xff0c;做到单一职责自治&#xff1a;团队独立、技术独立、数据独立&#xff0c;独立部署和交付面向服务&#xff1a;服务提供统一标准的接口&#xff0…

九、pig安装

1.上传pig包 2.解压文件 3.改名 4.赋权 5.配置环境变量 export PIG_HOME/usr/local/pig export PATH$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$SQOOP_HOME/bin:$PIG_HOME/bin 6.测试

vue-plugin-hiprint 详细使用说明

vue-plugin-hiprint 是一个 Vue.js 插件&#xff0c;用于在 Vue.js 应用中方便地使用 HiPrint 打印插件。HiPrint 是一个基于 Web 的打印插件&#xff0c;可以实现高度自定义的打印功能。 整体代码说明 以下是 vue-plugin-hiprint 的详细使用说明&#xff1a; 安装插件&#…

开发运营监控

DevOps 监控使管理员能够实时了解生产环境中的元素&#xff0c;并有助于确保应用程序平稳运行&#xff0c;同时提供最高的业务价值&#xff0c;对于采用 DevOps 文化和方法的公司来说&#xff0c;这一点至关重要。 什么是开发运营监控 DevOps 通过持续开发、集成、测试、监控…