当前位置: 首页 > news >正文

日志级别修改不慎引发的一场CPU灾难

背景

今天下午16.28有同事通过日志配置平台将某线上应用部分包的日志等级由error调为info,进而导致部分机器CPU升高,甚至有机器CPU达到100%,且ygc次数增加,耗时增加到80~100ms。

故障发现与排查

16.28陆续出现线上CPU使用率告警,先紧急扩容以保障线上稳定,同时摘掉了几台CPU100的机器。另外部分网关接口调下游RPC接口出现20%超时,可用率下降。
调用链路看板中有几个rpc接口tp999增加,网关超时对应的接口与rpc无关,为本地缓存 + 分布式缓存的数据。分布式缓存监控稳定,tp999在5ms之内。由此基本可以判断是机器内部的原因。
找到网关调用超时的一条记录,进行排查,发现日志打印合理,但接口出入参的时差很大,且所在机器ygc频繁,同时耗时增加。这里还无法找到问题根源,我们进一步分析。
选中某台CPU高的机器,观察实时日志,可以发现出现了大量的rpc接口超时,且日志输出迅速。由此基本可以判断是日志出了问题,检查日志平台的配置,发现在16.28有同事调整了某个包的日志配置,于是同步相关人员恢复原始配置,恢复后,观察10分钟,发现服务趋于稳定。

故障分析

我们这个应用日常CPU使用率在40%左右,有商详、搜索、百补等大流量渠道调用,资源利用率较高。
调用量包括:助手历史信息6k的qps,商详12k的qps,百补9k的qps以及搜索2k的qps和其他接口2kqps等。
随着日志级别的调整,大量的info日志输出到磁盘,这些额外的日志记录需要执行更多的代码逻辑,包括json序列化,磁盘IO等需要消耗更多的 CPU 资源。同时由于对象的序列化,导致内存占用增加,ygc增多,另外CPU利用率升高也导致了ygc耗时增加。继而触发CPU升高,导致部分服务可用率下降。

防范措施

在操作线上日志级别时一定先要分析预计的日志量以及可能涉及的日志范围。
有时为了排查线上问题,会将很多中间节点日志打成info,线上我们一般不需要关注这块,可以将其等级置为error,但是出入参日志需要保留,以防出现线上问题时可以通过预发环境进行复现。
另外,在日常的开发过程中,我们需要尽可能少的打印日志,同时避免重复的日志打印,比如前文打印了ABC,后文数据解析后又打印B,这完全没必要。但是注意,一些核心服务以及中间件的出入参日志需要保留。

总结

线上操作需谨慎,涉及配置调整要多人check再执行,操作后发现问题及时回滚。对于复杂结构的日志不要全文打印,关注核心信息即可。日志级别修改可采用一定的灰度策略,以减少故障影响。

相关文章:

日志级别修改不慎引发的一场CPU灾难

背景 今天下午16.28有同事通过日志配置平台将某线上应用部分包的日志等级由error调为info,进而导致部分机器CPU升高,甚至有机器CPU达到100%,且ygc次数增加,耗时增加到80~100ms。 故障发现与排查 16.28陆续出现线上C…...

FPGA实现SDI视频缩放转UltraScale GTH光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案本博已有的 SDI 编解码方案我这里已有的FPGA图像缩放方案 3、工程详细设计方案工程设计原理框图SDI 输入设备GS2971芯片BT1120转RGB…...

二级C语言题解:矩阵主、反对角线元素之和,二分法求方程根,处理字符串中 * 号

目录 一、程序填空📝 --- 矩阵主、反对角线元素之和 题目📃 分析🧐 二、程序修改🛠️ --- 二分法求方程根 题目📃 分析🧐 三、程序设计💻 --- 处理字符串中 * 号 题目&#x1f…...

利用 Python 爬虫获取按关键字搜索淘宝商品的完整指南

在电商数据分析和市场研究中,获取商品的详细信息是至关重要的一步。淘宝作为中国最大的电商平台之一,提供了丰富的商品数据。通过 Python 爬虫技术,我们可以高效地获取按关键字搜索的淘宝商品信息。本文将详细介绍如何利用 Python 爬虫技术获…...

什么是幂等性

幂等性(Idempotence)是一个在数学、计算机科学等多个领域都有重要应用的概念,下面从不同领域为你详细介绍其含义。 数学领域 在数学中,幂等性是指一个操作或函数进行多次相同的运算,其结果始终与进行一次运算的结果相…...

群晖NAS如何通过WebDAV和内网穿透实现Joplin笔记远程同步

