精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美激情在线免费观看| 国产亚洲欧美日韩在线观看一区二区 | 日韩不卡一二三区| 亚洲色图欧美制服丝袜另类第一页| 91九色丨porny丨国产jk| 天堂av资源在线| 红桃视频国产精品| 亚洲成人av在线| www.亚洲天堂网| 日本久久一级片| 免费国产自线拍一欧美视频| 亚洲国产私拍精品国模在线观看| 久久久久久久久久网| 久草在线青青草| 久久久精品性| 麻豆成人在线看| 制服丝袜第一页在线观看| 丁香影院在线| 国产婷婷精品av在线| 成人av.网址在线网站| 欧美成人综合色| 美女毛片一区二区三区四区| 人人超碰91尤物精品国产| 永久免费毛片在线播放不卡 | 青青草97国产精品免费观看 | 精品久久久三级| 久久精品99北条麻妃| 中文在线日韩| 亚洲国产古装精品网站| 超碰超碰在线观看| bl视频在线免费观看| 国产亚洲欧洲997久久综合| 91日本视频在线| 亚洲天堂一区在线| 永久亚洲成a人片777777| 亚洲欧美精品在线| 中文字幕人妻熟女人妻a片| 日韩av福利| 亚洲第一激情av| 免费看av软件| 国产一二三区在线视频| 国产成人在线视频网站| 国产精品流白浆视频| 久久亚洲成人av| 97精品视频在线看| 亚洲欧美一区二区精品久久久| 黄色手机在线视频| 男人久久天堂| 有坂深雪av一区二区精品| 午夜精品亚洲一区二区三区嫩草| 国产情侣激情自拍| 久久精品免费看| 国产成人涩涩涩视频在线观看| 久久久久成人精品无码| 91影院成人| 一区二区在线视频播放| 免费看黄色aaaaaa 片| 北条麻妃一区二区三区在线观看| 欧美猛男男办公室激情| www.超碰com| 8x8ⅹ拨牐拨牐拨牐在线观看| 亚洲免费观看高清在线观看| 一区二区免费在线观看| jizz日韩| 国产欧美一区二区精品性色| 秋霞毛片久久久久久久久| www.日韩在线观看| 国产老肥熟一区二区三区| 成人国产精品一区二区| 一本色道久久综合熟妇| 麻豆国产91在线播放| 国产精品久久久久久影视 | 大桥未久av一区二区三区| 免费人成在线观看视频播放| 亚洲色图美国十次| 一区二区在线观看免费| 黄色一级片av| 国产黄色小视频在线| 日韩毛片一二三区| 玖玖精品在线视频| dy888亚洲精品一区二区三区| 最新久久zyz资源站| 日韩人妻精品一区二区三区| 日本三级视频在线播放| 日韩一区中文字幕| 久久久久福利视频| 超碰在线97国产| 五月婷婷激情综合网| 日本成年人网址| 精品视频一区二区三区四区五区| 在线观看视频欧美| 亚洲一区日韩精品| 亚洲一区av| 欧美一二区视频| yjizz视频| 美日韩中文字幕| 日韩综合视频在线观看| 福利所第一导航| 在线亚洲免费| 国产精品久久999| 国产一区二区在线不卡| 成人亚洲一区二区一| 久久亚洲免费| 男人天堂久久久| 亚洲一区二区欧美激情| 中文字幕无码不卡免费视频| 巨大黑人极品videos精品| 91精品国产91综合久久蜜臀| 中国黄色片视频| 精品亚洲精品| 日韩专区在线播放| 国产 欧美 日韩 在线| 青青草成人在线观看| 91九色偷拍| 九色视频在线观看免费播放| 国产欧美精品一区二区色综合朱莉 | 久久久不卡网国产精品一区| 一区二区三区在线观看www| 青春草在线视频| 在线观看精品一区| 人妻 日韩 欧美 综合 制服| jlzzjlzz亚洲女人| 久久久久久久久久久免费 | 番号在线播放| 亚洲午夜在线观看视频在线| 欧美少妇性生活视频| 成人性片免费| 日韩成人av在线播放| 在线免费看av网站| 久久久久久久欧美精品| 91久久爱成人| 日本暖暖在线视频| 日韩欧美一区二区在线| 欧美xxxxxbbbbb| 国产真实有声精品录音| 久久久久久中文| 88av在线视频| 久久精品水蜜桃av综合天堂| 欧美久久久久久久久久久久久久| 中文另类视频| 国产午夜精品理论片a级探花| 久久久久久久久久久久久女过产乱| 久久激情一区| 国内精品久久国产| 欧美一卡二卡| 4438x亚洲最大成人网| 舐め犯し波多野结衣在线观看| 黄色亚洲大片免费在线观看| 国产日韩精品在线观看| 男人天堂网在线| 姬川优奈aav一区二区| 欧美一级大片免费看| 欧美色图一区| 欧美中文字幕在线播放| 日韩一区免费视频| 亚洲伊人伊色伊影伊综合网| 亚洲精品成人在线播放| 久久美女视频| 国产精品美女www| 成人18在线| 欧洲精品一区二区| 人妻aⅴ无码一区二区三区| 国产精品五区| 蜜桃麻豆www久久国产精品| sis001亚洲原创区| 亚洲精品国产精品国自产在线| 久久激情免费视频| 美国欧美日韩国产在线播放| 四虎永久在线精品免费一区二区| 欧美特黄aaaaaaaa大片| 亚洲人av在线影院| 日本天堂网在线| 91免费视频大全| 久久久久久久久久久福利| 西瓜成人精品人成网站| 国内精品久久影院| av女名字大全列表| 色哟哟精品一区| 久久视频精品在线观看| 免费欧美在线视频| 亚洲在线色站| 精品国产亚洲一区二区三区大结局| 久久九九国产精品怡红院| 国产麻豆免费观看| 一区二区激情视频| 国产黑丝一区二区| 久久国产日韩| 亚洲一区二区精品在线观看| 二区三区精品| 久久噜噜噜精品国产亚洲综合| 日韩中文字幕观看| 日本韩国欧美在线| 国产精品精品软件男同| 精品一区二区三区香蕉蜜桃| 成人午夜免费剧场| 婷婷亚洲成人| 成人激情av在线| a级网站在线播放| 精品噜噜噜噜久久久久久久久试看 | 欧美精彩一区二区三区| 69堂免费精品视频在线播放| 久久躁狠狠躁夜夜爽| 免费观看的毛片| 色香蕉久久蜜桃| 青花影视在线观看免费高清| 成人网在线免费视频| 国产美女主播在线| 国内精品久久久久久久影视简单 | 国内精品写真在线观看| 男女啪啪的视频| 欧美人与动xxxxz0oz| 国产女人精品视频| 韩国av网站在线| 亚洲国产精品字幕| 一二三四区视频| 午夜a成v人精品| a级黄色免费视频| 成年人国产精品| 日本xxxx黄色| 亚洲精品在线二区| 国产高清免费在线| 亚洲制服欧美另类| 99re资源| 福利一区二区| 精品中文字幕在线观看| 国产午夜在线观看| 亚洲第一中文字幕在线观看| 亚洲午夜无码久久久久| 午夜精品久久久久久久| 亚洲黄色网址大全| 91在线视频播放地址| 成人性生交视频免费观看| 久久久久久久欧美精品| 男人天堂成人网| 欧美日韩一区二区综合 | 日本一本中文字幕| 999精品一区| 日本一区二区三区视频免费看| 99国产精品免费网站| 国产日本欧美视频| 免费毛片b在线观看| 欧美激情啊啊啊| 国产日产一区二区三区| 日韩在线精品视频| 欧美性猛交xxx乱大交3蜜桃| 日韩在线中文视频| 欧洲美女少妇精品| 一二美女精品欧洲| 97在线观看免费观看高清 | 国产另类自拍| 成人性生交大片免费看96| 国产精品自拍首页| 麻豆成人入口| 久久99国产精品| 蜜臀av一区| 青青草国产精品| 日本久久精品| 欧美性视频在线播放| 伊人情人综合网| 18禁裸男晨勃露j毛免费观看| 在线成人h网| 国产精品秘入口18禁麻豆免会员| 国产欧美大片| 浓精h攵女乱爱av| 久久99深爱久久99精品| 日日夜夜精品视频免费观看| 国产成人免费视| 中文成人无字幕乱码精品区| 91免费观看在线| 国产调教在线观看| 亚洲色大成网站www久久九九| 欧美成人片在线观看| 精品久久久久久久久中文字幕 | 日韩精品123区| 亚洲国产欧美在线| 久久亚洲精品石原莉奈| 色8久久人人97超碰香蕉987| 亚洲高清视频免费观看| 日韩一级二级三级精品视频| 好吊色一区二区| 亚洲人精品午夜在线观看| 久做在线视频免费观看| 亚洲91精品在线观看| 中韩乱幕日产无线码一区| 91视频免费在线| 欧美亚洲大陆| 五月天色婷婷综合| 在线亚洲成人| 欧洲美女亚洲激情| eeuss影院一区二区三区| 三年中国中文观看免费播放| 亚洲精品免费在线观看| 国产精品21p| 日韩一级欧美一级| 成人高清在线| 6080yy精品一区二区三区| 九九九精品视频| 精品一区二区日本| 久久久久久美女精品 | 在线天堂资源| 91在线无精精品一区二区| 天堂av一区二区三区在线播放| 亚洲欧美日韩国产成人综合一二三区 | bt欧美亚洲午夜电影天堂| 亚洲色图日韩精品| 欧美日韩一区二区在线 | 亚洲伊人精品酒店| 蜜桃传媒一区二区| 欧美视频导航| 色乱码一区二区三区在线| av亚洲精华国产精华精华| 免费成人深夜夜行网站| 色天使久久综合网天天| 午夜精品小视频| 日韩中文字幕在线精品| 日本韩国欧美| 久久精品成人一区二区三区蜜臀| 综合激情在线| 亚洲网中文字幕| 国产精品久久久久久久久图文区 | 免费看的黄色录像| 欧美性猛交xxxx乱大交| 人妻丰满熟妇av无码区hd| 久久综合伊人77777蜜臀| 成人在线观看免费视频| 欧美日韩一区综合| 在线视频精品| 欧美日韩一区二区三区四区五区六区| 最近中文字幕一区二区三区| 中文字幕 视频一区| 亚洲片av在线| 成人影院av| 欧美成熟毛茸茸复古| 99精品免费| 成年人的黄色片| 亚洲高清三级视频| 特黄视频在线观看| 91精品国产高清久久久久久久久 | 日韩成人一区| 亚洲v欧美v另类v综合v日韩v| 久久久噜噜噜久久狠狠50岁| 国产精品一区二区入口九绯色| 亚洲成人精品影院| 人妻少妇一区二区三区| 国外视频精品毛片| 老司机aⅴ在线精品导航| 国产欧美日韩网站| 不卡电影免费在线播放一区| 日韩毛片在线视频| 亚洲国产中文字幕在线观看| 草草视频在线观看| 九色一区二区| 久久五月激情| 少妇av片在线观看| 欧美日韩高清不卡| 超碰免费公开在线| 国产精品久久久久久免费观看| 91久久久久| 精品欧美一区二区久久久| 在线精品亚洲一区二区不卡| av基地在线| 亚洲专区国产精品| 亚洲国产一区二区三区a毛片| 中文字幕一区二区久久人妻网站| 日韩欧美高清在线视频| 高清在线观看av| 91在线视频免费| 亚洲激情婷婷| 在线观看日本中文字幕| 欧美日韩精品一区二区| 91麻豆国产福利在线观看宅福利| wwwxx欧美| 石原莉奈在线亚洲二区| 亚洲人做受高潮| 精品国产免费一区二区三区四区 | 欧美卡1卡2卡| 国产精品国精产品一二| 久久人人九九| 久久97超碰国产精品超碰| 免费在线观看日韩| 亚洲欧美国产日韩中文字幕| 亚洲一区二区小说| 每日在线更新av| 中文字幕日韩欧美一区二区三区| www.xxx国产| 欧日韩不卡在线视频| 午夜影院欧美| 无码精品一区二区三区在线播放| 欧美自拍丝袜亚洲| 在线中文字幕电影| 欧美一区二区综合| 国产乱淫av一区二区三区| 日韩三级小视频| 久久艳片www.17c.com| 噜噜噜天天躁狠狠躁夜夜精品 | 69精品国产久热在线观看| 国产真实乱子伦| 亚洲一区二区三区四区在线免费观看 | crdy在线观看欧美| 国产成人黄色片|