基于情景感知的nginx负载均衡算法调度模型的研究
解决:传统的负载均衡策略,无论是利用软件实现负载均衡还是昂贵的硬件实现负载均衡,都只是一次配置负载均衡算法,永久使用。nginx负载均衡也不例外。为了能使根据实际情况动态调整。如带宽,用户访问量,机器运行状态(内存,cpu)
基于web的应用的需求越来越大,用户的日常生活越来越依赖这些应用,如电子商务,在线银行,股票交易,预订和产品销售等。因此,企业服务提供商越来越积极地将应用程序移动到基于Web的基础设施上。这些变化实质上是将web应用从通信和浏览基础设施转变为一种商业的服务。这种基于服务的web应用对Web服务器系统的性能要求越来越高。 Web服务器可能在非常短的时间内接收大量的客户端连接,这将导致网络拥塞,响应时间增加,甚至将Web服务器的操作变为不稳定的情况。响应延迟很长时间将影响用户对与web服务使用的兴趣,并且他们可能放弃浏览网站。对于电子商务网站,这种降级尤其有害,因为它可能导致收入的显着损失和客户访问的大量流失。因此,用户对更快的基于Web的应用程序的需求需要现在的我们特别留意。任何单个服务器都可以轻易地成为瓶颈和单点故障。此外,单个服务器机器只能处理有限数量的请求,并且无法按需扩展。处理对Web服务器不断增长的处理需求的最佳方法是添加更多的硬件资源,而不是用更快的一个服务器完全替换一个服务器。当客户数量呈指数增长时,集群Web服务器是构建强大网站的领先架构。集群web服务器由称为web交换机的前端节点(其负责分派请求)和用于处理请求的几个web服务器组成。由于关于集群web服务器的管理的各种技术和控制问题,负载均衡算法和准入控制(其在web交换机中实现)对于提高集群web服务器的性能特别重要。在本文中,我们提出了一个新的负载平衡算法与几个贡献如下:我们首先基于他们的服务分类请求。
基于web的应用的需求越来越大,用户的日常生活越来越依赖这些应用,但是随着使用人数的增加,对这些服务器的性能要求越来越高,任何单个服务器都可以轻易地成为瓶颈和单点故障。此外,单个服务器机器只能处理有限数量的请求,并且无法按需扩展。处理对Web服务器不断增长的处理需求的最佳方法是添加更多的硬件资源,而不是用更快的一个服务器完全替换一个服务器。当客户数量呈指数增长时,集群Web服务器是构建强大网站的领先架构。集群web服务器由称为web交换机的前端节点(其负责分派请求)和用于处理请求的几个web服务器组成。由于关于集群web服务器的管理的各种技术和控制问题,负载均衡算法和准入控制(其在web交换机中实现)对于提高集群web服务器的性能特别重要。
目前的负载均衡策略有很多,有硬件方案和软件方案两大类,硬件主要指的是像f5这种负载均衡器,性能比较好,但是价格昂贵。软件的策略有LVS和nginx,他们都各有优劣,但是他们共同的缺点就是负载均衡的策略都只能在服务启动前提前设置好,所以很难应对一些突发情况,只能够由特定的管理员去手工维护这些策略。
因此我想基于nginx,利用情景感知,监控服务器的一些指标,如带宽,用户访问量,机器运行状态(内存,cpu),通过算法去动态让nginx去使用不同的负载均衡算法的调度。现在nginx负载均衡算法用轮训,ip hash,指定权重这三种。我在图书馆搜索了有关情景感知和负载均衡的相关论文,中文的基本没有,英文的与之相关的也很少,关于负载均衡的很多,但是结合情景感知的很少。后续工作主要是看看已经找到的相关论文,国内外现状和初步实现方案。
访问内容的大小 ip地址 缓存 吞吐量 响应时间 cpu利用率 网络带宽 内存 访问时间
衡量标准:响应时间
1.轮训
2.weight
3.ip_hash
4.fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5.url_hash(第三方)
访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
比如在cpu利用率都很大,请求队列等一样的时候选择轮训算法,在访问量很小的情况下使用fair算法,访问量小并且有缓存的情况下使用urlhash,同一ip访问量特别大的时候不用ip_hash
相关论文
Deciding Handover Points Based on Context-Aware Load Balancing in a WiFi-WiMAX Heterogeneous Network Environment
基于分布式情景感知的分层式网络路由方法 CN 103595657 A
上下文感知系统中的规则生成与匹配算法
Workload-aware load balancing for clustered Web servers
Load Balancing for Future Internet: An Approach Based on Game Theory
1.特征的选择
1.1 通过相关论文确定备选特征
2.数据采集和标注
2.1 确定采集系统实现方案(服务器如何配置,采集日志的格式)
2.2 确定如何模拟用户访问行为
2.3 在不同场景下分析采用哪个算法最好,给数据标签
2.3 根据所选特征采集数据
3.数据的清理和预处理
4.特征的确定
3.1 根据采集的数据通过神经网络或者特征选择算法去进行指标的评估
3.2 确定参加模型训练的指标
5.模型的选择
4.1 采用不同模型对数据集进行训练,找出准确率最高的
6.模型优化
7.模型评估
8.实际效果展示