随笔分类 - .Net Debug
摘要:程序员都知道,在生产环境中,如果没有系统日志,对问题的分析将非常的困难。即使有日志,有时候也会因为日志记录的不全面,而导致问题不能分析清楚。其实,Windbg里面有Live Debug功能,正好可以借鉴应用。 本文介绍使用Windbg在.net程序中设置断点调试的方法。Windbg在Native C
阅读全文
摘要:最近在和小伙伴们做充电与通信程序的架构迁移。迁移前的架构是,通信程序负责接收来自充电集控设备的数据实时数据,通过Thrift调用后端的充电服务,充电服务收到响应后放到进程的Queue中,然后在管理线程的调度下,启动多线程进程数据处理。 随着业务规模的不断扩大和对系统可用性的逐步提高。现在这个架构存在
阅读全文
摘要:.foreach 关键字分析一个或多个命令的输出并将该输出中每一个值作为另一个或多个命令的输入 .foreach [Options] ( Variable { InCommands } ) { OutCommands } .foreach [Options] /s ( Variable "InStr
阅读全文
摘要:依据Partition和Consumer的Rebalance策略,找到Kafka.Client Rebalance代码块,还原本地环境,跟踪调试,发现自定义Consumer Group 的Consumer并没有分配到PartionID,如下图、 据此,基本就可以定位到不同组Consumer无法覆盖P
阅读全文
摘要:我们知道Kafka支持Consumer Group的功能,但是最近在应用Consumer Group时发现了一个Topic 的Partition不能100%覆盖的问题。 程序部署后,发现Kafka在pdb组的consumer消费topic时存在问题,consumer无法完全覆盖Topic的各个par
阅读全文
摘要:最近业务组在开发程序时,遇到了一个诡异的错误,错误信息如下: {"Disconnected before response received.tcp://139.217.0.107:8004ScsRemoteInvokeMessage: Teld.Sys.Service.Spi.IOrganizat
阅读全文
摘要:在Web.config中增加下面两个配置后,重启IIS即可。 1.修改http请求数据大小限制 <system.web> <httpRuntime maxRequestLength="50000000" /></system.web> 2.如果数据序列化格式为Json,请增加:
阅读全文
摘要:1.开始运行:cmd 2.在cmd窗口中执行下面命令: cd c:\windows\system32 lodctr /R 执行完上面命令,会提示:“信息: 成功地从系统备份存储中重建性能计数器设置” 3.运行Perfmon可以看到丢失的计数器又回来了。
阅读全文
摘要:1.打开windbg,加载dump。使用命令确定dump的clr版本:lm vm mscorwks 或者lm vm clr(!eeversion可以查看加载后的sos版本) 2.找到对应的mscorwks.dll文件,命名为:mscordacwks_AMD64_AMD64_2.0.50727.547
阅读全文
摘要:步骤: 1.安装windbg对应版本:X86,X64 2.Attach到对应进程 3.加载SOS:.load sos clr 4.启用捕获frist chance exception: sxe clr 5.继续运行程序:g 6.打印异常:!pe 7.继续直到下一次异常:!gn sxe Break (
阅读全文
摘要:using System; using System.Collections.Generic;using System.Text; using System.Threading; using System.Runtime.InteropServices;using System.Diagnostic
阅读全文
摘要:先show一下两段代码,两段代码都能比较好的实现业务逻辑,但是在高并发下,如果传入的参数为空,那么两段代码的性能表现完全不一样。 private static string Get(string filter) { if (string.IsNullOrEmpty(filter)) return "
阅读全文
摘要:在搭建搭建分布式系统时,基础组件与框架的重要性不言而喻。但是如果组件出现bug,真的很要命。虽然我们通过各种单元测试,拼命找bug,但是总有一些问题被盲目自信蒙蔽了双眼,很多时候我们认为这段代码100%没有问题,但是我想说,没有100%没有问题的代码,只有你没想到的应用场景。下面就说一下最近技术组件
阅读全文
摘要:In order to dump the contents of a dictionary, you need to start with either the MethodTable or the name of the class, then you can follow the below s
阅读全文
摘要:例如: 步骤一:根据DumpVC命令获取时间对象信息。需要MT 和 Value参数。 步骤二:根据得到上上面值,执行:? 0n9859562583350365970 & 0x3FFFFFFFFFFFFFFF。注意:0n 签名是零,不是英文o。 步骤三:使用formats命令显示时间。
阅读全文
摘要:最近在debug生产环境的问题时,发现了ServiceStack 4.0.60版本RedisClient存在一个非常严重的性能问题。在高并发下,PooledRedisClientManager.GetClient和Redis.DisposeClient会导致High CPU,并且持续非常长的时间才能
阅读全文
摘要:从来没写过Blog,想想也是,工作十多年了,搞过N多的架构、技术,不与大家分享实在是可惜了。另外,从传统地ERP行业转到互联网,也遇到了很所前所未有的问题,原来知道有一些坑,但是不知道坑太多太深。借着填坑的机会,把过程Log下来。 言归正传,先说说背景吧。Teld的业务平台中存在大量的物联网终端传感
阅读全文