记录一个正则表达式 cpu 100%的问题

记一次Java程序占用CPU100%问题 前言:昨天下午3点半左右突然收到Zabbix监控报警,某服务器CPU占用到了100%满负荷状态,话不多说赶紧登上服务器一看究竟,这里记录下解决步骤: 一、用top命令进行查看(大写P或小写m都可以),确定是哪个java程序占用CPU高,找到其对应的pid。 昨天忘记了top截图,很尴尬,但是记得其pid为11101。 查询昨天zabbix历史记录,这里附上一张zabbix监控CPU截图: 二、查... 阅读详情

昨天一个同事找看个问题,请求某个接口在参数长一点的时候总是超时,查看atop信息,发现cpu几乎耗尽,atop信息如下

占用cpu最高的是他的进程,怀疑写了死循环,jstack发现如下

明显是有循环调用了,cpu爆的原因和 https://yq.aliyun.com/articles/25576 的一样,都是Curly方式,不过连接里很多是源码解析比如type=0,回到我们的问题,我们的正则表达式是怎么写的呢?

^(\\w*|\\W*)+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$

想匹配email

问题解决

修改正则表达式为

^[\\w*|\\W*]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$

修改点为小括号改为方括号

从零到精通:BLDC电机驱动电路详解与设计思路 这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。 阅读详情

相关推荐

高通 Gen AI 推理扩展 (GENIE)(5):实战指南与Engine API深度解析

本文深入解析高通Gen AI推理扩展(GENIE)的Engine API核心功能与实战应用,涵盖引擎实例化、多引擎动态切换、性能调优及跨平台部署等关键技巧。通过详细代码示例和性能数据,帮助开发者高效利用GENIE进行AI推理,提升应用性能与稳定性。

weixin_29065959的博客 463

一个正则表达式引发的血案,让线上CPU100%异常!

作者:陈树义 | 该文来自腾讯云+社区 陈树义的专栏 前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共...

weixin_33890526的博客 1233

Agisoft Metashape相机标定笔记

使用Metashape进行自动相机标定是可能的。(可选:使用打印的棋盘格图案,但需保证它是平坦的且单元格是正方形)。相机标定步骤支持全相机标定矩阵的估计,包含非线性的畸变参数。相机模型的细节请参照附录D——相机模型板块。:在通用的工作流程中,相机标定步骤可以跳过。因为Metashape会在图像定向过程中进行相机自标定。但是,如果定向结果不稳定,例如,由于影像之间缺乏连接点,额外进行单独的相机标定步骤也许是有用的。

天桥飞熊的博客 3972

正则表达式引起的异常,CPU100%

正则表达式造成CPU100%的问题回溯 线上正常运行,突然在某个瞬间发现线上几十台机器突然全部出现CPU100%的报警,马上手动使用工具下载jstack日志,发现已经无法下载,接着联系运维获取jstack日志;得到jstack日志马上查看是否存在业务代码的包,比如 com.xxx.xxx.a...

chu69263的博客 543

计算蛋白质结构中氨基酸之间的方向和方位

方向 (Direction):通过相邻氨基酸的 CαCα​ 原子坐标差值,得到方向向量,描述两个氨基酸之间的几何方向。方位 (Orientation):可以通过二面角(如 Psi)来表示相邻氨基酸之间的旋转关系,或者通过局部坐标系(基于 NN、CαCα​、CC 原子)描述残基的空间取向。这些计算是研究蛋白质结构动力学、折叠过程、以及相互作用的基础,尤其是在使用机器学习和深度学习模型进行蛋白质结构预测时,这些几何信息有助于更好地捕捉残基之间的空间关系。

qq_27390023的博客 1679

Android11.0系统中适配EC20模块4G及GPS功能

本文主要描述在RK3568Android11中适配EC20模块,启用4G与GPS功能。

yjz_0314的博客 2791

正则表达式 cpu100%

