0
点赞
收藏
分享

微信扫一扫

docker容器资源限制与容器内的dotnet应用线程限制

往复随安_5bb5 2022-04-02 阅读 67

docker容器资源限制

使用docker-compose管理容器
所以yml文件配置可以 增加

   deploy:
resources:
limits:
cpus: "8"
memory: 4096M
reservations:
cpus: "0.05"
memory: 500M
  • limits=> cpus: “8” //cpu利用率最大限制:建议设置成实际cpu核数的一半以上,如果单核时,设置0.5即可
  • limits=> memory: “4096M” // 内存分配最大限制:按实际应用分配

dotnet程序线程限制

#应用编译目录下文件设置:xxx.runtimeconfig.json
{
"runtimeOptions": {
"tfm": "net5.0",
"framework": {
"name": "Microsoft.AspNetCore.App",
"version": "5.0.0"
},
"configProperties": {
"System.Threading.ThreadPool.MinThreads": 8
}
}
}

configProperties=>最小线程数:因为使用了容器,不便修改此文件 ,考虑到服务器一般是8核心上,默认写上8核。

对性能的影响

在这里插入图片描述
在这里插入图片描述

1.通过容器启动时:由于对yml文件中的配置,limits理解错误,设置了0.5,以为是cpu利用率的50%,没发现是针对单核需要这样设置,导致dotnet后台程序线程数多了后,redis的一个使用场景经常报timeout;
2.本地调试时:不会报redis的timeout,也就是线程数可用,资源可用
  • 如此描述:https://stackexchange.github.io/StackExchange.Redis/Timeouts

原因:

举报

相关推荐

0 条评论