文章目录 前言1. 检查群晖Webdav 服务2. 本地局域网IP同步测试3. 群晖安装Cpolar工具4. 创建Webdav公网地址5. Joplin连接WebDav6. 固定Webdav公网地址7. 公网环境连接测试 前言 在数字化浪潮的推动下,笔记应用已成为我们记录生活、整理思绪的重要工具。Joplin&…...

示例:JAVA调用deepseek

近日,国产AI DeepSeek在中国、美国的科技圈受到广泛关注,甚至被认为是大模型行业的最大“黑马”。在外网,DeepSeek被不少人称为“神秘的东方力量”。1月27日,DeepSeek应用登顶苹果美国地区应用商店免费APP下载排行榜,在…...

【提示工程】:如何有效与大语言模型互动

随着人工智能技术的快速发展,大语言模型(LLM)如 GPT 系列在各类任务中的应用越来越广泛。从文本生成到代码编写,从数据分析到内容创作,这些模型展现出了强大的能力。然而,要充分发挥大语言模型的潜力,关键在于如何设计高质量的提示词(Prompts)。这门技术被称为提示工程…...

操作系统—经典同步问题

补充 互斥信号量mutex初值均为1 同步信号量根据问题实际描述自己设计 生产者-消费者问题 问题描述:一组生产者进程和一组消费者进程 共享一个初始为空、大小为n的缓冲区。(缓冲区:临界资源) 只有缓冲区没满时,生产者…...

profinet工业通信协议网关:提升钢铁冶炼智能制造效率的利器

工业通信协议网关profinet转ethercat(稳联技术WL-PN-ECATM)在钢铁冶炼生产线中的智能应用实践 在现代钢铁冶炼生产中,复杂的设备互联和数据传输对生产效率和质量控制至关重要。本案例详细阐述了某大型钢铁集团通过工业通信协议网关实现生产线…...

Vue基础:计算属性(描述依赖响应式状态的复杂逻辑)

文章目录 引言computed() 方法期望接收一个 getter 函数可写计算属性:计算属性的 Setter计算属性的缓存机制调试 Computed引言 推荐使用计算属性来描述依赖响应式状态的复杂逻辑 computed 函数:它接受 getter 函数并为 getter 返回的值返回一个不可变的响应式 ref 对象。 c…...

leetcode:1534. 统计好三元组(python3解法)

难度&#xff1a;简单 给你一个整数数组 arr &#xff0c;以及 a、b 、c 三个整数。请你统计其中好三元组的数量。 如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件&#xff0c;则认为它是一个 好三元组 。 0 < i < j < k < arr.length|arr[i] - arr[j]| &l…...

BUU27 [SUCTF 2019]CheckIn1

题目是上传文件 直接上传muma.jpg还不成功&#xff1a; 好吧&#xff0c;那做一个图片马上去&#xff0c;换马以后发现还是不行&#xff0c;呃啊啊啊啊 干啥啥不行&#xff0c;搜wp第一名&#xff0c;哎 新面孔&#xff1a;exif_imagetype 函数在 PHP 中用于检测一个文件是否为…...

unity学习30:Audio Source, Audio clip 音效和音乐

目录 1 音乐相关必须要有 Audio listener 和Source 2 Scene里必须要有 Audio listener 3 Audio Source 3.1 Audio Source 就是音源&#xff0c;可播放的音乐clip 分类 3.2 创建Audio Source 3.3 各种属性 3.4 3D sound Settings 4 使用脚本来播放声音 4.1 声明AudioC…...

【Qt 常用控件】输入类控件1(QLineEdit和QTextEdit 输入框)

目录 1.QLineEdit 单行输入框 例&#xff1a;输入个人信息&#xff0c;通过按钮提交 例&#xff1a;为输入框设置验证器&#xff0c;检查输入的电话 例&#xff1a;验证两次输入的密码是否一致 例&#xff1a;是否显示密码按钮,toggled信号。 2.QTextEdit多行输入框 、QPl…...

openEuler22.03LTS系统升级docker至26.1.4以支持启用ip6tables功能

本文记录了openEuler22.03LTS将docker升级由18.09.0升级至26.1.4的过程&#xff08;当前docker最新版本为27.5.1&#xff0c;生产环境为保障稳定性&#xff0c;选择升级到上一个大版本26的最新小版本&#xff09;。 一、现有环境 1、系统版本 [rootlocalhost opt]# cat /etc…...

深入解析:如何利用 Java 爬虫按关键字搜索淘宝商品

在电商领域&#xff0c;通过关键字搜索商品是常见的需求。无论是商家分析竞争对手&#xff0c;还是消费者寻找心仪的商品&#xff0c;获取搜索结果中的商品信息都至关重要。本文将详细介绍如何利用 Java 爬虫按关键字搜索淘宝商品&#xff0c;并提供完整的代码示例。 一、Java…...

