`

互联网架构,如何进行容量设计

 
阅读更多

一,需求缘起

互联网公司,这样的场景是否似曾相识:

 

场景一:pm要做一个很大的运营活动,技术老大杀过来,问了两个问题:

1机器能抗住么?

2如果扛不住,需要加多少台机器?

 

场景二:系统设计阶段,技术老大杀过来,又问了两个问题:

1数据库需要分库么?

2如果需要分库,需要分几个库?

 

技术上来说,这些都是系统容量预估的问题,容量设计是架构师必备的技能之一。常见的容量评估包括数据量、并发量、带宽、CPU/MEM/DISK等,今天分享的内容,就以【并发量】为例,看看如何回答好这两个问题。

 

二,容量评估的步骤与方法

【步骤一:评估总访问量】

如何知道总访问量?对于一个运营活动的访问量评估,或者一个系统上线后PV的评估,有什么好的方法?

答案是:询问业务方,询问运营同学,询问产品同学,看对运营活动或者产品上线后的预期是什么。

 

举例:58要做一个APP-push的运营活动,计划在30分钟内完成5000w用户的push推送,预计push消息点击率10%,求push落地页系统的总访问量?

回答:5000w*10% = 500w

 

【步骤二:评估平均访问量QPS

如何知道平均访问量QPS

答案是:有了总量,除以总时间即可,如果按照天评估,一天按照4w秒计算

 

举例1push落地页系统30分钟的总访问量是500w,求平均访问量QPS

回答:500w/(30*60) = 2778,大概3000QPS

 

举例2:主站首页估计日均pv 8000w,求平均访问QPS

回答:一天按照4w秒算,8000w/4w=2000,大概2000QPS

 

提问:为什么一天按照4w秒计算?

回答:一天共24小时*60分钟*60=8w秒,一般假设所有请求都发生在白天,所以一般来说一天只按照4w秒评估

 

【步骤三:评估高峰QPS

系统容量规划时,不能只考虑平均QPS,而是要抗住高峰的QPS如何知道高峰QPS呢?

答案是:根据业务特性,通过业务访问曲线评估

 

举例:日均QPS2000,业务访问趋势图如下图,求峰值QPS预估


回答:从图中可以看出,峰值QPS大概是均值QPS2.5倍,日均QPS2000,于是评估出峰值QPS5000

 

说明:有一些业务例如“秒杀业务”比较难画出业务访问趋势图,这类业务的容量评估不在此列。

 

【步骤四:评估系统、单机极限QPS

如何评估一个业务,一个服务单机能的极限QPS呢?

答案是:压力测试

 

在一个服务上线前,一般来说是需要进行压力测试的(很多创业型公司,业务迭代很快的系统可能没有这一步,那就悲剧了),以APP-push运营活动落地页为例(日均QPS2000,峰值QPS5000),这个系统的架构可能是这样的:


1)访问端是APP

2)运营活动H5落地页是一个web站点

3H5落地页由缓存cache、数据库db中的数据拼装而成

 

通过压力测试发现,web层是瓶颈,tomcat压测单机只能抗住1200QPS(一般来说,1%的流量到数据库,数据库500QPS还是能轻松抗住的,cache的话QPS能抗住,需要评估cache的带宽,假设不是瓶颈),我们就得到了web单机极限的QPS1200。一般来说,线上系统是不会跑满到极限的,打个8折,单机线上允许跑到QPS1000

 

【步骤五:根据线上冗余度回答两个问题】

好了,上述步骤1-4已经得到了峰值QPS5000,单机QPS1000,假设线上部署了2台服务,就能自信自如的回答技术老大提出的问题了:

1)机器能抗住么? -> 峰值5000,单机1000,线上2台,扛不住

2)如果扛不住,需要加多少台机器? -> 需要额外3,提前预留1台更好,给4台更稳

 

除了并发量的容量预估,数据量、带宽、CPU/MEM/DISK等评估亦可遵循类似的步骤。

 

三,总结

互联网架构设计如何进行容量评估:

【步骤一:评估总访问量】 -> 询问业务、产品、运营

【步骤二:评估平均访问量QPS-> 除以时间,一天算4w

【步骤三:评估高峰QPS -> 根据业务曲线图来

【步骤四:评估系统、单机极限QPS -> 压测很重要

【步骤五:根据线上冗余度回答两个问题】 -> 估计冗余度与线上冗余度差值

作者:58沈剑

[完]

 欢迎加入“架构师微信”群,与更多专家、技术同行进行热点、难点技术交流。请添加微信:geekmainland或者扫描以下二维码加群主微信,申请入群,务必注明「姓名+公司+职位」

1
0
分享到:
评论

相关推荐

    从无到有搭建中小型互联网公司后台服务架构与运维架构

    本课程主要是针对如何从无到有搭建中小型互联网公司后台服务架构和运维架构的课程,课程所涉及的内容均是当前应用最广泛的技术和工具。本课程所讲解的技术体系已经在多个中小型互联网公司中实战运行使用,目前运行...

    架构师之路2016年精选50篇

    架构师之路2016年精选50篇原创 2017-02-11 58沈剑 2016精选索引【方法论】《秒杀系统架构优化思路》《分布式ID生成器》《互联网架构,如何进行容量设计》《线程数究竟设多少合理》《单点系统架构的可用性与性能优化...

    从传统银行到互联网金融- Oracle数据库架构设计与性能优化实践

    从传统银行到互联网金融- Oracle数据库架构设计与性能优化实践 数据为王 - 数据库性能数据决断未来 明确业务增长预期并转换为数据库指标 深入分析发现当前系统瓶颈 综合考虑可用性、性能和扩展性 根据业务预期和瓶颈...

    架构师成长之路.pptx

    架构师对系统的大数据容量高性能高并发高容错的网站有架构设计和开发经验。 架构师对操作系统、数据库、服务器各种软件使用的配置比较了解,比如Linux、Web负载均衡、反向代理、数据库集群、容灾等比较了解。 架构...

    2017中国系统架构师大会PPT资料集合.zip

    专场6:数据库架构设计的前世今生 云时代的数据库演变之路 58速运数据库降压架构优化实践 京东分布式KEY-VALUE存储设计与挑战 Qunar网数据库架构的发展 阿里巴巴数据库计算存储分离架构与实践 京东金融数据库多场景...

    1000道 互联网Java架构师面试题 485页.zip

    Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。使用Java编写的应用程序,既可以...

    Java高并发高性能分布式框架从无到有微服务架构设计(1).doc

    Java高并发高性能分布式框架从无到有微服务架构设计 微服务架构模式〔Microservice Architect Pattern〕.近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将...

    从程序员到CTO大牛企业内部PDF与PPT合集.zip

    360基础架构大容量redis存储方案--Pika 财付通交易核心演进之路 京东金融数据库多场景架构实践 摩拜开源技术的线上应用之路 AI领域的人机识别对抗 千亿美金的验证码攻防 苏宁潜行狙击--业务安全大数据融合 腾讯全民K...

    大型分布式网站架构与实践

     第3章 互联网安全架构 126  本章主要介绍和解决如下问题:  常见的Web攻击手段和防御方法,如XSS、CRSF、SQL注入等。  常见的一些安全算法,如数字摘要、对称加密、非对称加密、数字签名、数字证书等。  如何...

    局域网设计方案材料.doc

    所以建设的网络 系统必须具备良好的灵活性及可扩展性,即网络架构在功能、容量、覆盖能力等各方面 具有易扩展能力,以适应快速的业务发展和变化的业务需求对基础架构的要求。 1.6整体网络可管理性 新办公大楼网络...

    PHP秒杀系统 高并发高性能的极致挑战 从万次到亿万次的性能优化,从单机到分布式的架构升级

    本课由360架构师亲授,以360真实秒杀系统为切入点, 从秒杀的功能入手,分层递进讲解,逐步让大家掌握系统的设计、架构以及优化,从容应对百万级、过亿级的秒杀活动及其它海量访问的互联网系统。1. Linux / Nginx / ...

    个人设计作业网页,宠物网

    完善的服务展示 )系统而设计的各功能模块中,依据信息形式、信息容量采用( 26. 图文混排 )形式实现基本信息浏览功能。 (2) 在BBS系统与( 40信息检索 )系统中,使用Dreamweaver与数据库相结合的技术,实现( 7...

    智能点滴监控系统的设计与实现.pdf

    智能点滴监控系统是基于物联网和互联网技术的创新设计,旨在解决传统输液系统中的效率低、人工负担重、安全隐患多等问题。该系统通过输液信息的监控、远程管理、PC端和移动端共同监管及未来的大数据分析,将物联网...

    云数据库管理系统及在互联网领域应用.pptx

    RDS单机数据库 IAAS(云网络、云主机、云硬盘) NOS对 象存储 NCR云 Redis服务 云转码 云容器引擎 云队列 NCS 云搜索 基础服务 数据管理 应用架构 NLB负载均衡服务 5 云数据库管理系统及在互联网领域应用全文共65页,...

    云数据库管理系统及在互联网领域的应用.pptx

    RDS单机数据库 IAAS(云网络、云主机、云硬盘) NOS对 象存储 NCR云 Redis服务 云转码 云容器引擎 云队列 NCS 云搜索 基础服务 数据管理 应用架构 NLB负载均衡服务 云数据库管理系统及在互联网领域的应用全文共65页,...

    智慧政务云计算数据中心建设方案.docx

    2、 机房环精密空调容量设计 80 3、 空调送风方式的设计 81 4、 空调上下水设计 81 (五) 动力环境监控系统系统 81 (六) KVM系统 84 1、 方案说明 84 2、 方案拓扑图及说明 84 3、 方案特点 85 (七) 机房消防...

    迁云架构实践

    互联网、游戏、物联网等新兴行业纷纷积极拥抱云计算,对大部分企业用户来说,受限于传统IT技术架构的束缚,往往缺乏迁移到云计算的动力和技术实现参考。企业中最核心的系统通常是数据库管理系统,用以满足实时交易和...

    互联网时代运维价值的重塑

    我掐指一算,大概涉及到数据中心、网络、服务器等基础架构的规划、建设、运营及服务管理,涉及业务架构评估、部署方案优化、运行环境设计、容量与成本管理、可用性与连续性管理、故障恢复与维护等诸多方面,以上工作...

Global site tag (gtag.js) - Google Analytics