IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
相关标签
作者:
一线码农
400
source
关注
TA的标签:
...
endpoint
service
之旅
服务
码农
服务端
server
集合
一个
wcf
精通
message
十五天
css
love
0
一线码农
发表于
2025-05-10 03:02:00
Linux系列:聊一聊 SystemV 下的进程间共享内存 - 一线码农
【摘要】一:背景 1. 讲故事 昨天在分析一个 linux 的 dump 时,看到了这么一话警告,参考如下: 0:000> !eeheap -gc *** WARNING: Unable to verify timestamp for SYSV10cf21d1 (deleted) 对,就是上面的 SYSV1阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-05-07 04:13:00
Linux系列:如何用perf跟踪.NET程序的mmap泄露 - 一线码农
【摘要】一:背景 1. 讲故事 如何跟踪.NET程序的mmap泄露,这个问题困扰了我差不多一年的时间,即使在官方的github库中也找不到切实可行的方案,更多海外大佬只是推荐valgrind这款工具,但这款工具底层原理是利用模拟器,它的地址都是虚拟出来的,你无法对valgrind 监控的程序抓dump,并且阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-04-23 01:58:00
记一次 .NET某工控任务调度系统 卡死分析 - 一线码农
【摘要】一:背景 1. 讲故事 前段时间有位朋友加我微信,来了就要进我的训练营,并且附带着纠结了他几个月的一个疑难杂症,让我帮忙看下怎么回事,问题描述截图如下: 由于这个定时任务是 furion 写的,刚好这位学员是VIP客户,找了小僧大佬,大佬需要最小化的问题代码,由于不能本地复现,也就没下文了,毕竟也是阅读全文 ...
继续阅读 (2)
love
0
一线码农
发表于
2025-04-21 04:40:00
记一次 .NET某旅行社酒店管理系统 卡死分析 - 一线码农
【摘要】一:背景 1. 讲故事 年初有位朋友找到我,说他们的管理系统不响应了,让我帮忙看下到底咋回事? 手上也有dump,那就来分析吧。 二:为什么没有响应 1. 线程池队列有积压吗? 朋友的系统是一个web系统,那web系统的无响应我们首先要关注的就是 线程池,使用 !sos tpq 命令,参考输出如下:阅读全文 ...
继续阅读 (2)
love
0
一线码农
发表于
2025-04-14 03:34:00
记一次 .NET某固高运动卡测试 卡慢分析 - 一线码农
【摘要】一:背景 1. 讲故事 年前有位朋友找到我,说他们的程序会偶发性卡慢 10s 钟,在某些组合下会正常,某些组合下就会出现问题,解释不了其中的原因,让我帮忙看下怎么回事?截图如下: private void TestRun() { int encposUpy = 0; Logger Log = new阅读全文 ...
继续阅读 (2)
love
0
一线码农
发表于
2025-04-11 04:02:00
记一次 .NET某云HIS系统 CPU爆高分析 - 一线码农
【摘要】一:背景 1. 讲故事 年前有位朋友找到我,说他们的系统会偶发性的CPU爆高,有时候是爆高几十秒,有时候高达一分多钟,自己有一点分析基础,但还是没找到原因,让我帮忙看下怎么回事? 二:CPU爆高分析 1. CPU 真的爆高吗 还是那句话,一定要相信数据,不要被别人带偏,使用 !tp 和 !cpuid阅读全文 ...
继续阅读 (2)
love
0
一线码农
发表于
2025-03-07 03:10:00
Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露 - 一线码农
【摘要】一:背景 1. 讲故事 前面跟大家分享过一篇 C# 调用 C代码引发非托管内存泄露 的文章,这是一个故意引发的正向泄露,这一篇我们从逆向的角度去洞察引发泄露的祸根代码,这东西如果在 windows 上还是很好处理的,很多人知道开启一个 ust 即可,让操作系统帮忙介入,在linux上就相对复杂一点了阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-03-04 06:45:00
Linux系列:如何调试 malloc 的底层源码 - 一线码农
【摘要】一:背景 1. 讲故事 上一篇我们聊过 C# 调用 C 的 malloc 代码来演示heap的内存泄露问题,但要想深入研究得必须把 malloc 的实现库 libc.so 给调试起来,大家都知道在Linux 上 libc 和 Windows 的 Win32 API 是一个层级的,由于 Linux 重阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-03-03 06:07:00
Linux系列:如何用 C#调用 C方法造成内存泄露 - 一线码农
【摘要】一:背景 1. 讲故事 好久没写文章了,还是来写一点吧,今年准备多写一点 Linux平台上的东西,这篇从 C# 调用 C 这个例子开始。在 windows 平台上,我们常常在 C++ 代码中用 extern "C" 导出 C风格 的函数,然后在 C# 中用 DllImport 的方式引入,那在 Li阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-01-20 05:52:00
记一次 .NET某数字化协同管理系统 内存暴涨分析 - 一线码农
【摘要】一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doublemapper__deleted_ 字样,问我为啥会这样?说实话作为我们这些调试者非常喜欢和这样的人阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-01-19 06:17:00
聊一聊 操作系统蓝屏 c0000102 的故障分析 - 一线码农
【摘要】一:背景 1. 讲故事 今年以来不知道为啥总有些朋友加我微信,让我帮忙分析下操作系统蓝屏问题,我也觉得挺好奇的,就问了其中一位朋友,说是B站来的,我就在拼命回忆,为啥会找我分析蓝屏?突然想到了去年好像录了一集关于 CrowdStrike 的热点事件。。。我本来是做.NET程序的故障分析,这操作系统的阅读全文 ...
继续阅读
love
0
一线码农
发表于
2025-01-13 04:11:00
一个超经典 WinForm,WPF 卡死问题的终极反思 - 一线码农
【摘要】一:背景 1. 讲故事 写这篇文章起源于训练营里一位朋友最近在微信聊到他对这个问题使用了一种非常切实可行,简单粗暴的方式,并且也成功解决了公司里几个这样的卡死dump,如今在公司已是灵魂级人物,让我也尝到了什么叫反哺!对,这个东西叫 Harmony, github网址: https://github阅读全文 ...
继续阅读 (2)
love
0
一线码农
发表于
2025-01-09 06:56:00
聊一聊 C#异步 任务延续的三种底层玩法 - 一线码农
【摘要】一:背景 1. 讲故事 最近聊了不少和异步相关的话题,有点疲倦了,今天再写最后一篇作为近期这类话题的一个封笔吧,下篇继续写我熟悉的 生产故障 系列,突然亲切感油然而生,哈哈,免费给别人看程序故障,是一种积阴德阳善的事情,欲知前世因,今生受者是。欲知来世果,今生做者是。 在任务延续方面,我个人的总结就阅读全文 ...
继续阅读 (3)
love
0
一线码农
发表于
2025-01-07 06:41:00
为什么 .NET8线程池 容易引发线程饥饿 - 一线码农
【摘要】一:背景 1. 讲故事 最近时间相对比较宽裕,多写点文章来充实社区吧,这篇文章主要还是来自于最近遇到的几例线程饥饿(Task.Result)引发的一系列的反思和总结,我觉得.NET8容易引发饥饿的原因,更多的在于异步回调之后底层会反复的将结果丢到线程池所致,因为数据进线程池容易,再用线程到池中去捞就阅读全文 ...
继续阅读 (5)
love
0
一线码农
发表于
2025-01-06 03:39:00
聊一聊 C#异步中的Overlapped是如何寻址的 - 一线码农
【摘要】一:背景 1. 讲故事 前段时间训练营里的一位朋友提了一个问题,我用ReadAsync做文件异步读取时,我知道在Win32层面会传 lpOverlapped 到内核层,那在内核层回头时,它是如何通过这个 lpOverlapped 寻找到 ReadAsync 这个异步的Task的呢? 这是一个好问题,阅读全文 ...
继续阅读 (8)
love
0
一线码农
发表于
2024-12-31 03:16:00
记一次 .NET某汗液测试机系统 崩溃分析 - 一线码农
【摘要】一:背景 1. 讲故事 上个月在社区写的文章比较少,一直关注的朋友应该知道那段时间被狗咬了以及一些琐事处理,所以手头上也攒了不少需要分享的案例,这段时间比较空闲,逐个给大 家做个分享吧,刚好年后为新版的 .NET高级调试训练营 做案例储备,所以抓紧时间疯狂输出吧! 这次生产事故的dump是训练营里一阅读全文 ...
继续阅读 (10)
love
0
一线码农
发表于
2024-12-30 03:46:00
记一次 .NET某电商医药网站 CPU爆高分析 - 一线码农
【摘要】一:背景 1. 讲故事 准备明年把.NET高级调试的训练营的课程进行重构,采用案例引导式,而CPU爆高类有不少是程序员在写代码的时候不注意时间复杂度,在数据量稍微大一点的情况直接幻化成了死循环,时间复杂度这东西是学校的数据结构课程,有心的朋友在写多层循环的时候脑子里面一定要过一遍,今天就给大家带一篇阅读全文 ...
继续阅读 (10)
love
0
一线码农
发表于
2024-12-27 03:55:00
记一次 .NET某工业视觉软件 崩溃分析 - 一线码农
【摘要】一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细的讲讲吧,哈哈,训练营里的学员得有求必应哈。。。话不多说,我们一起探索下这个程序的崩溃之路吧。 二:阅读全文 ...
继续阅读 (30)
love
0
一线码农
发表于
2024-12-25 05:32:00
聊一聊 C#线程池 的线程动态注入 (下) - 一线码农
【摘要】一:背景 1. 讲故事 前面二篇我们聊到了 Thread.Sleep 和 Task.Result 场景下的线程注入逻辑,在线程饥饿的情况下注入速度都不是很理想,那怎么办呢?有没有更快的注入速度,这篇作为 动态注入 的终结篇,我个人总结如下两种方法,当然可能有更多的路子,知道的朋友可以在下面留言。 二阅读全文 ...
继续阅读 (31)
love
0
一线码农
发表于
2024-12-24 05:31:00
聊一聊 C#线程池 的线程动态注入 (中) - 一线码农
【摘要】一:背景 1. 讲故事 上一篇我们用 Thread.Sleep 的方式演示了线程池饥饿场景下的动态线程注入,可以观察到大概 1s 产生 1~2 个新线程,很显然这样的增长速度扛不住上游请求对线程池的DDOS攻击,导致线程池队列越来越大,但C#团队这么优秀,能优化的地方绝对会给大家尽可能的优化,比如这阅读全文 ...
继续阅读 (32)
love
0
一线码农
发表于
2024-12-23 05:30:00
聊一聊 C#线程池 的线程动态注入 (上) - 一线码农
【摘要】一:背景 1. 讲故事 在线程饥饿的场景中,我们首先要了解的就是线程是如何动态注入的?其实现如今的ThreadPool内部的实现逻辑非常复杂,而且随着版本的迭代内部逻辑也在不断的变化,有时候也没必要详细的去了解,只需在稍微宏观的角度去理解一下即可,我准备用三篇来详细的聊一聊线程注入的流程走向来作为线阅读全文 ...
继续阅读 (27)
love
0
一线码农
发表于
2024-12-22 05:08:00
聊一聊 C#前台线程 如何阻塞程序退出 - 一线码农
【摘要】一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的3阅读全文 ...
继续阅读 (10)
love
0
一线码农
发表于
2024-12-20 04:29:00
聊一聊坑人的 C# MySql.Data SDK - 一线码农
【摘要】一:背景 1. 讲故事 为什么说这东西比较坑人呢?是因为最近一个月接到了两个dump,都反应程序卡死无响应,最后分析下来是因为线程饥饿导致,那什么原因导致的线程饥饿呢?进一步分析发现罪魁祸首是 MySql.Data,这就让人无语了,并且反馈都是升级了MySql.Data驱动引发,接下来我们简单聊一下阅读全文 ...
继续阅读 (12)
love
0
一线码农
发表于
2024-12-11 03:55:00
记一次 .NET某差旅系统 CPU爆高分析 - 一线码农
【摘要】一:背景 1. 讲故事 前些天训练营里的一位学员找到我,说他们的差旅后台系统出现了CPU爆高的情况,爆高之后就下不去了,自己分析了下也没找到原因,事情比较紧急,让我帮忙看下是什么回事,手里也有dump,丢过我之后我们上 windbg 分析吧。 二:WinDbg分析 1. 为什么会CPU爆高 看过这个阅读全文 ...
继续阅读 (34)
love
0
一线码农
发表于
2024-11-29 01:15:00
记一次 .NET某hdp智能柜系统 卡死分析 - 一线码农
【摘要】一:背景 1. 讲故事 停了一个月时间没有更新博客了,主要是这段时间有些许事情导致心神不宁,我这个人也比较浮躁所以无法潜心修炼,事情如下: 被狗咬了 也不知道是不是出门没看黄历,在小区门口店里买烟,被店老板家狗来了个猝不及防,天降横祸。让店老板赔了个疫苗钱,人生第一次被狗咬,第一次打这种狂犬疫苗,头阅读全文 ...
继续阅读 (45)
love
0
一线码农
发表于
2024-10-24 02:44:00
AOT漫谈专题(第七篇): 聊一聊给C#打造的节点依赖图 - 一线码农
【摘要】一:背景 1. 讲故事 上一篇我们聊过AOT编程中可能会遇到的三大件问题,而这三大件问题又是考验你对AOT中节点图的理解,它是一切的原点,接下来我就画几张图以个人的角度来解读下吧,不一定对。 二:理解节点依赖图 1. 对节点的理解 按照官方的说法,构建依赖节点和GC的标记算法一样,都是采用深度优先,阅读全文 ...
继续阅读 (21)
love
0
一线码农
发表于
2024-10-23 05:00:00
AOT漫谈专题(第六篇): C# AOT 的泛型,序列化,反射问题 - 一线码农
【摘要】一:背景 1. 讲故事 在 .NET AOT 编程中,难免会在 泛型,序列化,以及反射的问题上纠结和反复纠错尝试,这篇我们就来好好聊一聊相关的处理方案。 二:常见问题解决 1. 泛型问题 研究过泛型的朋友应该都知道,从开放类型上产下来的封闭类型往往会有单独的 MethodTable,并共用 EECl阅读全文 ...
继续阅读 (23)
love
0
一线码农
发表于
2024-10-16 08:48:00
AOT漫谈专题(第五篇): 如何劫持.NET AOT编译器 进行源码级调试 - 一线码农
【摘要】一:背景 1. 讲故事 上篇聊到了 C#程序编译成Native代码 的宏观过程,有粉丝朋友提了一个问题,能不能在 dotnet publish 发布的过程中对AOT编译器拦截进行源码级调试,这是一个好问题,也是深度研究的必经之路,这篇我们就来分享下吧。 二:托管和非托管调试器 1. 调试器介绍 相信阅读全文 ...
继续阅读 (48)
love
0
一线码农
发表于
2024-10-15 04:01:00
AOT漫谈专题(第四篇): C#程序如何编译成Native代码 - 一线码农
【摘要】一:背景 1. 讲故事 大家都知道所谓的.NET Native AOT即通过AOT编译器直接将C#代码编译成机器码,大家也习惯用C/C++的编译过程来类比,都是静态编译本质上都差不多,这篇我们借助工具从宏观层面去看一看AOT的编译过程。 二:C/C++ 的编译过程 用gcc编译过c代码的朋友都知道,阅读全文 ...
继续阅读 (23)
love
0
一线码农
发表于
2024-10-14 02:35:00
AOT漫谈专题(第三篇): 如何获取C#程序的CPU利用率 - 一线码农
【摘要】一:背景 1. 讲故事 上篇聊到了如何对AOT程序进行轻量级的APM监控,有朋友问我如何获取AOT程序的CPU利用率,本来我觉得这是一个挺简单的问题,但一研究不是这么一回事,这篇我们简单的聊一聊。 二:如何获取CPU利用率 1. 认识cpuUtilization字段 熟悉.NET底层的朋友应该知道,阅读全文 ...
继续阅读 (22)
1/8
下一页