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 的消耗。

更新:

502 問題懷疑是負載均衡中某台服務器 CPU 出現波動突然跳到 100% ,如果用的是 windows ,表現是 503 ;現在用的是 linux ,表現就是 502 。

Powered by .NET Core 系列博文:

園友相關博文:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM