如何计算并发及机器

news/2025/11/11 23:42:20/文章来源:https://www.cnblogs.com/surewing/p/19211918

首先要知道整个系统需要多少个线程干活:

系统总并发数计算:

线程数据=QPS*平均响应时间;
这是总资源目标,接下来我们把总的线程数分配到每台机器上。

设计单机线程池:

线程池:参数里面:分为“核心线程池”和最大线程池。两者的逻辑完全不同

1.核心线程池:设置(和cpu的核数保持一致)

核心线程池:是线程池的备用军,处理一些低负载请求,设计原则是不浪费CPU。也不高余切换。

1.要是cpu密集型(复杂计算)核心线程设置:CPU核数+1

2.要是混合I/o密集型:核心线程设置:CPU核数即可,即可以让CPU在低负载的时候跑满,又不会导致切换的时候开销太多。

2.最大线程数的计算:

最大线程:是核心线程和队列都满了才会启动的,设计的核心用更多的线程填补IO的等待时间,让CPU不空闲。

这里用到一个通用的公示:最大线程数据=CPU核数*(1+线程等待时间/线程CPU时间)
例如:500ms 响应时间:

cpu 耗时间:50ms

IO耗时:450ms(查询mysql ,调下游 RPC接口)
套入公式:8(1+450/50)=810=80;

为何这样计算:
因为线程在450ms的等待时间里面:CPU是空闲的,--这时候多开线程,让CPU去处理其他的请求,就能最大化单机吞吐,80个线程刚好能让CPU 在IO等待的“不闲着”,又不会因为线程太多导致切换爆炸。

算机器的数量:

知道了单机线程池的配置,就可以算多少台机器了,---我们需要先算单机的最大QPS,在反推总机器数量:
1.单机最大计算过程:
单线程:500ms处理一个请求,每秒中处理2个(1000ms/500)=2,单机最大线程池80,所以单机最大QPS=80*2=160;(每秒中最多处理160个请求)

2.要求QPS:10000
所以机器数量:10000/160=62.5(取整数63)

3.实际的机器数量:
线上系统绝不能跑100%负载,万一遗漏到(比如QPS1.2万),或者机器故障了,所以通常规定要让系统负载保持在70%左右,(预留30%作为缓冲),所以实际的机器数量:63/0.7=90(台)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF2164 VP 记录

A 猜结论. 找到最大值和最小值,显然可以把整个序列删的只剩这两个数,那么只要询问的数在这之间就一定可以. B 脑筋急转弯,非常的 tricky,我不喜欢. 首先若存在两个偶数,那么直接输出即可. 其次若有一个偶数,可以…

超参数

超参数(Hyperparameter) 是机器学习模型的 "外部设定" ,由人预先指定,不通过训练自动学习。核心区别:超参数 vs 模型参数 表格 复制对比项超参数模型参数谁来定 你(开发者) 设定 算法自动学习例子 学…

Weblate审计日志IP泄露漏洞分析

本文详细分析了CVE-2025-64326漏洞,该漏洞导致Weblate在审计日志中泄露邀请用户参与项目审查的管理员IP地址,涉及敏感信息处理不当的安全问题。Weblate泄露项目成员IP地址的审计日志漏洞 漏洞详情 包信息包管理器: p…

flask: flask-httpauth做登录验证

一,安装第三方库 auth $ pip install flask-httpauth jwt $ pip install Authlib 二,代码: from flask import Blueprint,jsonify,render_template,request from flask import request, Flask, redirect, url_for, …

每日一导1

Problem 已知 $ f(x) =ae^{x-1}+\frac{1}{a}-3 \ln x - 3 ,a>0 $ . 证明: $ \forall \theta \in (0,\frac{\pi}{2}) , f(\sin \theta) + f(\cos \theta ) >-1$ .分析 和同学看了参考答案之后大为震撼。 两个超越…

HBuilderX快速安装与使用指南 - 从下载到项目创建全流程

一篇搞定:零基础也能5分钟跑起第一个HBuilderX项目(含uni-app、Vue3、TS、原生小程序全流程示例)一、HBuilderX 是什么?定位 亮点国产「前端全端」IDE 一套代码编到 6 端(H5、小程序、App、iOS、Android、桌面)u…

java使用正则表达式替换并保留原字符串,在原字符串前后添加符号

java使用正则表达式替换并保留原字符串,在原字符串前后添加符号sql = sql.replaceAll(":admdivcode(\\d{6})", "$1"); 实现结果是如:sql = "select * from tbb where admdivcode = :admdiv…

手写识别

import os import random import numpy as np import matplotlib.pyplot as plt from PIL import Image, ImageDraw, ImageFont import torch import torch.nn as nn import torch.optim as optim from torch.utils.da…

团队作业2-《文章管理系统》需求规格说明书

条目 内容这个作业属于哪个课程 [软件工程]https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 点我查看作业要求(https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerSc…

01人月神话读后感--软件中的“焦油坑”

读《人月神话》第一章“焦油坑”有感 读完这一章,我的第一个感觉就是:太真实了,说得太准了! 布鲁克斯用的那个“焦油坑”的比喻,简直绝了。我想所有干过软件项目的人,应该都能立刻明白那种感觉:表面上看:我们的…

线程池FAQ

线程池FAQ线程池FAQ0. 你将学到什么?线程池到底是什么、解决什么问题线程池怎么接任务→排队→扩容→执行→回收SingleThreadExecutor 的作用与用法有界队列是啥,和 maximumPoolSize 有啥关系拒绝策略为什么存在、怎…

Python Threading new thread

import threading import time import uuid from datetime import datetimedef print_time_uuid(num=1000):for a in range(1,num+1):print(f{a},{datetime.now()}_{uuid.uuid4().hex}\n)time.sleep(1)def print_uuid_…

从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?

从同步耦合到异步解耦:消息中间件如何重塑系统间的通信范式?当成百上千的服务需要相互协作时,它们之间的通信模式变得至关重要。如果服务间采用紧密耦合的同步调用,一个服务的延迟或故障,就可能引发连锁反应,导致…

深入理解OpenWrt生态:LuCI、UCI、ubus与rpcd的协同工作机制 - 实践

深入理解OpenWrt生态:LuCI、UCI、ubus与rpcd的协同工作机制 - 实践2025-11-11 23:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !…

251111重点

251111重点在以前人们学习知识要逐字逐句,究根问底,才能在脑海里有一个框架的概念,归根结底,是缺乏好的老师,但是现在用心理学的话说就是搁置,不明白的地方有人知道(ai),可以先搁置,用自然语言理解,很容易就有…

第22天(简单题中等题 二分查找)

打卡第二十二天 1道简单题+3道中等题题目:思路:代码: class Solution { public:bool search(vector<int> &nums, int target) {int n = nums.size();if (n == 0) {//数组为空直接返回 falsereturn false;}if…

In the name of capitalists

So we have Harvard University, Stanford University. Whatever its Japan, Korea, or China, India, I never found University names that are more narcissistic than Americans. Indians are usually quiet just …

2025.11.11总结

今天在百度智能云上找api接口,因为大作业要求,需要做一个集文本生成,语音合成,ai作画三合一的人工智能的项目。 对于第一次使用模型来说,比较艰难,界面不熟悉,文档看不懂,没有现成可参考的视频,较新的手把手教…

K8S百万资源预list加载数据方案

K8S百万资源预list加载数据方案联邦控制器资源已经超过百万,每次重启时,需要一次性list所有资源,需要10分钟,给服务启动带来很多风险。 现通过主从预list加载数据,避免升级或者leader切换过程中长时间拉取数据。/…