面试精选分布式@架构师

系统容量预估及架构优化

2021-05-04  本文已影响0人  梅西爱骑车

一、系统容量预估

1.1预估步骤:

注册用户数->日均UV量->每日的PV量->每天的并发量;
峰值预估:平常量的2~3倍;
根据并发量(并发,事务数),存储容量计算系统容量。
根据客户需求:3~5年用户数达到1000万注册用户,可以做每秒并发数预估:

每天的UV为200万(二八原则);
每日每天点击浏览30次;
PV量:200万 * 30=6000万;
集中访问量:24小时 * 0.2=4.8小时,会有6000万 * 0.8=4800万(二八原则,20%时间会有80%的访问量);
每分并发量:4.8小时*60=288分钟,每分钟访问4800万/288=16.7万(约等于);
每秒并发量:16.7万/60=2780(约等于);
假设:高峰期为平常值的三倍,则每秒的并发数可以达到8340次。
1毫秒=1.3次访问;

1.2服务器预估:(以tomcat服务器举例)

按一台web服务器,支持每秒300个并发计算。平常需要10台服务器(约等于);[tomcat默认配置是150],高峰期需要30台服务器;

1.3容量预估:70/90原则

系统CPU一般维持在70%左右的水平,高峰期达到90%的水平,是不浪费资源,并比较稳定的。内存,IO类似。

以上预估仅供参考,因为服务器配置,业务逻辑复杂度等都有影响。在此CPU,硬盘,网络等不再进行评估。

二、网站架构优化

根据以上预估,有几个问题:

需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器。并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费。
所有的应用部署在同一台服务器,应用之间耦合严重。需要进行垂直切分和水平切分。
大量应用存在冗余代码
服务器Session同步耗费大量内存和网络带宽
数据需要频繁访问数据库,数据库访问压力巨大。
大型网站一般需要做以下架构优化(优化是架构设计时,就要考虑的,一般从架构/代码级别解决,调优主要是简单参数的调整,比如JVM调优;如果调优涉及大量代码改造,就属于重构):

  1. 业务拆分
  2. 应用集群部署(分布式部署,集群部署和负载均衡)
  3. 多级缓存
  4. 单点登录(分布式Session、redis统一保存用户信息、JWT等)
  5. 数据库集群(读写分离,分库分表)
  6. 服务化
  7. 消息队列
  8. 其他技术
上一篇下一篇

猜你喜欢

热点阅读