2

我有一个调用数据库(MySQL)的 API(ASPNET Core)。我使用 NHibernate 和 MySqlData 连接器。

当大量请求发送到我的 API 时,我遇到了一些导致 HTTP 请求错误的 CPU 问题(接近 100%)。

我做了一个转储来分析正在发生的事情,我发现我的大部分 CPU 时间都花在了该MySql.Data.MySqlClient.CharSetMap::GetEncoding方法上,如下所示(使用 16% CPU 的请求的 CPU 使用率为 7%):

在此处输入图像描述

我对 MySql 数据库使用 UTF8 默认排序规则:

在此处输入图像描述

我尝试在我的 ASPNET Core API 中手动设置编码,这样我可以避免GetEncoding成本,但我找不到如何去做(我什至不知道这是否可能)。

有什么建议可以提高我的 CPU 使用率吗?

4

0 回答 0