草庐IT

java性能安全:OOM问题排查、Arthas分析高CPU问题、防止Dos攻击

一、OOM问题分析流程:第一步:进程分析,分析老年代回收次数和消耗时间第二步:日志分析,找出OOM发生时间的日志来锁定执行方法,对应的机器ip第三步:找到对应的ip机器查看,进一步分析第四步:下载的dump,使用mat分析堆内存,找到堆占用率前3,查看堆指向问题产生:例如查看新生代最高600M,如果大数据量调用,jvm会把产生的大对象分配在新生代,新生代full gc后放到老年代,老年代gc后触发OOM,就会像类似死循环一样,一直full gc了解决方案:1、临时方法:        ①先进行扩容    ②先将任务先降下来2、后续解决问题方案: ① 计算密集型服务与IO/存储密集型服务分割开来

java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B 的错误问题排查fabric-sdk-java

使用maven开发java项目对接fabric区块链的时候,通常需要使用fabric-sdk-java的jar包,目前最新版本是fabric-sdk-java2.2.22对接了fabric2.5.3环境,在调试时提示java.lang.NoSuchMethodError:kotlin.collections.ArraysKt.copyInto([B[BIII)[B错误。经过排查发现是因为jar包中的okio和okhttp的包冲突导致的。排查可以使用idea查找依赖的关系和版本,在pom.xml文件里面右键Maven→ShowDependencies...或者使用快捷键Ctrl+Alt+Shif

k8s跨node curl 访问不通问题排查解决

参考连接:https://blog.csdn.net/u014299266/article/details/122325327问题是这样的:三台云服务器:部署了三个master+三个node,发现在其中一台master上,验证能够正常访问其他工作节点上的pod。发现curl不了,只能curl分配到本机的pod,后面才发现是路由转发策略问题导致!一下是步骤和解决方式:iptables-L-nChainFORWARD(policyDROP)是Linuxiptables防火墙中的一个规则链,用于控制转发流量的访问。当该规则链的策略(policy)被设置为DROP时,表示该规则链默认不会转发任何数据包

Nginx SSL_PROTOCOL_ERROR 问题排查与解决办法

在使用Nginx作为反向代理服务器时,有时候会遇到SSL_PROTOCOL_ERROR错误。这个错误表示SSL/TLS握手过程中出现了问题,导致连接无法建立或者无法正常通信。本文将介绍一些常见的排查步骤和解决办法来解决这个问题。检查SSL/TLS配置首先,我们需要检查Nginx的SSL/TLS配置是否正确。打开Nginx的配置文件,在相应的服务器块中查找SSL相关的配置项。确保以下配置项正确设置:server{listen443ssl;server_nameexample.com;ssl_certificate/path/to/certificate.crt;ssl_certificate_k

android - AdMob:升级版AdMob广告单元ID排查

我最近刚刚升级到新版AdMob(之前的版本称为旧版AdMob)。我将我的信息从旧版AdMob导入到升级版。我现在不确定如何添加新的广告单元。我有两(2)个广告。一个是主屏幕广告(广告1),另一个在不同的屏幕上(广告2)。广告1是在旧版AdMob下创建的。它下面有一个旧版发布商ID和一个旧版中介ID。我最近制作了广告2。它仅指定了“广告单元ID”。当然,来自Google的开发人员资源尚未更新(https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals?hl=en_US#xml)。我的问题是:1.我是否继续为广告

记录mybatis插件奇怪报错问题There is no getter for property named ‘delegate‘ in ‘class com.sun.proxy.$Proxy的排查

一、背景描述项目要求update/delete必须要有where条件(因为出了一次生产上把一张表的数据全表删除的严重生产事故),并且要打印出where中的条件,所以考虑用mybatis拦截器处理mybatis拦截器实现原理简述在Mybatis中,拦截器可拦截如上图中四种相关操作类的操作方法。通过阅读源码可知,执行顺序为:Executor->StatementHandler->ParameterHandler->StatementHandler->ResultSetHandler其中:StatementHandler类中包含针对query、update操作的具体拦截方法。因此,拦截基于State

记一次 RestTemplate 请求失败问题的排查 → RestTemplate 默认会对特殊字符进行转义

开心一刻  今天中午,侄子在沙发上玩手机,他妹妹屁颠屁颠的跑到他面前  小侄女:哥哥,给我一块钱  侄子:叫妈给你  小侄女朝着侄子,毫不犹豫的叫到:妈!  侄子:不是,叫妈妈给你  小侄女继续朝他叫到:妈妈  侄子受不了,从兜里掏出一块钱说道:我就只有这一块钱了,拿去拿去  小侄女最后还不忘感谢到:谢谢妈妈!  侄子彻底奔溃了,我在一旁笑出了鹅叫声需求背景  需求很简单,就是以 HTTP 的方式下载 OSS 上的文件,类似如下  分两步  1、获取文件的下载地址( HTTP地址 )  2、根据下载地址下载文件  第1步不是本文的重点,略过,我们只需要实现第2步,是不是很简单?问题复现  目前

记录一次因内存不足而导致hiveserver2和namenode进程宕机的排查

背景最近发现集群主节点总有进程宕机,定位了大半天才找到原因,分享一下排查过程查询hiveserver2和namenode日志,都是正常的,突然日志就不记录了,直到我重启之后又恢复工作了。排查各种日志都是正常的,直到查看Grafana,发现内存满了在这个节点下已无内存资源可用,在服务宕掉的节点内存使用突然下降,猜测是linux内核的杰作,故查询系统日志grep"Outofmemory"/var/log/messages果然存在因OOM被杀掉的进程进程被杀的原因Linux内核有个机制叫OOMkiller,全称为OutOfMemorykiller,很形象的一个名字——内存溢出杀手,这个机制会监控那些

Spring redis使用报错Read timed out排查解决

文章目录使用场景报错信息解决方式使用场景我们使用redis作为缓存服务,缓存一些业务数据,如路口点位信息、渠化信息、设备信息等有一些需要实时计算的数据,缓存在redis里,如实时信号周期相位、周期内过车数量等有需要不同服务访问的数据,使用redis作为共同可访问操作的缓存空间报错信息在数据库数据变动时,需要清楚redis里的缓存,等下次查询需要时从数据库查询,再写入redis此时删除数据报错,核心报错信息Readtimedout,连接超时检查了下,redis服务正常具体报错信息,分两个时间点的报错,(截取部分)如下:报错日志一JedisConnectionException:2023-03-2

OpenHarmony 4.0 源码编译hb 问题排查记录

OS:Ubuntu22.04x86_64下载好Openharmony4.0Beta2的源码$pip3installohos-build$cdopenharmony-4.0b2$hbsetTraceback(mostrecentcalllast):File"/home/loongson/.local/bin/hb",line8,insys.exit(main())File"/home/loongson/.local/lib/python3.10/site-packages/hb/__main__.py",line49,inmaintopdir=find_top()File"/home/loong