Web APi 项目在windwos主机下,启动时线程预热3000个正常,通过设置线程的
SetMaxThreads和SetMinThreads。压力并发测试时正常,同项目环境,部署在centos7下,同样的压力测试后台查看线程数只能达到1500左右。但是剩余的都是连接超时状态,启动线程预热也成功。在centos7下查看了CPU。内存消耗都正常,还有什么解决办法或者思路。
Linux下使用nginx部署的
windwos下使用IIs部署的。
在开发环境下直接在cmd中使用dotnet 启动线程也正常。
那就证明Linux性能更优秀呗, 同样的压力win要3k线程服务, linux只有1.5k.
并不是线程越多越好,这和cpu核心数是紧密相关的, 毕竟线程上下文也是有开销的. 多线程要合理利用
我对你的最后一句好奇
“在开发环境下直接在cmd中使用dotnet 启动线程也正常。”
开发环境是windows还是linux?
要不,丢源代码到linux下试试。
centos7的管理机制,需要调整ulimit来提高可以打开的最大文件数,来提升线程数。ulimit默认1024。
如同再centos7下部署nginx,想要提升吞吐量,就得提高nginx允许的最大线程数据,需要调整ulimit参数,我们目前是用的最大值65535.