首页 新闻 会员 周边 捐助

.net Core 启动线程预热

0
悬赏园豆:80 [待解决问题]

Web APi 项目在windwos主机下,启动时线程预热3000个正常,通过设置线程的
SetMaxThreads和SetMinThreads。压力并发测试时正常,同项目环境,部署在centos7下,同样的压力测试后台查看线程数只能达到1500左右。但是剩余的都是连接超时状态,启动线程预热也成功。在centos7下查看了CPU。内存消耗都正常,还有什么解决办法或者思路。
Linux下使用nginx部署的
windwos下使用IIs部署的。
在开发环境下直接在cmd中使用dotnet 启动线程也正常。

MR.陈的主页 MR.陈 | 初学一级 | 园豆:122
提问于:2020-12-11 18:28
< >
分享
所有回答(4)
-1

那就证明Linux性能更优秀呗, 同样的压力win要3k线程服务, linux只有1.5k.

czd890 | 园豆:14488 (专家六级) | 2020-12-12 12:38
0

并不是线程越多越好,这和cpu核心数是紧密相关的, 毕竟线程上下文也是有开销的. 多线程要合理利用

秋壶冰月 | 园豆:5903 (大侠五级) | 2020-12-12 17:38
0

我对你的最后一句好奇
“在开发环境下直接在cmd中使用dotnet 启动线程也正常。”
开发环境是windows还是linux?
要不,丢源代码到linux下试试。

yahle | 园豆:158 (初学一级) | 2020-12-14 19:13
0

centos7的管理机制,需要调整ulimit来提高可以打开的最大文件数,来提升线程数。ulimit默认1024。
如同再centos7下部署nginx,想要提升吞吐量,就得提高nginx允许的最大线程数据,需要调整ulimit参数,我们目前是用的最大值65535.

于俊明 | 园豆:202 (菜鸟二级) | 2022-09-02 16:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册