首页 新闻 会员 周边

ASP.NET Core Web Api压测,性能不行的原因是什么

0
悬赏园豆:30 [已解决问题] 解决于 2024-01-05 15:38

创建一个Web Api项目,使用Jmeter配置1000线程进行压测,性能不佳。请教下,各位大佬,是否还需要进行哪些配置
主机配置:

注册表配置:

聚合报告:

胖嘟嘟的梆子的主页 胖嘟嘟的梆子 | 菜鸟二级 | 园豆:427
提问于:2024-01-05 14:14
< >
分享
最佳答案
1

可能是该异步的地方没有异步

收获园豆:15
dudu | 高人七级 |园豆:30943 | 2024-01-05 14:18

我是参照这篇博客做的压测:https://www.cnblogs.com/fuhua/p/16696237.html
测试接口类似这样:

胖嘟嘟的梆子 | 园豆:427 (菜鸟二级) | 2024-01-05 14:37

@胖嘟嘟的梆子: 等会提供线程池预热代码

dudu | 园豆:30943 (高人七级) | 2024-01-05 15:22

@胖嘟嘟的梆子: 预热代码来了

    private void WarmupThreadPool()
    {
        if (ThreadPool.SetMinThreads(50, 20))
        {
            Parallel.For(0, 50, a => Thread.Sleep(1000));
        }
    }
dudu | 园豆:30943 (高人七级) | 2024-01-05 15:28

在 Program 中预热

dudu | 园豆:30943 (高人七级) | 2024-01-05 15:29

@dudu: 感谢

胖嘟嘟的梆子 | 园豆:427 (菜鸟二级) | 2024-01-05 15:39
其他回答(1)
1

threadpool 的min/max size 改了没有.
如果用了 concurrencylimiter, ratelimiting 组件, 对应的参数是否合适.

收获园豆:15
czd890 | 园豆:14412 (专家六级) | 2024-01-05 14:54

threadpool 的min/max 这个改过了,会稍微好点,没有限流

支持(0) 反对(0) 胖嘟嘟的梆子 | 园豆:427 (菜鸟二级) | 2024-01-05 15:00

@胖嘟嘟的梆子:
jmeter和被压的api在一台机器上? 如果是建议分开. 另外 jmeter 的thread user 可以逐步增加, 而不是上来就1000个. 以12核的cpu来说 可以让jmeter thread从10个增加到20个. 这样子观察表现.

如果被压测的api代码和你图贴出来的一样. 那就大概率是纯环境问题.

支持(0) 反对(0) czd890 | 园豆:14412 (专家六级) | 2024-01-05 15:08

如果要大家能帮到你, 就尽可能提供完整的信息,

  • 被压测的api 最好是完整的代码,启动配置
  • jmeter 配置
支持(0) 反对(0) czd890 | 园豆:14412 (专家六级) | 2024-01-05 15:08

@czd890: 非常感谢

支持(0) 反对(0) 胖嘟嘟的梆子 | 园豆:427 (菜鸟二级) | 2024-01-05 15:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册