当前位置:网站首页>线程池.线程数量设置
线程池.线程数量设置
2022-07-21 03:20:00 【闲猫】
缘起
需要设置线程数量地方:tomcat,mysql,线程池
问题:到底设置多少现成量合适呢?
答案:不是臆测,根据数据说话
1+M+N模型
1:1个监听线程,监听新来的socket
N:N个IO线程,负责对socket进行读写。N一般等于cpu核数
M:业务逻辑处理线程,这里就讨论这个线程数量
为啥要用多线程
单线程不好么,单线程会有等待资源的情况(网络IO,磁盘IO),这时候CPU就可以干点其他事
CPU密集 vs. IO密集
- 用CPU比较多就是CPU密集;IO比较多就是IO密集
CPU:IO 比测算
Sum内存和IO时间,统计计算
单接口和整体怎么统一:一种方法是先计算一个接口的比,然后根据接口请求梳理和整体QPS比重,计算加权值; 第二种是测试一段时间的内存和IO的整体时间比
线程数量计算
如 2核,CPU:IO = 1:1 那么4个线程就可以占满CPU了 (2/(1/(1+1)))
总结:N核服务器,通过执行业务的单线程分析出本地计算时间为x(CPU占用时间),等待时间为y(IO时间),则工作线程数(线程池线程数)设置为 N*(x+y)/x,能让CPU的利用率最大化。
经验之谈:后端非CPU密集业务,瓶颈都是在IO。实际开发也不会测试每个接口的CPU和IO时间,差不多点设置几十几百都可能。
纯内存场景Redis
CPU1
IO 0
那么就有N*(x+y)/x=N*(1+0)/1=N
END
边栏推荐
- Powermock actual combat
- 如何解决wget命令出现Unable to establish SSL connection.
- kubernetes的这几种存储卷,别再傻傻分不清了
- Don't be silly to distinguish these kinds of storage volumes of kubernetes
- Arduino I2C for tca9548a response scanner
- Software testing interview question: what is the purpose of test planning? What should be included in the test plan document? Which are the most important?
- Spark RDD, application case of spark SQL
- API Test
- Unity - input class
- QT(37)-mosquitto-MQTT客户端
猜你喜欢
Essential tools for streamlit Data Science
Unity - input class
plantuml画链路图
Spark RDD, application case of spark SQL
【LeetCode】1260. 二维网格迁移
Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试
MYSQL06_sql99的7种JOIN操作、union all
spark rdd,spark SQL的应用案例
程序员第一课“hello word”,你知道网工第一课吗?
Common business interview questions for data analysis
随机推荐
【LeetCode】1260. 二维网格迁移
What is gamefi?
软件测试面试题:引用与指针有什么区别?
hcip第二天实验
Matrix
Features and choices among QT4, 5 and 6 versions
论文翻译解读:Anytime Bottom-Up Rule Learning for Knowledge Graph Completion【AnyBURL】
Phpstudy_pro搭建Sqli-labs靶场,进行SQL注入测试
【云原生之kubernetes】kubernetes集群下的健康检查使用方法
打造高性能应用,持续优化用户体验
Force uninstall of additional domain controllers
JMeter学习笔记003-JMeter之CSV参数化
Phpstudy_ Pro builds sqli labs shooting range for SQL injection test
使用MogDB Operator在Kubernetes上部署MogDB集群(MogDB Stack)
知识图谱问答技术实践与探索
Configuration du Service FTP
Don't be silly to distinguish these kinds of storage volumes of kubernetes
Software test interview question: how to test a paper cup?
Mapbox GL development tutorial (13): loading 3D surface layers (white mold)
解决跨域问题的8种方案(最新最全)