日志导致线程Block的这些坑,你不得不防 (tech.meituan.com)

【简介】

研发人员在项目开发中不可避免地要使用日志,通过它来记录信息和排查问题。Apache Log4j2提供了灵活且强大的日志框架,虽然上手比较快,但稍有不慎也非常容易踩“坑”。本文介绍了美团统一API网关服务Shepherd在实践中所踩过的关于日志导致线程Block的那些“坑”,以及我们如何从日志框架源码层面进行分析和解决问题的过程,并在最后给大家分享一些关于日志避“坑”的实践经验,希望能给大家带来一些帮助。

点击查看全文 >>

@技术头条 2022-08-18 23:32分享 / 0个评论
赞过的人: IT技术博客大学习
要不要再学学下面的文章?
日志记录的最佳实践 (insights.thoughtworks.cn)
好的日志不仅可以为程序开发提供便利,为故障排除提供最重要的辅助信息,更可以为业务或基础设施提供优化建议或数据统计。
by @Thoughtworks 2022-09-29 17:32 分享 查看详情
Java线程池实现原理及其在美团业务中的实践 (tech.meituan.com)
本文开篇简述线程池概念和用途,接着结合线程池的源码,帮助读者领略线程池的设计思路,最后回归实践,通过案例讲述使用线程池遇到的问题,并给出了一种动态化线程池解决方案。
by @技术头条 2022-08-31 23:16 分享 查看详情
可视化全链路日志追踪 (tech.meituan.com)
可观测性作为系统高可用的重要保障,已经成为系统建设中不可或缺的一环。然而随着业务逻辑的日益复杂,传统的ELK方案在日志搜集、筛选和分析等方面愈加耗时耗力,而分布式会话跟踪方案虽然基于追踪能力完善了日志的串联,但更聚焦于调用链路,也难以直接应用于高效的业务追踪。本文介绍了可视化全链路日志追踪的新方案,它以业务链路为载体,通过有效组织业务每次执行的日志,实现了执行现场的可视化还原,支持问题的高效定位。
by @技术头条 2022-08-18 23:38 分享 查看详情
如何优雅地记录操作日志? (tech.meituan.com)
操作日志广泛存在于各个B端和一些C端系统中,比如:客服可以根据工单的操作日志快速知道哪些人对这个工单做了哪些操作,进而快速地定位问题。操作日志和系统日志不一样,操作日志必须要做到简单易懂。所以如何让操作日志不和业务逻辑耦合,如何让操作日志的内容易于理解,让操作日志的接入更加简单?上面这些都是本文要回答的问题,主要围绕着如何“优雅”地记录操作日志展开描述。
by @技术头条 2022-06-19 23:22 分享 查看详情
Systrace 线程 CPU 运行状态分析技巧 - Sleep 和 Uninterruptible Sleep 篇 (androidperformance.com)
本文是 Systrace 线程 CPU 运行状态分析技巧系列的第三篇,本文主要讲了使用 Systrace 分析 CPU 状态时遇到的 Sleep 与 Uninterruptible Sleep 状态的原因排查方法与优化方法,这两个状态导致性能变差概率非常高,而且排查起来也比较费劲,网上也没有系统化的文档。
by @技术头条 2022-06-19 22:47 分享 查看详情
Systrace 线程 CPU 运行状态分析技巧 - Running 篇 (androidperformance.com)
本文是 Systrace 线程 CPU 运行状态分析技巧系列的第二篇,主要分析了 Systrace 中 cpu 的 Running 状态出现的原因和 Running 过长时的一些优化思路。
by @技术头条 2022-06-19 22:47 分享 查看详情
libcurl使用线程的方式做DNS解析 (phpor.net)
一个PHP进程本来看不到使用任何的多线程方法,但是,strace时却发现大量的clone调用,而且,ps时,还发现进程状态是Sl 的,随不解,gdb 探查之,发现......
by @技术头条 2022-06-19 11:48 分享 查看详情
使用 logrotate 命令轮转和归档日志 (linux.cn)
日志非常适合找出应用程序在做什么或对可能的问题进行故障排除。几乎我们处理的每个应用程序都会生成日志,我们希望我们自己开发的应用程序也生成日志。日志越详细,我们拥有的信息就越多。但放任不管,日志可能会增长到无法管理的大小,反过来,它们可能会成为它们自己的问题。因此,最好将它们进行裁剪,保留我们需要的那些,并将其余的归档。
by @技术头条 2022-05-23 00:14 分享 查看详情
Better Code: 更好的异常日志打印 (wklken.me)
维护一个 N 年前的Python项目, 协助排查问题时发现, 原先的日志打印真真一言难尽。

导致了一个问题, 同负责的运维 A 沟通, A 与其对接的甲方沟通……日志的缺失导致本来简单的问题变得复杂。

如果日志打得更完备一点, 排查问题的难度不是一个的级别的。
by @技术头条 2022-05-06 23:30 分享 查看详情
Systrace 线程 CPU 运行状态分析技巧 - Runnable 篇 (androidperformance.com)
本文是 Systrace 线程 CPU 运行状态分析技巧系列的第一篇,主要分析了 Systrace 中 cpu 的 runnable 状态出现的原因和 Runnable 过长时的一些优化思路。

本系列的目的是通过 Systrace 这个工具,从另外一个角度来看待 Android 系统整体的运行,同时也从另外一个角度来对 Framework 进行学习。也许你看了很多讲 Framework 的文章,但是总是记不住代码,或者不清楚其运行的流程,也许从 Systrace 这个图形化的角度,你可以理解的更深入一些。
by @技术头条 2022-05-06 23:12 分享 查看详情