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

記一次 .NET某網絡邊緣計算系統 卡死分析

開發 前端
網絡邊緣計算是一種計算模型,它將計算能力和數據存儲位置從傳統的集中式數據中心向網絡邊緣的用戶設備、傳感器和其他物聯網設備移動。

一、背景

1. 講故事

早就聽說過有什么 網絡邊緣計算,這次還真給遇到了,有點意思,問了下 chatgpt 這是干嘛的 ?

網絡邊緣計算是一種計算模型,它將計算能力和數據存儲位置從傳統的集中式數據中心向網絡邊緣的用戶設備、傳感器和其他物聯網設備移動。這種模型的目的是在接近數據生成源頭的地方提供更快速的計算和數據處理能力,從而減少數據傳輸延遲并提高服務質量。網絡邊緣計算使得在設備本地進行數據處理和決策成為可能,同時也有助于減輕對中心數據中心的網絡流量和負載。

看到.NET還有這樣的應用場景還是挺欣慰的,接下來就來分析下這個dump到底是怎么回事?

二、WinDbg 分析

1. 為什么會卡死

不同程序的卡死有不同的分析方式,所以要先鑒別下程序的類型以及主線程的調用棧即可,參考如下:

0:000> !eeversion
5.0.721.25508
5.0.721.25508 @Commit: 556582d964cc21b82a88d7154e915076f6f9008e
Server mode with 64 gc heaps
SOS Version: 8.0.10.10501 retail build

0:000> k
 # Child-SP          RetAddr               Call Site
00 0000ffff`e0dddac0 0000fffd`c194c30c     libpthread_2_28!pthread_cond_wait+0x238
...
18 (Inline Function) --------`--------     libcoreclr!RunMain::$_0::operator()::{lambda(Param *)#1}::operator()+0x14c [/__w/1/s/src/coreclr/src/vm/assembly.cpp @ 1536] 
19 (Inline Function) --------`--------     libcoreclr!RunMain::$_0::operator()+0x188 [/__w/1/s/src/coreclr/src/vm/assembly.cpp @ 1538] 
1a 0000ffff`e0dde600 0000fffd`c153e860     libcoreclr!RunMain+0x298 [/__w/1/s/src/coreclr/src/vm/assembly.cpp @ 1538] 
...
20 0000ffff`e0dded10 0000fffd`c1bf7800     libhostpolicy!corehost_main+0xc0 [/root/runtime/src/installer/corehost/cli/hostpolicy/hostpolicy.cpp @ 409] 
21 (Inline Function) --------`--------     libhostfxr!execute_app+0x2c0 [/root/runtime/src/installer/corehost/cli/fxr/fx_muxer.cpp @ 146] 
22 (Inline Function) --------`--------     libhostfxr!<unnamed-namespace>::read_config_and_execute+0x3b4 [/root/runtime/src/installer/corehost/cli/fxr/fx_muxer.cpp @ 520] 
23 0000ffff`e0ddeeb0 0000fffd`c1bf6840     libhostfxr!fx_muxer_t::handle_exec_host_command+0x57c [/root/runtime/src/installer/corehost/cli/fxr/fx_muxer.cpp @ 1001] 
24 0000ffff`e0ddf000 0000fffd`c1bf4090     libhostfxr!fx_muxer_t::execute+0x2ec
25 0000ffff`e0ddf130 0000aaad`c9e1d22c     libhostfxr!hostfxr_main_startupinfo+0xa0 [/root/runtime/src/installer/corehost/cli/fxr/hostfxr.cpp @ 50] 
26 0000ffff`e0ddf200 0000aaad`c9e1d468     dotnet!exe_start+0x36c [/root/runtime/src/installer/corehost/corehost.cpp @ 239] 
27 0000ffff`e0ddf370 0000fffd`c1c63fe0     dotnet!main+0x90 [/root/runtime/src/installer/corehost/corehost.cpp @ 302] 
28 0000ffff`e0ddf3b0 0000aaad`c9e13adc     libc_2_28!_libc_start_main+0xe0
29 0000ffff`e0ddf4e0 00000000`00000000     dotnet!start+0x34

