Powered by .NET Core 進展0819:高速開車車況彙報
繼續以流水賬的方式向大家彙報,自從上週六上午將 .net core 版部落格站點從 windows 部署切換到 linux 上的 docker-compose 部署後,到目前一直線上。
Linux 上沒有出現在 windows 上遇到的一夜之後記憶體佔用持續過高的 GC 偷懶情況,但這並不能說明 .net core gc 在 windows 有問題,可能是由於某種情況讓 gc 覺得不需要回收,由於我們的 .net core 版部落格系統只會部署在 linux 上,所以 windows 上的問題不繼續排查。
資料庫伺服器 CPU 100% 還是會出現,問題非常奇怪,而且很難復現,目前排查沒有進展。上週五下午 18:00 左右,遇到的 CPU 100% 問題更是詭異,伺服器沒有接入流量,在容器啟動後一個 curl 請求就讓資料庫伺服器 CPU 100%,也有可能是巧合。
在 Linux 上遇到了一個新的問題,有時阿里雲負載均衡會報 502 錯誤,重新整理一下就會好,.NET Core 日誌中沒有對應的日誌,目前還沒找到問題的線索。
我們遇到的高併發效能問題也引起了微軟 .NET Core 團隊的關注,並得到了他們的技術支援,幫我們分析了通過 dotnet-trace 收集的 profile 資料(收集資料期間沒有發生資料庫 CPU 100%), 但沒有發現問題的線索。
dotnet-trace 在容器內收集 prfile 資料的命令如下
export PATH="$PATH:/root/.dotnet/tools dotnet-trace list-processes dotnet-trace collect --process-id <pid> --providers Microsoft-Windows-DotNETRuntime
注:容器需要使用 .net core sdk 映象才能安裝 dotnet-trace 。
今天上午下午的訪問高峰,行駛平穩。
對於 100% 與 502 問題,我們會進一步排查。
另外,我們也在優化程式減少 CPU 的消耗。
Powered by .NET Core 系列博文:
- 【故障公告】釋出 .NET Core 版部落格站點引起大量 500 錯誤
- 【網站公告】.NET Core 版部落格站點第二次釋出嘗試
- 暴風雨中的 online : .NET Core 版部落格站點遭遇的高併發問題進展
- Powered by .NET Core 進展:驗證高併發效能問題嫌疑犯 docker swarm
- 同“窗”的較量:部署在 Windows 上的 .NET Core 版部落格站點發布上線
- 做夢也沒有想到:Windows 上的 .NET Core 版部落格系統表現更糟糕
- 峰迴路轉:去掉 DbContextPool 後 Windows 上的 .NET Core 版部落格表現出色
- Powered by .NET Core 進展0815:第5次釋出嘗試(Windows部署)
- 高速開車換底盤記:Windows 與 Linux 部署都抗住了,但修車任務艱鉅
園友相關博文:
- 部落格園升級有感一點建議
- 部落格園翻車啟示錄
- 生產環境(基於docker)故障排除? 有感於部落格園三番五次翻車