精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次 .NET 醫療布草 API 程序 內存暴漲分析

存儲 存儲軟件
我在年前寫過一篇關于CPU爆高的分析文章 再記一次 應用服務器 CPU 暴高事故分析 ,當時是給同濟做項目升級,看過那篇文章的朋友應該知道,最后的結論是運維人員錯誤的將 IIS 應用程序池設成 32bit 導致了事故的發生,這篇算是后續,拖了好久才續上哈。

[[396727]]

本文轉載自微信公眾號「一線碼農聊技術」,作者一線碼農聊技術。轉載本文請聯系一線碼農聊技術公眾號。

一:背景

1. 講故事

我在年前寫過一篇關于CPU爆高的分析文章 再記一次 應用服務器 CPU 暴高事故分析 ,當時是給同濟做項目升級,看過那篇文章的朋友應該知道,最后的結論是運維人員錯誤的將 IIS 應用程序池設成 32bit 導致了事故的發生,這篇算是后續,拖了好久才續上哈。

猶記得那些天老板天天找我們幾個人開會,大概老板是在傳導甲方給過來的壓力,人倒霉就是這樣,你說 CPU 爆高可怕吧,我硬是給摁下去了,好了,Memory 又爆高了,尼瑪我又給摁下去了,接著數據庫死鎖又來了,你能體會到這種壓力嗎??? 就像我在朋友圈發的那樣,程序再不跑我就要跑了。

[[396728]]

所以有時候敬敬風水還是很有必要的,有點扯遠了哈,這篇我們來看看程序的內存暴漲如何去排查,為了讓你更有興趣,來一張運維發的內存監控圖。

從圖中可以看出,9點開始內存直線暴漲,絕對驚心動魄,要是我的小諾安這樣暴漲就好了,接下來 windbg 說話。

二:windbg 分析

1. 說一下思路

內存暴漲了,最怕的就是 非托管層 出了問題,它的排查難度相比 托管層 要難10倍以上,所以遇到這類問題,先祈禱一下吧,gc堆也罷,loader堆也不怕,所以先看看是否 進程內存 ≈ gc堆內存 ?

2. 排查托管還是非托管