從卦中的指標來看,這是一個 Linux 上部署的 Web網站,既然是網站的卡死,那就要關注各個線程都在做什么。

2. 線程都在干嘛

以我多年的分析經驗,絕大多數都是由于 線程饑餓 或者說 線程池耗盡 導致的,首先我們看下線程池的情況。

0:000> !t
ThreadCount:      365
UnstartedThread:  0
BackgroundThread: 354
PendingThread:    0
DeadThread:       10
Hosted Runtime:   no
                                                                                                            Lock  
 DBG   ID     OSID ThreadOBJ           State GC Mode     GC Alloc Context                  Domain           Count Apt Exception
   0    1    31eaf 0000AAADF267C600  2020020 Preemptive  0000000000000000:0000000000000000 0000aaadf26634b0 -00001 Ukn 
...
 423  363    36d30 0000FFDDB4000B20  1020220 Preemptive  0000000000000000:0000000000000000 0000aaadf26634b0 -00001 Ukn (Threadpool Worker) 
 424  364    36d31 0000FFDDA8000B20  1020220 Preemptive  0000000000000000:0000000000000000 0000aaadf26634b0 -00001 Ukn (Threadpool Worker) 
 425  365    36d32 0000FFDDAC000B20  1020220 Preemptive  0000000000000000:0000000000000000 0000aaadf26634b0 -00001 Ukn (Threadpool Worker) 

0:000> !tp
Using the Portable thread pool.

CPU utilization:  9%
Workers Total:    252
Workers Running:  236
Workers Idle:     13
Worker Min Limit: 64
Worker Max Limit: 32767

Completion Total:   0
Completion Free:    0
Completion MaxFree: 128
Completion Current Limit: 0
Completion Min Limit:     64
Completion Max Limit:     1000

從卦中看當前有 365 個托管線程,這個算多嗎?對于64core 來說,這個線程其實算是正常,訓練營里的朋友都知道,server版的gc僅gc線程就有 64*2=128 個,接下來再看一個指標就是當前是否存在任務積壓?可以使用 !ext tpq 命令,參考輸出如下:

0:000> !ext tpq
global work item queue________________________________

local per thread work items_____________________________________

從卦中看當前沒有任務積壓,這就有點反經驗了。

3. 真的不是線程饑餓嗎

最后一招比較徹底,就是看各個線程棧都在做什么,可以使用 ~*e !clrstack 命令。

這不看不知道,一看嚇一跳,有 193 個線程在 Task.Result 上等待,這玩意太經典了,然后從上面的調用棧 UIUpdateTimer_Elapsed 來看,貌似是一個定時器導致的,接下來我就好奇這代碼是怎么寫的?

分析上面的代碼之后,我發現它是和 Linux Shell 窗口進行命令交互,不知道為何 Shell 沒有響應導致代碼在這里卡死。

4. 為什么線程池沒有積壓

相信有很多朋友對這個反經驗的東西很好奇為什么請求沒有積壓在線程池,其實這個考驗的是你對 PortableThreadPool 的底層了解,這里我就簡單說一下吧。

  • 在 ThreadPool 中有一個 GateThread 線程是專門給線程池動態注入線程的,參考代碼如下:
private static class GateThread
{
    private static void GateThreadStart()
    {
        while (true)
        {
            bool wasSignaledToWake = DelayEvent.WaitOne((int)delayHelper.GetNextDelay(tickCount));

            WorkerThread.MaybeAddWorkingWorker(threadPoolInstance);
        }
    }
}
  • 一旦有人調用了 Task.Result 代碼,內部會主動喚醒 DelayEvent 事件,告訴 GateThread 趕緊通過 MaybeAddWorkingWorker 方法給我注入新的線程,參考代碼如下:
private bool SpinThenBlockingWait(int millisecondsTimeout, CancellationToken cancellationToken)
{
    bool flag3 = ThreadPool.NotifyThreadBlocked();

}
internal static bool NotifyThreadBlocked()
{
    if (UsePortableThreadPool)
    {
        return PortableThreadPool.ThreadPoolInstance.NotifyThreadBlocked();
    }
    return false;
}
public bool NotifyThreadBlocked()
{
    GateThread.Wake(this);
}

