云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Windbg 命令基础、符合与源码

Windbg 命令基础、符合与源码

  • 62 次阅读
  • 3 次下载
  • 2025/5/30 23:26:46

MethodTable: 000007fef0667d90 EEClass: 000007fef026e560 Size: 411932(0x6491c) bytes

(C:\\Windows\\assembly\\GAC_64\\mscorlib\\2.0.0.0__b77a5c561934e089\\mscorlib.dll)

String: 粤A87xxx,粤ACxxx挂...... Fields:

MT Field Offset Type VT Attr Value Name

000007fef066f000 40000968 System.Int32 1 instance 205954 m_arrayLength

000007fef066f000 4000097 c System.Int32 1 instance 205953 m_stringLength

000007fef06697d8 400009810 System.Char 1 instance 7ca4 m_firstChar

000007fef0667d90 400009920 System.String 0 shared static Empty

>> Domain:Value 000000000112bef0:00000001ff350370 000000000372e6e0:00000001ff350370 <<

000007fef0669688 400009a 28 System.Char[] 0 shared static WhitespaceChars

>> Domain:Value 000000000112bef0:00000001ff350b60 000000000372e6e0:00000001ff3588e8 <<

做到这里,本次系统变卡的原因貌似已经有一个说法已经说得过去了,就是Asp.net尝试分配一个大对象,.Net中超过85Kb就叫大对象。但是内存不足,于是触发GC回收,回收不到一个400Kb长的内存块,于是报了一个内存溢出异常。

这个道理乍一看,似乎说得通,但是实际上很诡异,.Net上只是使用了2G左右的内存,一共24G内存的服务器为什么只是用了2G内存,GC拼命回收垃圾呢?为什么只是用了2G内存就分配不出400KB的内存了呢?

在这个地方,卡住了,中途以为是内存频繁分配造成大量碎片,往内存碎片方向跟过,最后确定与内存碎片无关。原因是不相信这个东西。因为服务器是24核CPU,24G内存。24G内存使用了2G内存就出现这个问题。

这个问题想了两天,百思不得其解。后来,又无意中发现了一个小苗头。 !dumpheap -stat

0:000> !dumpheap -stat

------------------------------ ?

000007fef0668168 1 136 System.OutOfMemoryException

?

000007fef066f8b0 67392

46915920System.Collections.Hashtable+bucket[]

000007fef0667d90 291003 96055608 System.String Total 2737406 objects

Fragmented blocks larger than 0.5 MB: Addr Size Followed by

000000014f92ff10 4.2MB 000000014fd5c698 System.String 000000019fb89940 6.3MB 00000001a01d57b8 System.Threading.OverlappedData 000000020fb18698 5.7MB 00000002100ccc70 System.Threading.Overlapped 在上千行的返回结果中,居然无意中瞟到一个

System.OutOfMemoryException。熟悉C#的应该都知道,这个是内存溢出异常,当内存不足时才会发生。

本来说分配不出400KB内存我还很怀疑,现在又无意中从上千行的返回结果中瞟到这一行代码。确定是内存问题,于是怀疑是Asp.net配置文件不正确,导致系统最多只能够用到2G内存呢?因为Asp.net Web.Config里面的

processModel节点有个memoryLimit参数,可以设置Asp.net能够使用的最大内存。但是从网站一直跟到服务器的配置文件,都没有发现有设置该参数,也就是说,Asp.net使用默认设置是60%。24G*60%最大是能够使用14G左右的内存。 太诡异了,实在想不通。最后,只有碰碰运气了,随便输入些变量看看值有没有什么问题。(实际上本处也有章法可依,如果此时找到不问题,最应该就是找到这次请求的参数,重现与当时客户一样的操作),当随手在输入如下命令之后,突然眼前一亮。

依次执行如下3个指令:

0:083> !do 000000015f416b08 //换了个DUMP,本来这个地址是出现在 !dso命令里的

Name: System.Web.HttpContext MethodTable: 000007feecc075c8 EEClass: 000007feec862438 Size: 336(0x150) bytes

(C:\\Windows\\assembly\\GAC_64\\System.Web\\2.0.0.0__b03f5f7f11d50a3a\\System.Web.dll) Fields:

MT Field Offset Type VT Attr Value Name

000007feecc0a0f0 4000fe6 8 ...IHttpAsyncHandler 0 instance0000000000000000 _asyncAppHandler

000007feecc09c20 4000fe7 10...b.HttpApplication 0 instance 000000022f3cc5d0 _appInstance

搜索更多关于: Windbg 命令基础、符合与源码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

MethodTable: 000007fef0667d90 EEClass: 000007fef026e560 Size: 411932(0x6491c) bytes (C:\\Windows\\assembly\\GAC_64\\mscorlib\\2.0.0.0__b77a5c561934e089\\mscorlib.dll) String: 粤A87xxx,粤ACxxx挂...... Fields: MT Field Offset Type VT Attr Value Name 000007fef066f000 40000968 System.Int32 1 instance 205

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com