摘要: Prometheus时序数据库-磁盘中的存储结构 前言 之前的文章里,笔者详细描述了监控数据在Prometheus内存中的结构。而其在磁盘中的存储结构,也是非常有意思的,关于这部分内容,将在本篇文章进行阐述。 磁盘目录结构 首先我们来看Prometheus运行后,所形成的文件目录结构 在笔者自己的机 阅读全文
posted @ 2021-03-01 09:59 无毁的湖光-Al 阅读(1235) 评论(3) 推荐(2) 编辑
摘要: Prometheus时序数据库-内存中的存储结构 前言 笔者最近担起了公司监控的重任,而当前监控最流行的数据库即是Prometheus。按照笔者打破砂锅问到底的精神,自然要把这个开源组件源码搞明白才行。在经过一系列源码/资料的阅读以及各种Debug之后,对其内部机制有了一定的认识。今天,笔者就来介绍 阅读全文
posted @ 2021-02-22 10:42 无毁的湖光-Al 阅读(2301) 评论(6) 推荐(2) 编辑
摘要: 从Linux源码看Socket(TCP)的accept 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 今天笔者就从Linux源码的角度看下Server端的Socket在进行Accept的时候到底做了哪些事情(基于Linux 3.10内核)。 一个最 阅读全文
posted @ 2020-12-07 12:18 无毁的湖光-Al 阅读(1403) 评论(4) 推荐(3) 编辑
摘要: 从Linux源码看TIME_WAIT状态的持续时间 前言 笔者一直以为在Linux下TIME_WAIT状态的Socket持续状态是60s左右。线上实际却存在TIME_WAIT超过100s的Socket。由于这牵涉到最近出现的一个复杂Bug的分析。所以,笔者就去Linux源码里面,一探究竟。 首先介绍 阅读全文
posted @ 2020-10-27 11:27 无毁的湖光-Al 阅读(2368) 评论(2) 推荐(3) 编辑
摘要: 自己动手写SQL执行引擎 前言 在阅读了大量关于数据库的资料后,笔者情不自禁产生了一个造数据库轮子的想法。来验证一下自己对于数据库底层原理的掌握是否牢靠。在笔者的github中给这个database起名为Freedom。 整体结构 既然造轮子,那当然得从前端的网络协议交互到后端的文件存储全部给撸一遍 阅读全文
posted @ 2020-09-25 10:17 无毁的湖光-Al 阅读(5904) 评论(41) 推荐(59) 编辑
摘要: 解Bug之路-记一次对端机器宕机后的tcp行为 前言 机器一般过质保之后,就会因为各种各样的问题而宕机。而这一次的宕机,让笔者观察到了平常观察不到的tcp在对端宕机情况下的行为。经过详细跟踪分析原因之后,发现可以通过调整内核tcp参数来减少宕机造成的影响。 Bug现场 笔者所在的公司用某个中间件的古 阅读全文
posted @ 2020-09-21 10:16 无毁的湖光-Al 阅读(2628) 评论(6) 推荐(10) 编辑
摘要: 前言 日常Bug排查系列都是一些简单Bug排查。笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_ Bug现场 最近碰到一个产线问题,表现为某个应用集群所有的节点全部下线了。导致上游调用全部报错。而且从时间线分析来看。这个应用的节点是逐步失去响应的。因为请求量较小,直到最后一台也失去响应后 阅读全文
posted @ 2024-01-15 09:00 无毁的湖光-Al 阅读(1696) 评论(7) 推荐(6) 编辑
摘要: 日常Bug排查系列都是一些简单Bug排查。问题虽小,但经常遇到,了解这些问题,会让我们少走点弯路,提升效率。说不定有些问题你遇到过哦:) Bug现场 业务开发同学突然问了笔者一个问题,从库读会不会没有原子性?我下意识的反应怎么可能,只要是遵守MySQL主从Replication协议的原子性至少是能够 阅读全文
posted @ 2023-09-27 16:39 无毁的湖光-Al 阅读(854) 评论(5) 推荐(5) 编辑
摘要: 前言 监控指标诚然是发现问题于微末之时的极佳手段,但指标往往有其表达的极限。在很多情况下,单独看一个黄金指标并不能表征系统的健康程度,反而有可能被其迷惑,进而忽略相关问题。(本文所提及的Linux Kernel源码版本为4.18.10) Bug现场 某天中午,某应用的999线突然升高。由于是个QPS 阅读全文
posted @ 2023-04-11 10:11 无毁的湖光-Al 阅读(1979) 评论(3) 推荐(12) 编辑
摘要: 解Bug之路-ZooKeeper集群拒绝服务 前言 ZooKeeper作为dubbo的注册中心,可谓是重中之重,线上ZK的任何风吹草动都会牵动心弦。最近笔者就碰到线上ZK Leader宕机后,选主无法成功导致ZK集群拒绝服务的现象,于是把这个case写出来分享给大家(基于ZooKeeper 3.4. 阅读全文
posted @ 2021-06-22 09:50 无毁的湖光-Al 阅读(3685) 评论(9) 推荐(15) 编辑
摘要: 日常Bug排查-Nginx重复请求? 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,其中不乏一些看起来很低级但很容易犯的问题。 问题现场 有一天运维突然找到我,要我协助排查一个问题。业务开发怀疑Nginx会重复相同的请求,就感觉Nginx自己重试了一样。而 阅读全文
posted @ 2021-06-16 10:18 无毁的湖光-Al 阅读(1320) 评论(4) 推荐(2) 编辑
摘要: 日常Bug排查-应用Commit报错事务并没有回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 应用Commit报错并不一定回滚 事实上,这篇文章并没有什么排查过程。但这个问题却又是笔者经常遇到的。 笔者仅仅是想阐述一下当我们在 阅读全文
posted @ 2021-06-15 09:46 无毁的湖光-Al 阅读(544) 评论(1) 推荐(1) 编辑
摘要: 日常问题排查-调用超时 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 Bug现场 这次的Bug是大家喜闻乐见的调用超时。即A调用B超过了5s 搜索一下日志,发现A系统在发出5s后超时。B系统在将近8s后才收到请求,也就是说B系统还 阅读全文
posted @ 2021-06-08 09:26 无毁的湖光-Al 阅读(2239) 评论(12) 推荐(10) 编辑
摘要: 日常Bug排查-抛异常不回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 Bug现场 最近有人反映java应用操作数据库的时候,抛异常不回滚。这还了得,不过笔者笃定肯定是用法的锅,不然就全乱套了。所以笔者去Review他的代码。 阅读全文
posted @ 2021-06-07 10:22 无毁的湖光-Al 阅读(624) 评论(3) 推荐(0) 编辑
摘要: 日常Bug排查-消息不消费 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 Bug现场 某天下午,在笔者研究某个问题正high的时候。开发突然找到笔者,线上某个系统突然消费不了queue了。Queue不消费也算是日常问题了。淡定的先 阅读全文
posted @ 2021-06-04 09:58 无毁的湖光-Al 阅读(1515) 评论(2) 推荐(5) 编辑
摘要: ntp导致的时钟回拨 时钟回拨 我们的服务器时间校准一般是通过ntp进程去校准的。但由于校准这个动作,会导致时钟跳跃变化的现象。 而这种情况里面,往往回拨最能引起我们的困扰,回拨如下所示: 会引起什么问题 准点调度任务的误判 假设有一个任务每天0点时候获取昨天所有的数据进行对账,正常情况和时钟回拨的 阅读全文
posted @ 2021-05-31 09:34 无毁的湖光-Al 阅读(2775) 评论(4) 推荐(5) 编辑