上面這種主動喚醒的機制是 C# 版 PortableThreadPool 做的優化來緩解線程饑餓的,這里有一個重點就是它只能緩解,換句話說如果上游太猛了還是會有請求積壓的,但為什么這里沒有積壓呢?很顯然上游不猛唄,那如何眼見為實呢?這就需要看 timer 的周期數即可,到當前的線程棧上給扒出來。

0:417> !DumpObj /d 0000ffee380757f8
Name:        System.Timers.Timer
MethodTable: 0000fffd4ab24030
EEClass:     0000fffd4ad6e140
Size:        88(0x58) bytes
File:        /home/user/env/dotnet/shared/Microsoft.NETCore.App/5.0.7/System.ComponentModel.TypeConverter.dll
Fields:
              MT    Field   Offset                 Type VT     Attr            Value Name
0000fffd4c947498  400001c        8 ...ponentModel.ISite  0 instance 0000000000000000 _site
0000000000000000  400001d       10 ....EventHandlerList  0 instance 0000000000000000 _events
0000fffd479195d8  400001b       98        System.Object  0   static 0000000000000000 s_eventDisposed
0000fffd47926f60  400000e       40        System.Double  1 instance 3000.000000 _interval
0000fffd4791fb10  400000f       48       System.Boolean  1 instance                1 _enabled
0000fffd4791fb10  4000010       49       System.Boolean  1 instance                0 _initializing
0000fffd4791fb10  4000011       4a       System.Boolean  1 instance                0 _delayedEnable
0000fffd4ab241d8  4000012       18 ...apsedEventHandler  0 instance 0000ffee3807aae8 _onIntervalElapsed
0000fffd4791fb10  4000013       4b       System.Boolean  1 instance                1 _autoReset
0000fffd4c944ea0  4000014       20 ...SynchronizeInvoke  0 instance 0000000000000000 _synchronizingObject
0000fffd4791fb10  4000015       4c       System.Boolean  1 instance                0 _disposed
0000fffd49963e28  4000016       28 ...m.Threading.Timer  0 instance 0000ffee38098dc8 _timer
0000fffd48b90a30  4000017       30 ...ing.TimerCallback  0 instance 0000ffee3807aaa8 _callback
0000fffd479195d8  4000018       38        System.Object  0 instance 0000ffee38098db0 _cookie

從卦中看當前是 3s 為一個周期,這就能解釋為什么線程池沒有積壓的底層原因了。

三、總結

這個卡死事故還是蠻好解決的,如果有一些經驗直接用dotnet-counter也是能搞定的,重點在于這是一個 Linux的dump,同時又是 .NET上的一個很好玩的場景,故此分享出來。

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

2022-01-17 21:28:36

管理系統.NET

2024-11-29 10:06:59

2024-05-20 09:39:02

.NETurl線程池

2023-09-27 07:23:10

.NET監控軟件

2022-10-13 18:40:05

.NETOA后端

2023-05-15 11:15:50

.NET門診語句

2024-09-14 10:28:56

.NET卡死程序

2024-06-06 10:51:15

自動化系統推測

2025-09-02 01:35:00

.NET光學定位軟件

2024-05-28 10:18:30

WPF程序數據

2024-03-28 12:56:36

2023-04-06 10:52:18

2024-03-26 00:44:53

.NETCIM系統

2023-03-26 20:24:50

ERP網站系統

2024-07-09 11:51:20

Windows線程池源碼

2025-10-29 01:11:00

.NET系統windows

2023-06-29 17:55:00

.NET日志WinDbg

2021-11-02 07:54:41

內存.NET 系統

2023-06-26 00:12:46

2024-12-27 13:31:18

.NETdump調試
點贊
收藏

51CTO技術棧公眾號

