Author : 岑文初
Email: wenchu.cenwc@alibaba-inc.com
Blog: http://blog.csdn.net/cenwenchu79
Date: 2009-5-26
目录
需求转而学习... 2
“软”负载均衡... 2
LVS (Linux Virtual Server)... 3
Virtual Server三种模式介绍... 3
Virtual Server三种模式的比较... 5
Virtual Server三种模式实践... 6
三种模式下的简单压力测试... 9
HA-Proxy. 10
HA-Proxy安装和使用... 10
HA-Proxy的压力测试结果... 15
“软”负载学习心得... 15
服务器资源:
10.2.225.128作为Load Balancer,10.2.225.136和10.2.225.139作为后端的服务器。
在10.2.225.136和10.2.225.139上分别安装Apache2.2.14,然后打开80端口,启动Web服务。
1. 安装LVS配置工具(只需要在Load Balancer安装即可)
Linux操作系统当前大部分都已经支持Virtual Server,因此不需要再去编译内核,只需要下载和安装用户配置工具ipvsadmin。首先请查看自己Linux操作系统内核的版本,我的版本是2.6.18。从http://www.linux-vs.org/software/ipvs.html#kernel-2.6 下载了ipvsadm-1.24.tar.gz。安装步骤如下:
Tar –xzvf ipvsadm-1.24.tar.gz
Ln –s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux (这部必须作,因为在编译和安装的时候需要用到目录/usr/src/linux来获得必要的外部依赖库)
Cd ipvsadm-1.24
Make && make install
输入ipvsadm,如果看到以下内容证明安装成功了:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
2. DR模式测试
a. 为10.2.225.128这台Load Balancer的网卡绑定虚拟IP。
ifconfig eth0:0 10.2.225.211 netmask 255.255.255.0 broadcast 10.2.225.211 up
b. 在Load Balancer上建立虚拟IP。
Ipvsadm –A –t 10.2.225.211:80 –s rr //221 IP没有实体机器在使用,因此作为虚拟IP使用,A表示建立虚拟IP,t表示是tcp协议,s表示负载算法,rr是Round Robin。
c. 在Load Balancer上建立虚拟IP与两个实体服务器的关系。
ipvsadm -a -t 10.2.225.211:80 -r 10.2.225.136:80 -g -w 1 //将虚拟IP和端口关联到实体机器上,a表示新建虚拟IP和实体机器的关联关系,r后面跟实体机器地址和端口,g表示使用DR模式,w是权重。
ipvsadm -a -t 10.2.225.211:80 -r 10.2.225.139 :80 -g -w 1
d. 在另外两台实体服务器上建立虚拟IP与网卡回环的绑定关系。
ifconfig lo:0 10.2.225.211 netmask 255.255.255.255 broadcast 10.2.225.211 up
下图就是配置好以后再输入ipvsadm查看到的虚拟配置信息
其中Route表示就是DR的模式,然后图中ActiveConn表示连接数,这里是访问一个发布在两台后端服务器的页面带来的连接数,访问页面的情况如下两张图:(主要是看返回页面中服务器ip打印的不同)
访问页面的结果和DR是一样的,对虚拟IP的访问,会轮询到不同的后端服务器上。
简单的压力测试采用Apache ab,500并发用户,10w的请求总数。
|
总耗时(s)
|
TPS(#/sec)
|
NAT
|
22.480
|
4448.34
|
TUNNEL
|
10.707
|
9339.80
|
DR
|
10.177
|
9825.68
|
可以看出NAT性能要比后两种差一倍。
LVS是从四层对消息进行负载转发的,很大程度上是直接利用操作系统的特性来实现消息转发,因此转发损耗有限,但是NAT模式中Load Balancer对于性能的影响很大,同时对于负载压力本身以及后台节点数目有限制。在LVS基础上有很多其他的开源软件,增加了心跳等机制来保证集群的健壮性。而LVS并不能满足根据应用参数或包体内容转发请求的场景,因此进一步研究HA-Proxy,这种基于基于应用级别在7层对消息作分析转发的负载均衡方案。
分享到:
相关推荐
### Java点滴学习资料 #### 一、Java简介与特点 Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java的核心优势之一在于其跨平台特性,即所谓的“一次编写,到处运行”,这使得Java代码能够在不同...
在自动点滴管理系统中,如果服务部署在多台服务器上,可以通过WCF的负载均衡策略来分散请求,提高系统响应速度和整体性能。 总之,自动点滴管理系统利用.NET 3.5框架和WCF技术,构建了一个高效、安全的分布式系统,...
液体点滴速度监控装置 液体点滴速度监控装置是对液体点滴速度的检测和控制及储液瓶中液面高度的检测报警的系统。本系统通过光电传感器检测液面高度和液体点滴速度,使用步进电机控制液体点滴速度,并实现了多机通信...
在VC++的学习过程中,了解和掌握这些点滴知识是非常重要的,它们涵盖了从基本语法到MFC框架的使用,以及面向对象编程的原则。以下是对这些知识点的详细说明: 1. **组合框数据输入**:在VC++中,当你在组合框...
国旗下演讲:学习点滴心得.pdf
#### 二、工作条件检测 在控制器与SD卡之间进行任何通信之前,控制器需要了解SD卡支持的工作电压范围。这一过程通常通过以下步骤实现: 1. **控制器首先使用默认电压发送一条复位指令(CMD0)**,接着发送CMD8指令...
自动点滴管理系统是一款基于.NET 3.5框架,利用Windows Communication Foundation (WCF) 技术构建的应用程序。WCF是微软提供的一种全面的服务导向架构,用于构建高度互操作的、分布式系统。它允许应用程序在不同的...
自动点滴管理系统是一款基于.NET 3.5框架,利用Windows Communication Foundation (WCF) 技术构建的高效能、高可靠性的应用。WCF是微软推出的一种面向服务的通信框架,旨在简化分布式系统的开发,它提供了丰富的功能...
SD卡协议学习点滴(完整版本),对使用SD卡很有帮助
7. **负载均衡与故障转移**:WCF支持负载均衡和故障转移策略,当服务节点增多或出现故障时,系统能自动调整,确保服务的连续性和可用性。 通过.NET框架3.5和WCF技术的结合,自动点滴管理系统能够实现高效、安全的...
【基于Wcf技术的自动点滴管理系统】是一种利用先进的软件技术设计的医疗管理工具,主要用于提升医疗机构的点滴护理效率。此系统的核心是运用Windows Communication Foundation(Wcf),这是一种由微软提供的.NET框架...
标题中的“智能液体点滴速度监测”是指一种利用现代科技手段对输液过程中的点滴速度进行实时、精确监控的技术。这项技术通常结合传感器、微处理器和显示设备,旨在提高医疗护理的安全性和效率,防止因点滴速度不当...
【点滴液体点滴速度监控装置设计报告】 本设计报告主要探讨了一种基于单片机技术的液体点滴速度监控装置,旨在实现对输液过程的精确控制和实时监测,以提高医疗安全性和患者的舒适度。该系统的核心是单片机AT89C51...
这份名为“数据结构及算法学习点滴记录.zip”的压缩包文件显然包含了丰富的学习资源,旨在帮助大学生深入理解和掌握数据结构这一核心概念。 数据结构是计算机存储、组织数据的方式,它涉及到如何在计算机内存中有效...
很抱歉,我无法根据您提供的文件内容来生成与"Oracle初学者的学习点滴及国内oracl.docx"相关的IT知识。文件的内容主要涉及国际贸易教程的习题和理论,如李嘉图的比较优势理论、里昂惕夫悖论,以及21世纪国际贸易的新...
单片机检测到中断信号后,进入调整方式二,采集装置 1 通过红外光电传感器对不同标志的检测,并以电信号的形式传给单片机,经运算、分析、处理后单片机通过输出端口将数据传给显示模块和电机,实现点滴速度的显示和...