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

Jaeger的经典BUG原创

前端,笔者在使用Jaeger进行Trace监控的时候,当数据量增大到一定数量级时,出现了一次CPU暴增导致节点服务器挂了的经典案例,这里对案例进行一个简单的抽象,供大家参考:

首先通过pprof对耗时的函数进行定位:

发现是在Trace初始化的调用了HostIP方法特别耗时

然后看了下函数的实现:

找到了问题的疑似点:net.InterFaces

这个方式会调用底层的系统函数获取本机的IP,会打开一个socket,会不会因为大量打开socket,把CPU占满了呢?

做个实验:

把这个方法抽离出来,在服务器上做个高频调用!

日志如下:

cpu如下:

果然是它!确实在hostIP这里耗时

那看实锤了,就是因为每次数据上报都会一个协程来出来,协程中会新建一个jaeger trace来跟踪,jaeger每次都找一下本机IP,然后打开了很多的socket,然后机器CPU飙升,出现了Node的问题

那看看jaeger为啥会有这个问题

跟踪一下git上的提交记录:

啊,原来jaeger在某个版本已经修复了!把之前获取的IP放在内存里,下次就不再重复获取了!

难道有项目遇到了这个问题了?

看看commit

是在修复401问题,看下401问题是啥?

原来是另一个问题,这个HostIP其实有一个scoreAddr方法,当一个服务器有两个ip,比如内网ip和外网ip,按照这个方法的逻辑,会优先外网ip,但一个集群内,可能只有一个入口有外网ip,其他都是内网ip,这个时候入口机的ip和内网ip就适配了,jaeger信息也会异常,所以提出了这个问题,并进行修复

我们看看jaeger开发者这么说

原来开发者一直也是这个理念,而且在java的客户端已经实现了,但golang一直没有更新

额,原来大家都有拖延症!

搞定!

相关文章:

Jaeger的经典BUG原创

前端,笔者在使用Jaeger进行Trace监控的时候,当数据量增大到一定数量级时,出现了一次CPU暴增导致节点服务器挂了的经典案例,这里对案例进行一个简单的抽象,供大家参考: 首先通过pprof对耗时的函数进行定位&…...

四款简洁好看 自适应的APP下载单页源码

分享四款简洁好看 自适应的APP下载单页源码,采用了底部自动获取ICP备案号,还有蓝奏云文件直链解析。不光可以做APP下载引导页,也可以随便改下按钮做网站引导页,自由发挥即可! 蓝奏云直链解析的好处:APP放在…...

【服务器】交换机带外管理和带内管理

一、交换机的带外管理是什么? 在带外管理模式中,网络的管理控制信息与用户网络的承载业务信息在不同的逻辑信道传送。 带外管理最大的优势在于,当网络出现故障中断时数据传输和管理都可以正常进行——不同的物理通道传送管理控制信息和数据…...

Kotlin的内置函数 apply、let、run、with、also