亚洲视频欧美视频| 性久久久久久久| 91久久在线观看| xxxxxx国产| 日韩av片子| 精品国产电影一区二区 | 亚洲欧美网站| 日韩亚洲精品视频| 午夜剧场免费看| 中韩乱幕日产无线码一区| 一区二区三区四区在线免费观看 | 手机免费av片| 深夜成人在线| 一区二区不卡在线播放| 日韩激情久久| 四虎精品一区二区三区| 精品一区二区在线播放| 日本一区二区三区四区视频| 免费一级肉体全黄毛片| 精品freesex老太交| 亚洲精品一区二区三区在线观看 | 91视频免费网址| 亚洲区综合中文字幕日日| 亚洲欧美国产日韩中文字幕| xxxx视频在线观看| 国产精品99精品一区二区三区∴| 精品电影在线观看| 黄色一级片国产| 日本高清视频在线观看| 91免费国产在线观看| 亚洲一区二区三区在线视频| 中文字幕在线播放不卡| 一本色道久久| 欧美高清电影在线看| www.xx日本| 欧美日韩国产高清电影| 日韩精品有码在线观看| 久久久久久久无码| 欧美人妖在线观看| 亚洲电影第1页| 久久久久国产免费| 精品一区二区三区中文字幕视频| 欧美日韩国产影片| www.涩涩涩| 日韩一区二区三区在线免费观看 | 99热这里只有精品99| 麻豆精品一二三| 国产精品va在线播放我和闺蜜| 亚洲免费激情视频| 中文在线一区| 2020久久国产精品| 无码人妻一区二区三区免费| 美女久久一区| 国产精品电影观看| 一区精品在线观看| 精品一区二区三区不卡| 国产免费观看久久黄| 国产精品探花视频| 国产精品99久久不卡二区| 99国精产品一二二线| 亚洲第一成年人网站| 成人免费高清在线观看| 精品欧美一区二区久久久伦| 免费观看成年在线视频网站| 国产拍欧美日韩视频二区| 亚洲精品久久区二区三区蜜桃臀 | 亚洲精品一级片| av电影在线观看完整版一区二区| 好看的日韩精品| 日本电影一区二区在线观看| 欧美激情一区二区三区全黄| 一区二区三区三区在线| 成人无遮挡免费网站视频在线观看| 亚洲麻豆国产自偷在线| 日韩中文字幕视频在线| 欧美一级特黄高清视频| 欧美91视频| 亚洲**2019国产| 区一区二在线观看| 另类人妖一区二区av| 96久久精品| 亚州av在线播放| 欧美激情一区二区三区四区| 日韩精品福利片午夜免费观看| 国产高清在线a视频大全| 色噜噜久久综合| 亚洲精品第三页| 免费看成人人体视频| 最近2019中文字幕第三页视频| 欧美精品videos极品| 亚洲欧美日韩国产一区| 成人国产精品一区二区| www.成人精品| 国产网站一区二区| 2022中文字幕| 欧美三级精品| 精品久久久久久久久久久久久久久久久 | 亚洲精品mp4| 最新日韩免费视频| 日韩视频三区| 成人免费午夜电影| 可以免费看污视频的网站在线| 亚洲欧洲综合另类在线| 国产xxxxx在线观看| 24小时成人在线视频| 日韩禁在线播放| 国产高清在线免费观看| 日韩和欧美一区二区| av成人在线电影| eeuss影院www在线播放| 欧美日韩人人澡狠狠躁视频| 伊人色在线视频| 精品美女在线视频| 国外成人性视频| a级片在线免费看| 国产欧美日韩综合| 成人免费在线小视频| 伊人久久亚洲| 久久好看免费视频| 精品人妻一区二区三区免费看| 高清国产午夜精品久久久久久| 亚洲精品在线免费看| 伊人久久av| 亚洲国产精品免费| 久久久久亚洲av成人片| 韩国成人精品a∨在线观看| 欧美一区二区福利| 在线女人免费视频| 日韩风俗一区 二区| 国产无遮挡又黄又爽在线观看| 国产精品911| 黄色网址在线免费看| 不卡亚洲精品| 中文字幕综合在线| 中文字幕 自拍偷拍| 久久久久久久电影| 成年人在线看片| 亚欧洲精品视频在线观看| 国内精品久久久久影院 日本资源| 中文字幕在线观看免费| 中文一区二区在线观看| 国产一级不卡毛片| 青草国产精品| 国产精品一二三在线| 春暖花开成人亚洲区| 欧美自拍丝袜亚洲| 妖精视频在线观看免费 | 精品久久久久久电影| 理论片大全免费理伦片| 国产欧美精品久久| 欧美日韩精品免费在线观看视频| www.成人爱| 一区二区三区四区精品| 亚洲一区二区色| 一区在线播放视频| 先锋资源在线视频| 亚洲国产精品一区| 欧美日韩国产高清视频| 精品三区视频| 成人精品亚洲| 久久精品视频中文字幕| 888奇米影视| |精品福利一区二区三区| 日本免费色视频| 中文字幕一区二区三区在线视频 | 99热精品在线播放| 亚洲综合无码一区二区| 亚洲色图欧美日韩| 久久精品主播| 永久久久久久| 97se亚洲| 日韩av手机在线观看| 日本在线观看免费| 日韩美女主播在线视频一区二区三区| xxxx 国产| 国产午夜精品一区二区三区嫩草| 黄大色黄女片18第一次| 国产精品av一区二区| 麻豆蜜桃91| 欧美大陆国产| 国模精品系列视频| 自拍视频在线网| 亚洲色图视频免费播放| 欧美熟妇精品一区二区| 久久精品一区二区国产| 四虎精品欧美一区二区免费| 日韩精品福利一区二区三区| 国产精品一区二区久久久| 超碰97免费在线| 色狠狠av一区二区三区香蕉蜜桃| 亚洲精品综合久久| 欧美日韩在线观看一区二区| 久久精品国产亚洲av麻豆色欲| 久久综合成人精品亚洲另类欧美 | av毛片在线免费观看| 亚洲视频一区二区在线观看| 国产精品815.cc红桃| 国产精品综合网| 久草在在线视频| 欧美日韩三级电影在线| 亚洲国产一区二区三区在线| a级日韩大片| 国产啪精品视频| 日韩毛片免费观看| 高清欧美电影在线| 伦xxxx在线| 亚洲视频专区在线| 人妻一区二区三区| 欧美精品粉嫩高潮一区二区| 日日骚av一区二区| 亚洲第一在线综合网站| 四虎884aa成人精品| 久久久国产一区二区三区四区小说| 亚洲欧美日韩网站| 日本成人在线视频网站| 国产视频一视频二| 欧美精品九九| 超碰成人在线免费观看| 国产一区二区三区站长工具| 国产日韩欧美一区二区三区四区| 国产高清亚洲| 国产又爽又黄的激情精品视频| 欧美成人h版| 91sa在线看| 小h片在线观看| 国内揄拍国内精品少妇国语| 欧美一卡二卡| 欧美大片欧美激情性色a∨久久| 黄色网址在线免费播放| 色婷婷久久一区二区| 国产视频精品久久| 亚洲欧美色图片| 欧美在线观看在线观看| 亚洲精品国产电影| 欧美熟女一区二区| 亚洲第一福利网| 视频一区二区免费| 亚洲二区在线播放视频| 肥臀熟女一区二区三区| 欧美videofree性高清杂交| 国产成人精品一区二三区四区五区| 欧美精品成人一区二区三区四区| 夜夜躁很很躁日日躁麻豆| 欧美自拍偷拍一区| 一二三区在线播放| 欧美日本在线视频| 国产伦一区二区| 欧美一二三区在线| 国产黄色大片网站| 欧美xxxxxxxxx| 亚洲女同志亚洲女同女播放| 亚洲第一区在线| 青青视频在线观| 中文字幕日韩在线播放| 美女隐私在线观看| 欧美日本在线视频中文字字幕| 羞羞的视频在线观看| 久久久久久91| 忘忧草在线影院两性视频| 国产suv精品一区二区| 岛国一区二区| av一区和二区| 香蕉视频一区二区三区| 亚洲春色在线视频| 自产国语精品视频| 成人免费观看cn| 日韩av一区二区三区四区| 亚洲欧美日本一区二区三区| 国产福利精品一区| 在线精品一区二区三区| 国产日韩欧美在线一区| 国产suv一区二区三区| 亚洲国产aⅴ成人精品无吗| youjizz在线视频| 欧美高清hd18日本| 人成网站在线观看| 亚洲人在线观看| 黄av在线播放| 欧美一区三区三区高中清蜜桃| av在线一区不卡| 成人在线免费观看一区| 国产aⅴ精品一区二区三区久久| 视频一区三区| 亚洲午夜av| 91香蕉视频污版| 丁香亚洲综合激情啪啪综合| 少妇按摩一区二区三区| 亚洲情趣在线观看| 探花视频在线观看| 日韩视频在线永久播放| 看电影就来5566av视频在线播放| 久久人人爽人人爽人人片亚洲| 男人久久天堂| 国产日韩在线一区| 窝窝社区一区二区| 超碰在线免费观看97| 亚洲一区图片| 日韩久久久久久久久久久| 国产亚洲成年网址在线观看| 久久国产一级片| 精品视频资源站| 天天综合天天色| 久久91精品国产| 国产精品一区二区免费福利视频| 国产一区二区三区四区hd| 天堂美国久久| 91蝌蚪视频在线观看| av激情亚洲男人天堂| 一区视频免费观看| 欧美日韩精品电影| 黄色毛片在线观看| 97久久精品在线| 亚洲不卡在线| 亚洲乱码一区二区三区| 免费亚洲一区| 欧美xxxxx精品| 一区二区视频在线看| 97超碰人人草| 一区二区中文字幕| 成人日韩在线观看| 欧美另类视频在线| 亚洲黄色av| 人妻换人妻a片爽麻豆| 亚洲蜜臀av乱码久久精品| 国产情侣呻吟对白高潮| 亚洲美女性视频| 看黄在线观看| 国产在线精品日韩| 亚洲福利国产| 日本性生活一级片| 亚洲一区av在线| www天堂在线| 久久影院免费观看| 农村妇女一区二区| 亚洲欧洲久久| 免费不卡在线观看| 无码人中文字幕| 欧美老肥妇做.爰bbww| 1024国产在线| 国产综合福利在线| 91一区二区三区四区| 午夜一区二区视频| 国产精品高清亚洲| 99草在线视频| 欧美日韩成人黄色| 成人影院中文字幕| 日本国产在线播放| 91农村精品一区二区在线| 精品国产一区二区三区四| 亚洲精品资源美女情侣酒店| 高清不卡av| 亚洲精品国产精品国自产观看| 另类小说视频一区二区| 精品无码一区二区三区蜜臀| 3d成人动漫网站| 黄色一级大片在线免费看产| 91亚洲精品丁香在线观看| 黄色免费成人| 亚洲欧美色图视频| 91黄视频在线| 日日夜夜精品一区| 亚洲自拍在线观看| 亚洲成人中文| 亚洲天堂视频一区| 欧美日产在线观看| 青草视频在线免费直播| 蜜桃传媒视频麻豆一区| 免费成人在线网站| 人妻久久一区二区| 日韩不卡在线观看| 日韩高清不卡| 日韩在线视频在线| 国产午夜亚洲精品羞羞网站| 亚洲香蕉在线视频| 国内免费久久久久久久久久久| 国产精品一区二区av交换| 国产精品久久久久久9999| 偷窥国产亚洲免费视频 | 另类图片亚洲另类| 欧美大奶一区二区| 亚洲欧美自拍另类日韩| 亚洲国产视频一区| 成人资源www网在线最新版| 99久久无色码| 丝袜亚洲另类欧美| 精品99在线观看| 伊人久久综合97精品| 欧美国产中文高清| 91看片就是不一样| 一区二区三区小说| 国产裸舞福利在线视频合集| 国产v亚洲v天堂无码| 水野朝阳av一区二区三区| 免费在线一区二区三区| 怡红院精品视频| 国产精品毛片视频| 9l视频白拍9色9l视频| 亚洲成人免费看| 黄色免费在线观看网站| 欧洲av一区|