大量的网络请求受限于
带宽限制和
服务器处理能力的限制,大量的
磁盘I/O和
网络I/O,这些都需要CPU的参与.
若要提高服务器性能:
第一种:Scale On 向上扩展 增加硬件
带来的问题:性能并非是线性增长,超多核的CPU争抢资源,CPU仲裁机制本身浪费性能.
第二种:Scale Out向外扩展 增加服务器
可以分为:LB集群 Load Banlancing负载均衡集群
HA集群 High ABailablity高可用性集群
HP集群 High Performance高性能计算集群
LB集群:
提高并发处理能力
调度器
服务器+服务器+服务器
通过调度器实现负载均衡,调度器通过调度算法(RR轮调,WRR加权轮调)
将请求分发给多台服务器.一个多线程浏览器的访问对象可能来自于多台服务器。
服务器之间通过rsync(文件同步工具)
+inotify(内核检查文件改变通知用户)
时时同步数据.
负载均衡的高可用性能力:前端主机具备health check健康检查后端服务器健康
eg: 一个简单WEB应用的负载均衡
1 通过LB集群调度器实现多个访问调度至的多个WEB服务器,减少网络I/O
2 独立的MySQL服务器和NFS减少磁盘I/O
3 WEB服务器之间通过rsync+inotify实现静态页面同步
瓶颈:调度器
NFS NFS的并发处理能力有限
解决方法:
功能切分
前端做成一个静态页面服务器集群,将链接分发至其他分类集群
风险:调度器宕机
解决方法:给调度器做HA高可用集群
HA集群: 提高服务的可用性,始终在线能力
主服务器 :服务器向外时时发生自身心跳信息
备用服务器: 1 实时监控主服务器状态
2 夺取主服务器IP
3 启用自身调度服务
服务器之间在同一个交换机通过组播的方式,传递心跳信息。
DC节点:推选的事物协调员(若DC挂掉重新推选)协调有谁来继承服务
脑裂split-brain:主服务器未宕机,备用便替代服务的情况
处理方法: 1 爆头STONITH 备用服务器向电源交换机发起切点对方电源的请求
2 隔离fencing
节点级别:STONTIH
资源级别:
一个HA集群最少需要奇数个节点
问题:备用服务器的资源浪费
解决方案,将提供不能服务的服务器组成一个HA集群
eg: WEB+Mail 当WEB挂掉时由Mail服务器提供WEB服务
HP集群
分布式集群 用于处理海量数据计算
需要具备: 1 分布式文件系统
分布式存储,将数据分布存储于多个节点
将处理能力也在多个节点进行
2 将大任务切割成为小任务,分别处理处理的的机制
将数据化整为零分别给不同节点处理,再将结果汇总