代码之家  ›  专栏  ›  技术社区  ›  Sébastien Ollivier

mysql.data.mysqlclient.charsetmap getencoding的CPU使用率很高

  •  2
  • Sébastien Ollivier  · 技术社区  · 7 年前

    我有一个api(aspnet core),它调用一个数据库(mysql)。我使用nhibernate和mysqldata连接器。

    当很多请求被发送到我的api时,我会遇到一些cpu问题(接近100%),这些问题会导致http请求错误。

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

    enter image description here

    我对mysql数据库使用utf8默认排序规则:

    enter image description here

    我试图在aspnet核心api中手动设置编码,这样就可以避免 GetEncoding 成本,但我找不到怎么做(我甚至不知道是否有可能)。

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

    0 回复  |  直到 7 年前
    推荐文章