You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6升级至.NET 8后ARM64机器CPU占用异常升高问题咨询

.NET 6 gRPC微服务升级至.NET 8后ARM64平台CPU占用异常问题

我们近期将.NET gRPC微服务从.NET 6.0升级至.NET 8.0后,发现运行于Amazon Linux 2系统的ARM64机器上的Pod CPU占用有所升高;但部署在x86_64机器上时,CPU占用和延迟相比.NET 6.0均有显著改善。

已执行的排查操作

  • 测试了ASP.NET运行时镜像8.0.0至8.0.14的所有补丁版本
  • 将代码库从Grpc.Core迁移至grpc-dotnet库
  • 完成了从Newtonsoft.Json到System.Text.Json的切换

性能统计数据(dotnet-counters收集)

指标.NET 6 ARM64.NET 8 ARM64.NET 8 x86_64
% Time in GC since last GC (%)000
Allocation Rate (B/sec)5,733,5203,972,8648,970,032
CPU Usage (%)32.9893.233
Exception Count (/sec)000
GC Committed Bytes (MB)6564.56187.323
GC Fragmentation (%)26.29522.84956.653
GC Heap Size (MB)3339.80940.187
Gen 0 GC Budget (MB)241641
Gen 0 Size (B)24020,793,720
Gen 1 Size (B)442,744802,2001,583,296
Gen 2 Size (B)27,047,80821,647,75226,886,096
IL Bytes Jitted (B)1,696,3722,626,9204,686,141
LOH Size (B)16,601,70415,774,99210,049,816
Monitor Lock Contention Count (/sec)762836
Number of Active Timers161516
Number of Assemblies Loaded171187189
Number of Methods Jitted22,99034,315135,674
POH (Pinned Object Heap) Size (B)379,0721,947,3924,036,232
ThreadPool Completed Work Item Count (/sec)1,3971,6302,856
ThreadPool Queue Length000

疑问

总体来看,无配置或代码变更的情况下,ARM64机器上的Pod CPU占用高于AMD64机器。我们已卡在此次升级一个多月,尝试多种方法仍未找到根因或可行解决方案,特此咨询:是否遗漏关键排查环节,或该现象为.NET 6 gRPC服务升级至.NET 8 ARM64环境下的预期行为?

内容的提问来源于stack exchange,提问作者Balaji Nadar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:15:06