实乃后知后觉,作者去年才发现微软爸爸提供了一个自动化的dump分析工具DebugDiag,提供内存、cpu、进程崩溃等问题的自动分析,可以免受使用windbg 之苦。
其中 v2.2 最低支持 win2008、win7 这一代系统,而 v2.3 开始最[……]
程序在开发机上借助 IDE 的工具进行性能分析是非常简单的,但在程序在正式环境运行时进行慢函数分析就比较困难。这里介绍2个工具,CVCollectionCmd 和 PerfView,借助它们的力量(性能计数器和其他系统探针)可以对 windows 中运行的 .net 程序进行运行中分析。
CV[……]
最近在大量把单线程功能改写成多线程,因为作死、弱智等原因,经常写出大量bug,其中调试遇到各种困难,在这里介绍一例未知原因崩溃的排错过程。
如图,在事件管理器中发现程序死于UnhandledException,且未记录抛出异常的代码行号。在毫无头绪的情况下只能在此祭出调试神器windbg。[……]
代码项目地址:WorkDayProject
因为好奇,(其实是因为闲),顺带看了 Benchmark 天梯,于是就写了一些代码来测试一下,以工作的项目中最简单的一个工作日计算功能为例实践了一些框架。
先解释一下什么是工作日?在这里的工作日不是指一般职员周一-周五上班的工作[……]
在DeepIn ♂ WCF 中曾提到WCF中net.tcp协议的特有消息序列化格式。这个格式是微软的私有格式,对非微软.net客户端调用非常不友好,导致接口测试比较复杂,特别是性能测试。
因最近工作对某服务进行了大量的优化,需要通过性能测试展示优化的成果。传统上对net.tcp接[……]
前文: windbg调试一个CPU100%的.net进程
windbg调试一个CPU100%的.net进程(二)—— What is mscorlib.ni.dll
某日因一大波僵尸(韭菜)的大量访问,某服务发生服务不可用故障,同时CPU使用率触发报警。
调查结论是:导致CPU使用率高[……]
起因是运维强烈认为偶发 CPU 使用率100%是一个不好的现象,我查了告诉他们原因是多线程并发垃圾回收导致 CPU 使用率高。他们硬要我解决这个问题,我只能想办法解决垃圾回收使用的 CPU 核数。
大致能得到如下配置,能满足运维的降[……]
本来以为一篇已经能终结这个问题了,但是没想到还有续写这个topic的一天,当然我也发现了新世界的大门。
这次的犯人是157C(5500)号线程。
看着这个堆栈,我只能黑人问号???
what is mscorl[……]
最近应需求写了一个oracle到mysql的数据导入工具,本来想随便写写,直接把数据一次读到内存然后再写。后来发现性能略差,就试图做点性能优化,使用IDataReader,一边读一边写,然而mysql写速度根本跟不上oracle读速度,而且测试机只有双核4线程,开4个写线程CPU75%,6个写线程就[……]
出问题的程序还是那个CPU100%的程序(就你事情多)。反正就是在查CPU占用率100%时顺带发现的,在进程垃圾回收期间,服务停止响应,没有接口调用,没有调用日志,没有错误日志,在事件管理器的安全子类下出现大量 Event 5152 的审核失败日志,如图。
其中这个 Event 515[……]