LVS与其他负载均衡软件的区别
2024-10-18 22:38:11
有人在邮件列表问haproxy的作者为何haproxy无论是tcp模式还是http模式,能支撑的并发量都不是太大。
Willy回答了这个问题。
Exactly. The difference is between LBs that process a stream and which
are proxy-based, and the ones which process packets and are basically
routers. In order to parse and modify a stream, you need some memory,
while you don't need this to route packets (beyond the routing queue).
L4 load balancers often store a session table which is a few hundreds
of bytes per session, as opposed to a few tens of kB of buffers for
proxies. However, L4 LBs have to deal with TIME_WAIT, which proxies
don't since it's done in the system, so in practice, the ratio is not
really tens-of-thousands to millions but rather tens-of-thousands to
hundreds-of-thousands when the connection rate are high.
are proxy-based, and the ones which process packets and are basically
routers. In order to parse and modify a stream, you need some memory,
while you don't need this to route packets (beyond the routing queue).
L4 load balancers often store a session table which is a few hundreds
of bytes per session, as opposed to a few tens of kB of buffers for
proxies. However, L4 LBs have to deal with TIME_WAIT, which proxies
don't since it's done in the system, so in practice, the ratio is not
really tens-of-thousands to millions but rather tens-of-thousands to
hundreds-of-thousands when the connection rate are high.
> and why in HAProxy
> you can have "only" thousends of connections while LVS like LBs can
> annouce millions...
> So in haproxy, whatever the mode, tcp or http, you'll always have
> thousends of connexions.
> you can have "only" thousends of connections while LVS like LBs can
> annouce millions...
> So in haproxy, whatever the mode, tcp or http, you'll always have
> thousends of connexions.
In fact it depends a lot on the configured memory and on the kernel
tuning. With todays 64-bit systems and cheap RAM, there's plenty of
margin. We had one user who reported 1 million established connections
in a bench, and several ones reported more than 300k in production. In
Linux, by default, processes are limited to 1 million FDs so you need
to patch the kernel or to run in multi-process mode for this. I assume
it's not that crazy to run several processes when you have to deal with
1 million concurrent connections :-)
if you don't need any form of session persistence or content switching,
LVS might be more suited for this usage.
LVS might be more suited for this usage.
最新文章
- *HDU1455 DFS剪枝
- http详解
- no-jquery 04 Events
- Android ListView item项 显示动画
- 并发包之Future:代码级控制超时时间
- 数据库 CRUD
- 重新组织 vs 重新生成索引
- web 项目 布在tomcat服务器上出现的问题小记
- Python之路----文件操作
- BZOJ 4009 接水果
- STP学习总结
- realvnc viewer 5.3.2无需输入用户名和密码访问远程桌面
- git 一口气带你走完git之旅
- httpd添加新模块
- docker上传自己的镜像
- 用keytool制作证书并在tomcat配置https服务(二 )
- 语法、id和class选择器、创建、
- IOS11导航栏自定义返回按钮被遮挡
- JVM方法调用过程
- Android中的Service:Binder,Messenger,AIDL