排查方式也很簡單,通過 !address -summary 看看進程的已提交內存,如下輸出:

  1. 0:000> !address -summary 
  2.  
  3. --- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal 
  4. MEM_FREE                                261      7fb`4b151000 (   7.982 TB)           99.77% 
  5. MEM_RESERVE                             278        2`6aafc000 (   9.667 GB)  51.35%    0.12% 
  6. MEM_COMMIT                             2199        2`4a3a3000 (   9.160 GB)  48.65%    0.11% 

可以看到已提交內存是 9.1G,接下來看下 gc 堆的大小,使用 !eeheap -gc 即可。

  1. 0:000> !eeheap -gc 
  2. Number of GC Heaps: 8 
  3. ------------------------------ 
  4. Heap 0 (0000000002607740) 
  5. generation 0 starts at 0x00000001aaaa5500 
  6. generation 1 starts at 0x00000001aa3fd070 
  7. generation 2 starts at 0x0000000180021000 
  8. Heap 7 (0000000002713b40) 
  9. generation 0 starts at 0x000000053b3a2c28 
  10. generation 1 starts at 0x000000053a3fa770 
  11. generation 2 starts at 0x0000000500021000 
  12.  
  13. ------------------------------ 
  14. GC Heap Size:            Size: 0x1fdfe58c8 (8556271816) bytes. 

從最后一行輸出中可以看到當前的占用是 8556271816 / 1024 /1024 /1024 = 7.9G ,太幸運了,果然是托管層出了問題,gc 上有大塊臟東西,這下有救了 。

3. 查看托管堆

知道托管堆出了問題后,接下來就可以用 !dumpheap -stat 去gc堆上翻一翻。

  1. 0:000> !dumpheap -stat 
  2. Statistics
  3.               MT    Count    TotalSize Class Name 
  4. 000007fef7b5c308    32867       788808 System.DateTime 
  5. 000007fef7b5e598    33049       793176 System.Boolean 
  6. 000007feec7301f8    30430      1217200 System.Web.HttpResponseUnmanagedBufferElement 
  7. 000007fef7b56020     2931      3130928 System.Object[] 
  8. 000007fef7b580f8   219398      5265552 System.Int32 
  9. 000007fe9a0c5428    46423      7799064 xxx.Laundry.Entities.V_InvoiceInfo 
  10. 000007fef7b59638   164418      7892064 System.Text.StringBuilder 
  11. 000007fef7b56980   164713     10059852 System.Char[] 
  12. 000007fef7b5a278     7351     26037217 System.Byte[] 
  13. 000007fe9a0d8758       35     28326856 xxx.Laundry.Entities.V_ClothesTagInfo[] 
  14. 0000000002536f50    76837     77016088      Free 
  15. 000007fe9a327ab0    46534    312964608 xxx.Laundry.Entities.V_InvoiceClothesInfo[] 
  16. 000007fe9a0c4868  2068912    397231104 xxx.Laundry.Entities.V_ClothesTagInfo 
  17. 000007fef7b55b70 98986851   3483764540 System.String 
  18. 000007fe9a10ef80 23998759   3839801440 xxx.Laundry.Entities.V_InvoiceClothesInfo 
  19. Total 126039641 objects 

我去,托管堆上的 xxx.Laundry.Entities.V_InvoiceClothesInfo 對象居然高達 2399w ,占了大概 3.6G,這還不算其附屬對象,對了,如果直接用 !dumpheap -mt xxx 輸出 address 的話,很難進行UI中止,所以這里有一個小技巧,用 range 來限定一下,如下代碼所示:

  1. 0:000> !dumpheap -mt 000007fe9a10ef80 0 0000000180027b30 
  2.          Address               MT     Size 
  3. 0000000180027800 000007fe9a10ef80      160      
  4. 0000000180027910 000007fe9a10ef80      160      
  5. 0000000180027a20 000007fe9a10ef80      160      
  6. 0000000180027b30 000007fe9a10ef80      160      
  7.  
  8. Statistics
  9.               MT    Count    TotalSize Class Name 
  10. 000007fe9a10ef80        4          640 xxx.Laundry.Entities.V_InvoiceClothesInfo 
  11. Total 4 objects 

4. 查找引用根

接下來用 !gcroot 隨便找一個 address 查看它的引用鏈,看看它到底被誰引用著?

  1. 0:000> !gcroot 0000000180027800 
  2. HandleTable: 
  3.     00000000013715e8 (pinned handle) 
  4.     -> 000000058003c038 System.Object[] 
  5.     -> 00000004800238a0 System.Collections.Generic.List`1[[xxx.Laundry.APIService.Models.Common.BaseModel, xxx.Laundry.APIService]] 
  6.     -> 0000000317e01ae0 xxx.Laundry.APIService.Models.Common.BaseModel[] 
  7.     -> 000000028010caf0 xxx.Laundry.APIService.Models.Common.BaseModel 
  8.     -> 00000003014cbbd0 System.Collections.Generic.List`1[[xxx.Laundry.Entities.V_InvoiceInfo, xxx.Laundry.Entities]] 
  9.     -> 00000003014f3580 xxx.Laundry.Entities.V_InvoiceInfo[] 
  10.     -> 00000003014cd7f0 xxx.Laundry.Entities.V_InvoiceInfo 
  11.     -> 000000038cc49bf0 System.Collections.Generic.List`1[[xxx.Laundry.Entities.V_InvoiceClothesInfo, xxx.Laundry.Entities]] 
  12.     -> 000000038cc49c18 xxx.Laundry.Entities.V_InvoiceClothesInfo[] 
  13.     -> 0000000180027800 xxx.Laundry.Entities.V_InvoiceClothesInfo 
  14.  
  15. Found 1 unique roots (run '!GCRoot -all' to see all roots). 