let 1.let函数返回类型,是根据匿名函数的最后一行变化而变化 2.let函数中的匿名函数里面持有的是it 集合自身 fun main() {var num1 1var num2 1var result:Intresult num1 num2var str result?.let {//传入本身,it指代本身即result,result不为空…...

2023年人工景点行业研究报告

第一章 行业概况 1.1 定义及分类 人工景点行业通常指的是设计和构建的为提供娱乐、教育或文化体验的景点。这些景点可能包括主题公园,博物馆,动物园,水族馆,科学中心,历史遗迹,艺术展览等。这个行业通常包…...

react轮播图

这里 我用的是组件: 网址:Collapse 折叠面板 - Ant Design Mobile 1.首先 先声明一个变量 2、把需要的数据存存进去 3、组件内容复制过来(这里用到的是map循环) 然后图片就出来了 就是这个简单 哈哈哈哈!&#xff01…...

Openlayers 叠加天地图-中国近海海洋等深面图层服务

Openlayers 叠加天地图-中国近海海洋等深面图层服务 核心代码完整代码:在线示例 偶然发现天地图有一个近海海洋图层,觉得不错,于是尝试叠加一下,花费了一些时间,叠加成功,这里分享一下。 本文包括核心代码…...

uniapp移动端h5设计稿还原

思路 动态设置html的font-size大小 实现步骤 先创建一个public.css文件,设置初始的font-size大小 /* 注意这样写 只能使用css文件, scss 是不支持的, setProperty 只适用于原生css上 */ html {--gobal-font-size: 0.45px; } .gobal-font-size {font-size: var(--g…...

后端数据配置相对路径,前端添加网站根 URL (根路径)- js获取网站项目根路径- 获取根路径后的第一个斜杠前 / 的项目- - 判断url包含某字符串

1、js获取网站项目根路径 js获取项目根路径,如下: 原 http://localhost:8080/testproject/test.html 根路径:http://localhost:8080 function getRootPath(){//获取当前网址,// 如: http://localhost:8080/testpro…...

deepspeed多机多卡并行训练指南

文章目录 前言离线配置训练环境共享文件系统多台服务器之间配置互相免密登录pdsh多卡训练可能会碰到的问题注意总结 前言 我的配置: 7机14卡,每台服务器两张A800 问:为啥每台机只挂两张卡? 答:给我的就这样的&#…...

9.Redis-zset

zset zset 有序集合 -> 升序常用命令zaddzcardzcountzrangezrevrange -> reverse 逆序zrangebyscorezpopmaxzpopminbzpopmax / bzpopminzrankzrevrankzscorezremzremrangebyrankzremrangebyscorezincrby集合间操作zinter -> 交集zunion -> 并集zdiff -> 差集zin…...

云计算的三个主要服务模型:IaaS、PaaS 和 SaaS

文章目录 介绍基础设施即服务(Infrastructure as a Service,IaaS)平台即服务(Platform as a Service,PaaS)软件即服务(Software as a Service,SaaS) 区别基础设施即服务&…...

spring ioc,DI,AOP概述

Spring是一个轻量级的Java开发框架。其中,IoC、DI和AOP是Spring框架的核心概念。 IoC(Inversion of Control,控制反转):IoC是一种设计模式,是指将对象的创建、管理和控制权交给IoC容器,由IoC容器…...

meethigher-Apache Poi 实现Excel多级联动下拉框

由于最近做的功能,需要将接口返回的数据列表,输出到excel中,以供后续导入,且网上现有的封装,使用起来都较为麻烦,故参考已有做法封装了工具类。 使用apache poi实现excel联动下拉框思路 创建隐藏单元格&a…...

基于食肉植物算法优化的BP神经网络(预测应用) - 附代码

基于食肉植物算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于食肉植物算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.食肉植物优化BP神经网络2.1 BP神经网络参数设置2.2 食肉植物算法应用 4.测试结果:5…...

FFDNet-pytorch版本代码训练教程

一、FFDNet-pytorch版本代码下载 (1)FFDNet-pytorch下载 https://download.csdn.net/download/qq_41104871/88233742 (2)FFDNet-pytorch版本代码运行环境配置 https://blog.csdn.net/qq_41104871/article/details/132497008 二、FFDNet-pytorch版本代码训练教程 (1)按…...

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶,流水前波让后波。”改革开放40年来,我们以敢闯敢干的勇气和自我革新的担当,闯出了一条新路、好路,实现了从“赶上时代”到“引领时代”的伟大跨越。今天,我们要不忘初心、牢记…...

golangORM框架Gorm

ORM框架Gorm gorm简介gorm声明模型gorm连接到数据库gorm创建记录gorm查询记录gorm高级查询gorm更新gorm删除SQL 构建器gorm Belongs To关系gorm Has One关系gorm Has Many关系gorm Many To Many关系gorm 实体关联gorm 会话gorm事务Gorm总结...

Python项目实战之《飞机大战游戏》

目录 一、Pygame库包简介 二、Pygame安装 三、项目开发思路 3.1前言 3.2飞机大战开发步骤 一、Pygame库包简介 Pygame是一个基于python的游戏开发库,它提供一系列的工具和接口,使开发人员能够轻松的创建各种类型的游戏,包括2D游戏和简单…...

Mysql数据库(2)—事务和锁

一、事务 数据库事务的特性? 数据库事务的四大特性是ACID。 原子性:就是所有操作要么全不做,要不全做。通过undo日志来实现。一致性:就是在并发情况下数据库由一个状态转移到另一个状态的数据要一致。通过事务的隔离级别来实现…...

告别Modelsim命令行!用Notepad++插件NppExec一键检查Verilog语法(附详细配置命令)

硬件工程师的效率革命:Notepad与Verilog语法检查的终极整合方案 在数字电路设计领域,Verilog作为主流硬件描述语言,其语法检查是每位工程师日常工作中不可或缺的环节。传统工作流程中,工程师们不得不在文本编辑器与EDA工具之间频繁…...

RELION 5.0完整指南:从零开始掌握冷冻电镜数据处理利器

RELION 5.0完整指南:从零开始掌握冷冻电镜数据处理利器 【免费下载链接】relion Image-processing software for cryo-electron microscopy 项目地址: https://gitcode.com/gh_mirrors/re/relion RELION 5.0(REgularised LIkelihood OptimisatioN…...

【码上爬】 题十一:wasm小试牛刀 wasm文件处理,堆栈分析

暗号:aHR0cHM6Ly9tYXNoYW5ncGEuY29tL3Byb2JsZW0tZGV0YWlsLzExLw题目:先分析数据接口,可以看到m和ts是加密的,但是这里的ts的值应该是一个时间戳,所以主要要逆向的值是m:然后在发起程序的最上面的堆栈下一个…...

Yolov5 5.0 vs 6.1:C#部署ONNX模型时,我踩过的版本兼容性大坑

YOLOv5 5.0与6.1版本在C#部署ONNX模型时的关键差异与实战避坑指南 当你在C#环境中尝试部署YOLOv5导出的ONNX模型时,是否遇到过"超出索引"这类令人抓狂的报错?这很可能源于你选择的YOLOv5版本与部署框架之间的兼容性问题。本文将深入剖析YOLOv5…...

打通飞书与GitLab:基于Webhook的事件通知与精准@实践指南

1. 为什么需要打通飞书与GitLab的通知系统 在软件开发团队中,代码仓库的每一次变更都可能影响整个项目进度。传统的做法是开发人员手动在群里相关同事,或者依赖邮件通知,这种方式效率低下且容易遗漏重要信息。我曾经参与过一个跨时区协作项目…...

别再只盯着Transformer了!用PyTorch手把手复现加性注意力(Additive Attention),理解注意力机制的起点

从加性注意力到Transformer:PyTorch实战与演进逻辑解析 在Transformer架构横扫NLP领域的今天,回望2014年提出的加性注意力机制(Additive Attention),犹如在摩天大楼顶端俯瞰地基。这个由Bahdanau在神经机器翻译中首次提…...

告别DDPG训练不稳定!用SAC(软性演员-评论家)算法搞定复杂环境强化学习

告别DDPG训练不稳定!用SAC(软性演员-评论家)算法搞定复杂环境强化学习 在机器人控制、自动驾驶仿真等连续控制任务中,强化学习算法的稳定性往往决定了项目成败。许多工程师都经历过这样的困境:使用DDPG(深度…...

drf-nested-routers测试指南:确保嵌套路由稳定性的完整方案

drf-nested-routers测试指南:确保嵌套路由稳定性的完整方案 【免费下载链接】drf-nested-routers Nested Routers for Django Rest Framework 项目地址: https://gitcode.com/gh_mirrors/dr/drf-nested-routers drf-nested-routers是Django Rest Framework的…...

LabVIEW字符串处理保姆级教程:从长度计算到日期格式化,13个实例带你玩转

LabVIEW字符串处理实战指南:从基础操作到高级应用 在工业自动化、测试测量和仪器控制领域,LabVIEW作为图形化编程的标杆工具,其字符串处理能力直接影响着数据解析、通信协议实现等核心功能。本文将通过13个典型场景,系统讲解如何高…...

UNet迁移实战:如何用Labelme标注自己的数据,并快速替换官方数据集进行训练

UNet迁移实战:从Labelme标注到自定义数据集训练全流程指南 当你在GitHub上成功运行了UNet的官方Demo后,下一步自然是想让这个强大的语义分割模型为你自己的项目服务——无论是分析医学影像中的病变区域,还是识别卫星图片中的特定地物。本文将…...