这一段时间发现,在项目实时查询交易中总是出现cpu100%的情况,但是程序中并未出现死循环的情况,最后通过打印日志发现,问题出现在转大小写的方法中: public static String lowerCaseJsonKey(String jsonInput){ int i=0; String originalInput = jsonInput; Str...

weixin_33869377的博客 295

医疗 java 实战:2.HIS(医院信息系统)对接

HIS(医院信息系统)是医疗机构的核心管理系统,负责患者的挂号、医嘱、收费、病历管理等核心业务。为了与其他系统(如 LIS、PACS、EMR、医保系统)实现数据互通,HIS 需要进行多种方式的对接。:HIS 需要确保与 LIS、PACS、EMR 之间的数据实时同步,避免数据丢失或延迟。:医生在 HIS 开医嘱后,检验信息需要同步到 LIS,LIS 处理检验后返回结果。:HIS 与 LIS、PACS、EMR 交互患者信息、医嘱、检验报告。:HL7 V2.x 消息(ADT、ORM、ORU 等)。

weixin_44743723的博客 3280

正则表达式导致 CPU 高的问题排查过程

正则表达式导致 CPU 高的问题排查过程 这篇文章记录一个正则表达是导致 CPU 高的问题排查。由于无法直接使用线上的代码测试,所以我自己把代码整理了下来,具体代码如下: public class AppMain { public static void main(String[] args) throws InterruptedException { final String regex="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z

小白龙的博客 1243

手把手教你学Simulink--基于高频与高速信号处理的滤波器场景实例:毫米波雷达中匹配滤波器的多目标分辨仿真

在自动驾驶、智能交通和工业感知等领域,毫米波雷达(mmWave Radar)因其高分辨率全天候工作和抗电磁干扰能力,成为关键的感知传感器。其核心信号处理算法之一是匹配滤波器(Matched Filter),用于在强噪声背景下最大化信噪比(SNR),实现对微弱目标的检测。在调频连续波(FMCW, Frequency-Modulated Continuous Wave)雷达中,发射信号为线性调频(Chirp)信号。当信号遇到多个目标时,回波是多个延迟版本的叠加。

MHD0815的博客 134

Megatron-LM中的TP、PP、DP、SP、CP并行

SP主要优化的是激活内存,它沿序列维度切分部分激活,适用于较短序列并行。CP主要解决的是长序列的显存问题,它沿序列维度切分所有激活和输入,并且对注意力机制也进行并行处理。二者可以组合使用,特别是当 TP > 1 并且需要处理长序列时,通过启用 SP 和 CP 可以最大化地优化内存使用和加速计算。

u013250861的博客 860

Linux(2)---记录一次线上服务 CPU 100%的排查过程

Linux(2)—记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% 。如何排查的呢 是通过日志输出错误信息: 得知websocket时时重新 连接的信息,然后找到原因 解决了。 当然这里幸好能通过日志大致分析出原因 那么我就在思考如果日志没有告诉任何信息 但线上CPU还是接近100%那么如何排...

后端元宇宙 573

微信小程序、H5微信公众号网页JSAPI:解决报错requestMerchantTransfer:fail:internal error(使用wx.requestMerchantTransfer错误)

如何解决requestMerchantTransfer:fail:internal error,微信小程序wx.requestMerchantTransfer报错,微信公众号H5网页使用jssdk调用wx.requestMerchantTransfer报错,JSAPI调起用户确认收款报错errMsg:“requestMerchantTransfer:fail:internal error“,微信小程序/H5 调起确认收款界面,JSAPI调起用户确认收款,微信公众号(H5),用户发起提现,商家转账给用户,用户

✅ 精选推荐文章 4962

正则表达式回溯导致线上 CPU 100% 的排查全过程

正则表达式是 Java 开发中常用的工具,但很多人只关注匹配正确性,忽略了匹配效率。某日下午,auth-service 实例 CPU 使用率持续满载 12 分钟,伴随接口响应时间从 50ms 飙升到 2.3 秒,错误率从 0.1% 升至 3.2%,Pod 自动重启 3 次。通过 top 定位高 CPU 进程,jstack 导出线程栈发现大量线程阻塞于 UserValidator.isValidPhone 方法,Arthas 火焰图进一步确认耗时集中于 Pattern.matcher 调用。

qq_35107975的博客 510

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java - JVM CPU100%,问题排查

前段时间我们新上了一个新的应用,因为流量一直不大,集群QPS大概只有5左右,写接口的rt在30ms左右。 因为最近接入了新的业务,业务方给出的数据是日常QPS可以达到2000,大促峰值QPS可能会达到1万。 所以,为了评估水位,我们进行了一次压测。压测过程中发现,当单机QPS达到200左右时,接口的rt没有明显变化,但是CPU利用率急剧升高,直到被打满。 压测停止后,CPU利用率立刻降了下来。 于是开始排查是什么导致了CPU的飙高。 问题排查与解决 在压测期间,登录到机器,开始排查问题。 本案例

sinat_36387539的博客 1022

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

生产环境CPU占用飙高问题解决

1 问题来源与背景 问题背景,项目对外提供查询航班舱位接口,对航信黑屏报文做正则解析返回。由于起初对正则不熟悉,对黑屏报文格式规律不清楚,导致写了大量的长正则表达式,生产环境并发量上来(200/s),直接导致CPU使用率峰值徘徊在100%,运维报警反馈。 2 运维报警 3 问题定位与解决 (1)第一步,用jps查看javapid (2)第二步,显示线程列表 ps -mp 42 -o THREAD,tid,time 可以看到CPU占用率很高线程,...

飞奔的小强 1204

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HTTP传输接收服务的一次CPU占比100%排查

笔者有个HTTP数据接收的项目上线,接收了大量的客户端HTTP请求,部署在三台LINUX 服务器上。 WEB容器采用TOMCAT9,使用JAVA 开发,负责接收客户端持续不断的JSON请求,服务端负责解析为JAVA对象,并对每个对象的属性作合法性验证(比如,某个属性必须是16位的数字和字母且允许|间隔等待)以及相关性验证(比如 某个值必须等于A+B+C)。 上线几日来,每天接收80万的基本流水以及800万条的扩展流水。 突然某天,客户端那边报告,发送时有大量的连接超时(每次请求达到几十秒才能完成,正常

安优小青和他的程序生活 1274

一键定位java 线上服务 CPU 100%

传统方法: top oder by with P:1040 // 首先按进程负载排序找到 axLoad(pid) top -Hp 进程PID:1073 // 找到相关负载 线程PID printf “0x%x\n”线程PID:0x431 // 将线程PID转换为 16进制,为后面查找 jstack 日志做准备 jstack 进程PID | vim +/十六进制线程PID - ...

任我行的博客 729

云计算之路-阿里云上:奇怪的CPU 100%问题

这篇博文记录一下6月1日在阿里云上遇到的奇怪的CPU 100%问题,希望多年以后能真相大白。 那天负载均衡(SLB)中只放了1台云服务器(平时都放2台),由于是节假日,虽然只放了一台,但这台服务器的负载也没有平时高。但在上午的时候突然出现了CPU 100%问题,然后切换到另外一台云服务器恢复正常。 下午的时候,我们将负载又切换回那台出问题的服务器,正常运行一段时间后,CPU又飙到100%。...

weixin_30917213的博客 166

【JVM深度解析】第16篇:JVM配置优化案例三:CPU 100%排查(线程死循环)

摘要 本文记录了一次线上CPU 100%故障的排查全过程。金融交易系统突发CPU满载导致服务瘫痪,通过top命令定位高负载线程,结合jstack线程快照分析,最终发现是OrderMatcher.match()方法中的正则表达式预编译遗漏引发死循环。问题根因是用户输入的正则表达式".(A+|B+|C+)+."导致灾难性回溯,每次调用都重新编译模式,产生指数级计算量。解决方案包括:1)预编译正则表达式并缓存;2)添加执行超时保护;3)限制用户输入的正则复杂度。修复后CPU使用率从100%降至

xyghehehehe的专栏 50

藏在正则表达式里的陷阱-----转发记录问题

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所有的堆栈都指向了一个名为 validateUrl 的方法,这样的报错信息在堆栈中一共超过 100 处。通过排查代码,我们知道这个方法的主要功能是校验 URL 是否合法。 很奇怪,一个正则表...

weixin_34235105的博客 182

Java应用CPU 100%排查:从jstack到系统化治理

CPU使用率是衡量系统性能的核心指标之一,其异常飙升往往意味着应用存在性能瓶颈。从技术原理上看,CPU高负载通常由用户态计算密集型任务或系统态频繁的系统调用、上下文切换导致。在Java应用场景中,这直接关系到应用的响应能力和稳定性。通过工具链(如top、jstack、Arthas)进行分层定位,可以快速区分是死循环、锁竞争还是GC问题。这种系统化的排查方法不仅能解决即时故障,更能为构建长效监控体系(如集成APM工具、建立应急预案)提供基础,最终实现从被动救火到主动预防的转变,提升线上系统的可观测性与鲁棒性。

weixin_30252709的博客 412

Java应用CPU问题排查

0、背景 经常做后端服务开发的同学,或多或少都遇到过CPU 负载特别高的问题。尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。 对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步,传统的方案一般是4步: top oder by with P:1040 // 首先按进程负载排序找到 a...

hellozhxy的博客 696

java 正则 cpu 100_这六个原因真的可以使Java应用程序的CPU使用率飙升到100%吗?...

点击上方的“代码农户的冥想记录”,然后选择“设为明星”高质量文章,及时交付问题1. 无限while循环会导致CPU使用率飙升吗? 2.经常使用Young GC是否会导致CPU使用率猛增? 3.具有大量线程的应用程序的CPU使用率是否很高? 4.高CPU使用率的应用程序的线程数是多少? 5.处于阻塞状态的线程会导致CPU使用率飙升吗? 6.分时操作系统中的CPU会消耗us还是sy?想法1.如何计算C...

weixin_39837867的博客 150
上一篇: 一个进程里两处日志时间时区不一样的问题
下一篇: 性能提升5000倍,我都不敢信
coder_xia
博客等级 码龄17年 151粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值