数据库:压测高并发时观察数据库的磁盘负载、网络负载、CPU负载、内存,看在所需情况下,数据库是否可以支撑
1)top
2)free -m
3)fdisk -l 可以看到系统上的磁盘(包括U盘)的分区以及大小相关信息
业务服务器负载较高问题解决:支持系统集群化部署 ,增加服务器数量
业务服务器负载ok,数据库的负载增高:
1)数据库读写分离&分库分表:
a.数据库读写分离,一个主库下至少挂载一个从库,主库主要用来写,从库主要用来读
2)引入缓存:可以减轻数据库读的压力
3)引入消息中间件集群,做写请求异步化处理,实现请求流量的削峰填谷的效果:减轻数据库写压力
eg:
某种抽奖在开奖后向大量参与用户发放奖励权益,这就是一个典型场景。在这种情况下,会瞬时产生大量的写请求,而且这种业务场景下对写入实时性要求不高,完全可以在开奖后异步慢慢完成写入请求
存储选型的考虑要素
存储选型的目的还是为了我们的使用场景和用户服务,因此在选型前需要回答自己一些 业务指标 & 技术指标 方面的问题,以便于我们清楚存储选型的应用环境。
- 用户量:用户量预估多少?几百几万还是几亿?
- 数据量:数据量预估多少?日均增量能有多少?
- 读写偏好:数据是读多一些还是写多一些?
- 数据场景:强事务型还是分析型需求?
- 运行性能要求:并发量是多少?高峰、平均、低谷分别预估是多少?