從輸出中可以看到,它貌似被一個 List 所持有,哈哈,總算找到了,接下來就簡單了,直接用 !objsize 看一看它的 size 有多大?

  1. 0:000> !objsize 00000004800238a0 
  2. sizeof(00000004800238a0) = -1972395312 (0x8a6fa2d0) bytes (System.Collections.Generic.List`1[[xxx.Laundry.APIService.Models.Common.BaseModel, xxx.Laundry.APIService]]) 

看到上面的 -1972395312 了嗎?我去,int 類型的 size 直接給爆掉了,果然是個大對象,就是你了。。。如果非要看大小也可以,寫一個腳本遍歷一下。

三:總結

知道是 List 做的孽后,仔細閱讀了源碼才知道,原來是給用戶第一次數據全量同步的時候,服務端為了加速將數據緩存在 List 這個靜態變量中,很遺憾的是并沒有在合適的時機進行釋放,造成了高峰期內存直線暴增,優化方案很簡單,就是修改業務邏輯咯,增加釋放內存的時機。

題外話

如果你遇到的是這種 Strong Handles 的靜態變量,也可以直接用可視化的 dotMemory 查看。

當然你要保證你有足夠的內存,畢竟也算是小10G的dump ??, 我的 16G 內存一下子就被吃掉了。。。

善于用 String 駐留池機制來優化,看看它的源碼定義吧。

  1. public sealed class String 
  2.    { 
  3.        [SecuritySafeCritical] 
  4.        public static string Intern(string str) 
  5.        { 
  6.            if (str == null
  7.            { 
  8.                throw new ArgumentNullException("str"); 
  9.            } 
  10.            return Thread.GetDomain().GetOrInternString(str); 
  11.        } 
  12.    } 

 

責任編輯:武曉燕 來源: 一線碼農聊技術
相關推薦

2022-10-25 14:17:01

.NET代碼程序

2023-07-06 10:11:38

.NET模式dump

2024-07-12 11:20:34

.NET崩潰視覺程序

2024-09-14 10:28:56

.NET卡死程序

2023-07-31 22:29:20

CPU.NETAPI

2021-11-02 07:54:41

內存.NET 系統

2021-04-21 07:38:41

CPU游戲站程序

2024-05-28 10:18:30

WPF程序數據

2023-06-26 00:12:46

2024-12-27 13:31:18

.NETdump調試

2024-03-28 12:56:36

2023-04-06 10:52:18

2021-10-09 10:24:08

NET爬蟲內存

2023-04-26 12:48:58

.NET程序類型

2024-05-20 09:39:02

.NETurl線程池

2023-09-27 07:23:10

.NET監控軟件

2023-03-26 20:24:50

ERP網站系統

2024-03-26 00:44:53

.NETCIM系統

2022-10-13 18:40:05

.NETOA后端

2021-10-27 07:30:32

.NETCPU論壇
點贊
收藏

51CTO技術棧公眾號

av大全在线免费看| 国产不卡精品视男人的天堂| 成人精品一区二区三区电影黑人| 日本少妇一区二区三区| 日韩av电影网址| 久久婷婷五月综合色丁香| 很黄很黄激情成人| 欧美亚一区二区| 九色一区二区| 国产亚洲精品久久777777| 成人网ww555视频免费看| 91色在线porny| 久久久视频在线| 在线观看欧美一区二区| 伊人久久视频| 久久综合九色综合97_久久久| 欧美极品美女视频网站在线观看免费| av网站在线不卡| 欧美成人片在线| 黄色在线一区| 正在播放欧美一区| 中文字幕第80页| 国产小视频在线| 综合一区av| 欧美疯狂性受xxxxx喷水图片| 亚洲精品一区二区三| 日日夜夜狠狠操| 欧美五码在线| 午夜国产精品一区| 国产欧美精品一区二区三区| 久久久.www| 国产精品美女久久久久| 综合欧美一区二区三区| 成人美女免费网站视频| 久久夜色精品国产噜噜亚洲av| 农村少妇一区二区三区四区五区 | 少妇高潮大叫好爽喷水| 在线观看日韩一区二区| 日韩成人综合| 欧美久久一二区| 国产麻花豆剧传媒精品mv在线| 水中色av综合| 日韩在线一区二区| 中文字幕精品www乱入免费视频| 熟妇高潮一区二区| 日本蜜桃在线观看视频| 久久久综合视频| 国产成人精品福利一区二区三区 | 国产精品免费电影| 亚洲精品国产精品国自| 日韩美女在线| 亚洲专区一二三| 久久精品aaaaaa毛片| 性一交一乱一透一a级| 日韩一级不卡| 亚洲视频在线观看| 午夜剧场在线免费观看| 国精一区二区三区| www亚洲一区| 精品久久蜜桃| 在线免费看毛片| 青青草成人在线观看| 久久资源免费视频| 天堂www中文在线资源| 欧美日韩免费看片| 国产精品国产三级国产a | jizzjizz国产精品喷水| 九九热视频在线观看| 91视频在线看| 日本免费高清一区| 精品人妻一区二区三区麻豆91 | 第一社区sis001原创亚洲| 69成人精品免费视频| 免费一级特黄特色毛片久久看| 国产69精品久久app免费版| 久久精品视频一区二区| 91精品久久久久久久久青青| 一级aaaa毛片| 国产999精品久久久久久| 国产精品精品视频| 国产精品自拍视频一区| 亚洲一区二区成人| 九九九久久久久久| 99自拍偷拍视频| 日韩黄色网络| 日韩精品一区二区在线观看| 日日躁夜夜躁aaaabbbb| 小说区图片区亚洲| 精品久久久久久久久久久久久久久 | 91影院成人| 亚洲国产小视频| 精品人妻人人做人人爽夜夜爽| 在线成人视屏| 91精品免费在线| 亚洲精品女人久久久| 亚洲视频国产精品| 欧美日韩另类一区| 精品www久久久久奶水| 不卡av免费观看| 一本一道综合狠狠老| 久久久亚洲精品无码| 欧美xxx网站| 91精品免费在线| 97超碰在线资源| 欧美调教网站| 日韩亚洲欧美成人| 日本午夜精品视频| 极品日韩av| 韩国19禁主播vip福利视频| 成人一级片免费看| 亚洲区欧美区| 97婷婷涩涩精品一区| 制服丝袜在线一区| 免费一级欧美片在线观看| 欧美又大粗又爽又黄大片视频| 男人天堂中文字幕| 蜜臀av性久久久久蜜臀aⅴ四虎| 超碰97在线人人| 国产成人毛毛毛片| 国产91色综合久久免费分享| 日本一区二区三区视频在线观看| 婷婷在线播放| 亚洲国产精品综合小说图片区| 老子影院午夜伦不卡大全| 丝袜中文在线| 欧美日韩亚洲国产综合| 在线看免费毛片| 欧美欧美在线| 精品国产乱码久久久久久免费| 美女又黄又免费的视频| 欧美日韩一区二区三区视频播放| 中文字幕日韩欧美| 久久精品视频7| 波多野结衣精品在线| 久久福利电影| 欧美色图天堂| 欧美日韩亚洲一区二| 日韩免费毛片视频| 精品国产一区二区三区不卡蜜臂| 日韩精品在线视频| 免费看91的网站| 欧美肥老太太性生活| 国产成人精品午夜| 日韩在线无毛| 成人免费在线播放视频| 91蝌蚪视频在线观看| 国产欧美在线观看免费| 亚洲欧美成人一区二区在线电影| 欧美黄色高清视频| 石原莉奈一区二区三区在线观看| 成人国产精品免费视频| av在线播放网| 亚洲成人黄色影院| 无码人妻一区二区三区精品视频| 香蕉视频一区| 2023亚洲男人天堂| 欧美日韩在线中文字幕| 色偷偷久久一区二区三区| 能免费看av的网站| 日韩电影在线看| 亚洲乱码一区二区三区| 中文.日本.精品| 色婷婷av一区二区三区久久| 中文字幕五月天| 性久久久久久| 97超级碰碰| av在线资源站| 在线91免费看| 久久精品国产亚洲AV无码麻豆| 奇米色777欧美一区二区| 亚洲精品国产一区| 国产欧美日韩电影| 久久久久久有精品国产| 香蕉视频免费在线看| 亚洲人成在线播放网站岛国| 日本中文字幕片| 视频精品在线观看| 久久免费视频这里只有精品| 天堂成人在线视频| 亚洲图片激情小说| 中文字幕一区二区三区人妻在线视频| 亚洲大片av| 日本高清视频一区二区三区| 视频欧美精品| 性欧美激情精品| 成人高清网站| 欧美α欧美αv大片| 国产婷婷色一区二区在线观看| 国产精品九色蝌蚪自拍| 又黄又爽的网站| 日本女优在线视频一区二区| 成年人三级视频| 天堂一区二区三区四区| 成人国产精品久久久久久亚洲| heyzo中文字幕在线| 91精品国产品国语在线不卡| 中文字幕黄色网址| 国产伦精品一区二区三区在线观看| 日韩伦理一区二区三区av在线| jk漫画禁漫成人入口| 日韩在线播放av| 天天摸天天干天天操| 欧美精选一区二区| www.日本精品| 91在线视频在线| 久久视频这里有精品| 日韩欧美大片| 国产精品久久国产三级国电话系列| 成a人片在线观看| 欧美精品第一页| av大片免费在线观看| av午夜一区麻豆| 97视频在线免费| 久久密一区二区三区| 国产一区二区中文字幕免费看| 国产91精品在线| 色吧影院999| 香蕉视频免费看| 精品久久久久一区| 国产露脸无套对白在线播放| 中文乱码免费一区二区| 亚洲人辣妹窥探嘘嘘| 在线视频免费在线观看一区二区| 伊人久久av导航| 亚洲成人五区| 97在线视频观看| 2024最新电影免费在线观看| 精品欧美乱码久久久久久| 欧美高清69hd| 亚洲日本在线观看| 国产91丝袜美女在线播放| 99久久婷婷国产综合精品电影 | 亚洲欧美在线视频免费| 一区2区3区在线看| 欧美特级一级片| 亚洲欧洲精品一区二区精品久久久| 亚洲久久久久久久| 美女在线观看视频一区二区| 久久久久狠狠高潮亚洲精品| 国产精品久久久免费| 国产3p露脸普通话对白| 免费欧美激情| 久久久精品有限公司| 精品嫩草影院| 国产一区二区三区免费不卡| 国产精品对白久久久久粗| 全亚洲最色的网站在线观看| www亚洲人| 亚洲男人天堂手机在线| 外国精品视频在线观看 | 精品系列免费在线观看| 国产树林野战在线播放| 久久精品免费一区二区三区| 国产在线一区二| 国产精品高潮呻吟久久久久| 国产麻豆乱码精品一区二区三区| 97人人澡人人爽91综合色| 奇门遁甲1982国语版免费观看高清 | 欧美 日韩精品| 久久精品五月| 老司机午夜网站| 免费久久精品| 秋霞久久久久久一区二区| 狠狠色丁香婷婷综合影院| 999在线免费观看视频| 大伊香蕉精品在线品播放| 国语精品中文字幕| 中国av一区| 99中文字幕| 欧美aaaaa级| 精品国产福利| 成人精品影视| 免费成人深夜夜行网站视频| 亚洲成人在线| 四虎永久在线精品无码视频| 美女在线一区二区| 麻豆精品国产传媒| 99久久er热在这里只有精品15| 午夜理伦三级做爰电影| 国产精品久久久久久妇女6080| 一起操在线播放| 国产日韩欧美精品一区| 91视频在线免费| 久久精品视频网| 成人免费毛片东京热| 国产精品美女久久久久久久| 国产精品一区二区入口九绯色| 精品写真视频在线观看| 精品人妻一区二区免费| 久久久91精品国产一区二区精品| 国产一区第一页| 国产清纯白嫩初高生在线观看91 | 伊人网综合在线| 欧美成人bangbros| 国产在线资源| 欧美高跟鞋交xxxxxhd| 日本在线视频网| 在线电影中文日韩| 久草在线青青草| 久久精品免费播放| 日韩在线观看www| 久久久久久久影院| 本网站久久精品| 精品国产乱码久久久久久郑州公司 | 久久精品国产69国产精品亚洲| 丰满大乳少妇在线观看网站| 国产精品久久久久秋霞鲁丝| 国产调教精品| 久久精品国产精品亚洲精品色| 久久影视一区| 中文字幕日本最新乱码视频| 亚洲一区图片| 欧美熟妇另类久久久久久多毛| 久久亚洲私人国产精品va媚药| 超碰手机在线观看| 欧美视频完全免费看| 手机看片福利永久| 欧美成人免费全部| 青春草免费在线视频| 国产精品久久久久91| 国产欧美三级电影| 久久久久久久久久久久久国产| 免费成人美女在线观看.| 91av在线免费| 性久久久久久久久久久久| 国产美女主播在线观看| 欧美一区二区高清| 777电影在线观看| 国产福利视频一区| 久久av综合| 久久精品99国产| 久久色成人在线| 天天干天天干天天| 欧美日韩一区二区三区四区| 日本不卡免费播放| 午夜伦理精品一区| 电影一区二区在线观看| 日韩欧美猛交xxxxx无码| 亚洲美女视频在线免费观看| 性色av浪潮av| 洋洋成人永久网站入口| 精品国产伦一区二区三区| 久久最新资源网| japansex久久高清精品| 国产一区再线| 99精品国产在热久久下载| 精品人妻一区二区三区日产| 亚洲成年人网站在线观看| 黄色aaa毛片| 一区二区三区亚洲| 成人勉费视频| 日韩精品久久久| 日本午夜一区二区| 手机免费观看av| 欧美日韩成人在线| 菠萝菠萝蜜在线视频免费观看 | 国内毛片毛片毛片毛片| 久精品免费视频| 国产精品色呦| 成人小视频在线看| 国产免费观看久久| 一级爱爱免费视频| 久久综合久久八八| 北条麻妃在线一区二区免费播放| 成人性生活视频免费看| 2020国产精品久久精品美国| 波多野结衣绝顶大高潮| 欧美成人乱码一区二区三区| 欧美家庭影院| 国产美女精品在线观看| 国产精品毛片在线看| 亚洲av熟女国产一区二区性色| 欧美浪妇xxxx高跟鞋交| 黄色在线看片| 欧美在线一二三区| 久久99精品久久久| 国产女主播喷水高潮网红在线| 欧美影院一区二区三区| 精产国品自在线www| 国产精品视频精品| 91一区二区三区四区| 亚洲色图欧美另类| 色综合久久天天| 久久久久久国产精品免费无遮挡 | 手机av在线免费观看| 国产精品视频yy9099| 亚洲天堂偷拍| 国产探花视频在线播放| 日韩欧美一级特黄在线播放| 亚洲天堂资源| 99久久久无码国产精品性色戒| 99精品热视频| 国产一区二区小视频| 最近2019中文字幕大全第二页 | 91精品国产手机| 都市激情综合| 国产精品videossex国产高清| 久久精品夜色噜噜亚洲a∨| 成人无码一区二区三区| 国产在线精品播放|