STM32上部署AI的两个实用软件——Nanoedge AI Studio和STM32Cube AI

1 引言 STM32 微控制器在嵌入式领域应用广泛&#xff0c;因为它性能不错、功耗低&#xff0c;还有丰富的外设&#xff0c;像工业控制、智能家居、物联网这些场景都能看到它的身影。与此同时&#xff0c;人工智能技术发展迅速&#xff0c;也逐渐融入各个行业。 把 AI 部署到 STM…...

C++ Primer 成员访问运算符

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…...

芯科科技的BG22L和BG24L带来应用优化的超低功耗蓝牙®连接

全新的BG22L为常见蓝牙设备提供强大的安全性和处理能力&#xff0c;而BG24L支持先进的AI/ML加速和信道探测功能 2025年2月6日 – 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#x…...

欢迎使用Marp CLI

欢迎使用Marp CLI 【免费下载链接】marp-cli A CLI interface for Marp and Marpit based converters 项目地址: https://gitcode.com/gh_mirrors/ma/marp-cli 第二页幻灯片 列表项1列表项2列表项3 代码演示 def hello_world():print("Hello from Marp CLI!"…...

UI-TARS桌面版终极指南:用自然语言控制电脑的免费AI助手

UI-TARS桌面版终极指南&#xff1a;用自然语言控制电脑的免费AI助手 【免费下载链接】UI-TARS-desktop The Open-Source Multimodal AI Agent Stack: Connecting Cutting-Edge AI Models and Agent Infra 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS-desktop …...

OpenMetadata企业级元数据平台:智能化数据治理的架构革新与实践路径

OpenMetadata企业级元数据平台&#xff1a;智能化数据治理的架构革新与实践路径 【免费下载链接】OpenMetadata OpenMetadata is a unified metadata platform for data discovery, data observability, and data governance powered by a central metadata repository, in-dep…...

ARM GIC中断控制器分组机制与安全配置详解

1. GIC中断控制器基础架构解析在ARM架构的嵌入式系统中&#xff0c;通用中断控制器&#xff08;Generic Interrupt Controller&#xff0c;GIC&#xff09;扮演着系统中断管理的核心角色。作为连接外设中断与CPU之间的桥梁&#xff0c;GIC的设计直接影响着系统的实时性、安全性…...

Git报‘dubious ownership’错误?除了safe.directory,还有这3种更灵活的权限管理姿势

Git权限管理进阶&#xff1a;超越safe.directory的四种灵活解决方案 当你从团队仓库克隆代码到本地&#xff0c;正准备提交修改时&#xff0c;突然遭遇dubious ownership错误——这种场景对中高级开发者而言绝不陌生。Git的安全机制本意是保护项目免受未授权修改&#xff0c;但…...

2026年腾讯云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手?看这篇

2026年腾讯云部署OpenClaw/Hermes Agent 配置Token Plan怎么快速上手&#xff1f;看这篇。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Toke…...

别再乱写Flash了!W25Q128JV SPI Flash寿命管理与日志记录实战(附STM32代码)

W25Q128JV SPI Flash寿命优化与高可靠日志系统设计实战 在嵌入式设备开发中&#xff0c;数据持久化存储是确保设备可靠运行的关键环节。W25Q128JV作为128Mbit容量的SPI Flash存储器&#xff0c;凭借其高性价比和易用性&#xff0c;成为众多嵌入式项目的首选。然而&#xff0c;许…...

FontForge入门指南:从零开始设计你的第一套字体

FontForge入门指南&#xff1a;从零开始设计你的第一套字体 【免费下载链接】fontforge Free (libre) font editor for Windows, Mac OS X and GNULinux 项目地址: https://gitcode.com/gh_mirrors/fo/fontforge 你是否曾想过亲手设计一套属于自己的字体&#xff1f;Fon…...

C#实战:利用NModbus4库高效读写西门子PLC浮点数据

1. 为什么选择NModbus4与西门子PLC通信&#xff1f; 在工业自动化领域&#xff0c;西门子PLC作为主流控制器&#xff0c;经常需要与上位机进行数据交换。而Modbus TCP协议因其跨平台性和简单易用的特点&#xff0c;成为连接不同厂商设备的通用方案。我在多个工业数据采集项目中…...

RT-Thread aarch64虚拟平台文件系统移植实战:从QEMU virt到LittleFS

1. 项目概述与核心价值最近在折腾RT-Thread的aarch64虚拟平台&#xff0c;特别是qemu-virt64-aarch64这个BSP&#xff08;Board Support Package&#xff0c;板级支持包&#xff09;上的文件系统支持。这看起来像是一个很具体的移植工作&#xff0c;但实际上&#xff0c;它触及…...