当前位置:网站首页>分布式.容量评估
分布式.容量评估
2022-07-21 03:20:00 【闲猫】
缘起
面试经常会遇到问题
- 刚才说的这个系统并发是多少
- 你们系统数据量是多少
或者工作中你会遇到:
- 产品经理问你:咱们这个系统对机器有啥要求,宽度给多少合适
- 项目经理给你任务:帮咱们盘点一下机器,把没用的机器回收了吧
- 双十一咱们系统能抗住不,需要增加几台机器,机器规格发我
限制因素
包括:CPU,内存,磁盘读写速度,操作系统对进程中的线程的数量限制, 带宽,一个请求的数量大小,中间件支持的并发量。
评估办法
- 并发量最开始评估,有并发量*平均数据量就是我数据量总量
- 并发量按照点击率预估:如果有特定场景,比如:广告推送1kW,大概有1%的点击率,那么广告的PV就是1KW*1%=10W 总量;
- 并发按照场景评估:如果业务系统,一次工单提交需要10次请求HTTP,那么乘以每天平均的工单梳理就是一天的并发数量
- 时间,每天是8W秒,但一般都发生在白天就按照4W秒来算,总量/4WS=平均QPS
- 峰值QPS:如果统计的数据就按照峰值是平均几倍来算。否则按照28原则(80%的请求发生在20%的时间范围内) 算出峰值QPS
- 数据量评估:统计或者预估,按照业务限制能提交的文件和数据量,完成一个业务平均的数据量,乘以平均QPS就是数据总量
- 带宽:数据总量除以时间就是数据带宽,网络带宽必须大于这个。同时也需要根据峰值QPS计算峰值带宽
- 中间件并发量分析:Mysql,Tomcat,Nginx,Redis,MQ,ZK等不同中间件能支持的并发量是不同的,后面挨个说明
- 中间件并发量不一定等于线程数量,需要根据中间件机制判断,比如redis就是单线程的,但也能支持10W的并发,tomcat中servlet是多线程的,一个请求用一个线程处理,那么就需要考虑线程的限制了。
- 不同操作系统对线程限制不同,比如:linux默认给一个进程1024个线程,再多就需要修改配置。
- 磁盘大小,如果是WEB需要考虑日志量;如果是DB或者文件服务器机器 需要考虑文件总量增量
- 磁盘读写速度 自建的话这个需要压测
- 内存大小跟业务有关系,大批量计算类型的业务系统就比较耗内存;但高并发的抢票的系统,支持并发量就更重要了。
特例支持
- 读写不平衡. 读多写少 场景: 缓存,读写分离
- 读写不平衡. 写多读少 场景: 看业务可以使用ISAM引擎,或者使用redis
- 计算型场景:并发少,特别消耗内存; 异步方案,比如:生成报表功能,拆分为:提交生成报表请求, 处理状态查询, 处理 这么几步
- 并发在时间维度上不平衡 场景: 秒杀场景,短时间内高 并发,使用MQ削峰填谷
- 缓存的同步机制:Mysql主从用Mysql同步机制,或者用binlog同步。 业务缓存跟业务关联较大,可用方案如:binlog+MQ同步;手动同步等; redis,rocketmq 缓存内容的数据,持久化策略问题
END
边栏推荐
- [MCU simulation project] 4 × 4 matrix keyboard scanning
- 论文翻译解读:Anytime Bottom-Up Rule Learning for Knowledge Graph Completion【AnyBURL】
- 使用MogDB Operator在Kubernetes上部署MogDB集群(MogDB Stack)
- Peripheral driver library development notes 44:ddc114 ADC driver
- 2022软件测试技能 Jmeter+Ant+Jenkins持续集成并生成测试报告教程
- Essential tools for streamlit Data Science
- 知识图谱问答技术实践与探索
- 手把手教你安装MySQL数据库
- 软件测试面试题:黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
- 软件测试面试题:如何测试一个纸杯?
猜你喜欢
使用MogDB Operator在Kubernetes上部署MogDB集群(MogDB Stack)
【LeetCode】1260. 二维网格迁移
MYSQL06_sql99的7种JOIN操作、union all
分布式.数据库架构
Arduino I2C for TCA9548A应答扫描程序
According to the framework's swagger interface document
奈雪的茶布局元宇宙 传统品牌如何转战元宇宙营销
LogMAP: logic based and scalable ontology matching
06 提取数据的json字符串
Spark RDD, application case of spark SQL
随机推荐
[QNX hypervisor 2.2 user manual]8.5 vcpu and hypervisor performance
软件测试面试题:软件测试的策略是什么?
mapbox-gl开发教程(十三):加载三维面图层(白模)
4、security之自定义数据源
Software testing interview question: what work is usually done in each stage of software testing? What are the outcome documents of each stage? What is included?
软件测试面试题:你对测试最大的兴趣在哪里?为什么?
[introduction to QT] signal slot mechanism
不想醒来因为好吃
toast_ tuple_ Question of threshold
API Test
软件测试面试题:黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
软件测试面试题:您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
Configuration du Service FTP
Force uninstall of additional domain controllers
Ardunio development - I2C protocol communication - control 2x16lcd
分布式.高性能
Features and choices among QT4, 5 and 6 versions
Unity - input class
分布式.高并发&高可用
[OBS] release signed construction based on cmake