Windows下做7层软负载方案分析
2010-06-25 00:00:00 来源:WEB开发网其中SoftProxy的配置:Xeno 3.0G(16核),16G内存,windows2003 x64, 千M网卡(先不考虑双网卡均衡)。
RealServer配置:Xeno 1.86G(4核),8G内存,windows 2003 x86
部署:
RealServer1和RealServer2部署具有返回用户头像的服务,SoftProxy部署7层软负载,TestClient1和TestClient2部署LoadRunner及测试脚本进行测试。
测试模型:
在线用户:300个虚拟用户,每个虚拟用户模拟1000客户端,共模拟300000在线用户,每个用户每5秒获取一次头像。
测试预期:
预期SoftProxy每秒处理6w的获取头像请求,并且CPU利用率在80%以下,内存利用率在5G以下。
其它问题
1、 客户端IP
a) 因为RealServer接收的是SoftProxy的请求,不能直接知道客户端IP,所以SoftProxy需要在转发包的时候加上一个http header以告诉客户端IP
2、 重定向,身份验证,临时应答,缓存等问题
a) httpRequest.ServicePoint.Expect100Continue = false;
b) httpRequest.ServicePoint.UseNagleAlgorithm = false;
c) httpRequest.AllowWriteStreamBuffering = false;
d) httpRequest.AllowAutoRedirect = false;
e) httpRequest.AuthenticationLevel = AuthenticationLevel.None;
f) httpRequest.AutomaticDecompression = DecompressionMethods.None;
g) HttpRequestCachePolicy noCachePolicy =
new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
httpRequest.CachePolicy = noCachePolicy;
3、 Cookies咋办?
a) HttpWebRequest并不支持直接写cookie,只能创建cookie容器,等应答回来后才会有cookies,这个比较郁闷,暂时如下这样写,收到RealServer的应答后把应答里的Cookies复制给Listenresponse并返回给客户端
httpRequest.CookieContainer = new CookieContainer();
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
listenresponse.Cookies = httpResponse.Cookies;
4、 超时值,不好定夺
a) httpRequest.Timeout = 20;
b) httpRequest.ReadWriteTimeout = 10;
更多精彩
赞助商链接