|
Home > Archive > Perlbal > May 2005 > sticky IP support?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
sticky IP support?
|
|
|
| Hi,
I'm looking for a web-balancing software with sticky connection
support (a client will always hit the same backend in his further
requests). I can't find any information in regards that in Perlbal.
Also, is there any benchmarks available?
--=20
Vlad
| |
| Mark Smith 2005-05-16, 5:45 pm |
| We don't really have any benchmarks available, but on a dual processor Xeon
3.00 GHz with a few GB of RAM, we can get about ~1000 requests/sec out of
the machine by running two Perlbal instances. This is running the CPU at
about 90%, I believe?
Anyway, there is no way to do what you want, at least not at this time.
It'd be possible with a few changes, and not too hard. If you need it for
something, I might be able to add that feature in for you.
On Mon, May 16, 2005, Vlad wrote:
> Hi,
>
> I'm looking for a web-balancing software with sticky connection
> support (a client will always hit the same backend in his further
> requests). I can't find any information in regards that in Perlbal.
>
> Also, is there any benchmarks available?
>
> --
> Vlad
--
Mark Smith
junior@danga.com
| |
| Mike Whitaker 2005-05-16, 5:45 pm |
|
On 16 May 2005, at 18:03, Mark Smith wrote:
> We don't really have any benchmarks available, but on a dual
> processor Xeon
> 3.00 GHz with a few GB of RAM, we can get about ~1000 requests/sec
> out of
> the machine by running two Perlbal instances. This is running the
> CPU at
> about 90%, I believe?
Is that with the XS HTTP header parse, or not?
ISTR getting about 500/hits/s off a single instance on a 2.7GHz 1G
machine frontending an image server, before the XS code came out.
--
Mike Whitaker - mike@altrion.org
| |
| Mark Smith 2005-05-16, 5:45 pm |
| > Is that with the XS HTTP header parse, or not?
>
> ISTR getting about 500/hits/s off a single instance on a 2.7GHz 1G
> machine frontending an image server, before the XS code came out.
Yeah, obviously it depends on your use case, and we are limited by how much
our backends can handle too. If we were just serving static files, maybe
it'd be higher, or maybe it'd be higher doing all reverse proxying...
Anyway, this is with the XS code. Without it, we were hovering around 600
requests/sec for one of the machines. XS headers gives a very large
performance boost, and makes it more stable. (Bug in the PERL code?)
--
Mark Smith
junior@danga.com
| |
|
| TWFyazoKCnRoYW5rcyBmb3IgeW91IHJlcGx5LiAx
ayBycHMgZG9lc24ndCBzZWVtIGxpa2UgaGVs
bCBvZiBhIGxvdCBmb3IgZHVhbAp4ZW9uLsAuIHRo
b3VnaCBwYXJzaW5nIG9mIGhlYWRlcnMgd291
bGQgdGFrZSBhIGxvdCBvZiBDUFUuIEkgZG9uJ3QK
cmVhbGx5IG5lZWQgdG8gcGFyc2UgdGhlIGhl
YWRlcnMsIHNvIHR1cm5pbmcgdGhpcyBmZWF0dXJl
IG9mZiBzaHVvbGQKaW5jcmVhc2UgdGhlIHBl
cmZvcm1hbmNlIGdyZWF0ZWx5LCB5b3UgdGhpbms/Cgo+IEFueXdheSwgdGhlcmUgaXMgbm8gd2F5
IHRvIGRvIHdoYXQgeW91IHdhbnQsIGF0IGxlYXN0
IG5vdCBhdCB0aGlzIHRpbWUuCj4gSXQnZCBi
ZSBwb3NzaWJsZSB3aXRoIGEgZmV3IGNoYW5nZXMs
IGFuZCBub3QgdG9vIGhhcmQuICBJZiB5b3Ug
bmVlZCBpdCBmb3IKPiBzb21ldGhpbmcsIEkgbWln
aHQgYmUgYWJsZSB0byBhZGQgdGhhdCBmZWF0
dXJlIGluIGZvciB5b3UuCgp0aGF0IHdvdWxkIGJl
IHNvbWV0aGluZyB0aGF0IEkgaGF2ZSB0byBo
YXZlIGluIG9yZGVyIHRvIGNvbnNpZGVyCnBlcmxi
YWwuIEJ0dywgZG9lcyBpdCBoYXZlIHN1cHBv
cnQgZm9yIHRha2luZyBjYXJlIG9mIG5vdCBvbmx5
IGh0dHAsCmJ1dCBodHRwcyBhcyB3ZWxsPwoK
LS0gClZsYWQK
| |
| Brad Fitzpatrick 2005-05-16, 5:45 pm |
| On Mon, 16 May 2005, Vlad wrote:
> Hi,
>
> I'm looking for a web-balancing software with sticky connection
> support (a client will always hit the same backend in his further
> requests). I can't find any information in regards that in Perlbal.
I'm of the opinion that apps that depend on that are kinda broken, so we
never added it to Perlbal.
- Brad
| |
| Mark Smith 2005-05-16, 5:45 pm |
| > thanks for you reply. 1k rps doesn't seem like hell of a lot for dual
> xeon.?. though parsing of headers would take a lot of CPU. I don't
> really need to parse the headers, so turning this feature off shuold
> increase the performance greately, you think?
There's no way to turn off header parsing, as the headers are used to do
many of the things that Perlbal does. It has to parse them.
Are you just looking for a straight up proxy that does no header
manipulation and no reverse proxying? If so, you may want to look at Squid
or one of the other C proxies.
Perlbal is designed to be extensible (full plugin support) and flexible
(header management, reproxying, ...). It's not designed to be as fast as
single-purpose proxies, because that's not the goal.
> that would be something that I have to have in order to consider
> perlbal. Btw, does it have support for taking care of not only http,
> but https as well?
For decoding the https requests? No, it doesn't. That'd be an even bigger
CPU hog and slow it down even more. :-)
You should look into Pound. You can run HTTPS requests into Pound, which
then decodes them to plain HTTP, and then you can have it pass the requests
into Perlbal. The responses are reencoded by Pound, and that way the proxy
doesn't have to do anything with HTTPS requests.
You can have Pound insert an HTTP header, and then have your application
detect that to know if the request it's handling came in over a secure
channel. The application can then change behavior appropriately.
--
Mark Smith
junior@danga.com
| |
|
| > > I'm looking for a web-balancing software with sticky connection
>=20
> I'm of the opinion that apps that depend on that are kinda broken, so we
> never added it to Perlbal.
Brad, I'm 100% with you on that, but have to deal with what I've got
and can't change it at the moment.
--=20
Vlad
| |
|
| > There's no way to turn off header parsing, as the headers are used to do
> many of the things that Perlbal does. It has to parse them.
I see.
> Are you just looking for a straight up proxy that does no header
> manipulation and no reverse proxying? If so, you may want to look at Squ=
id
> or one of the other C proxies.
I guess I'm looking for a software based load balancer rather on TCP
level (to leave dealing with https on the backend side) with sticky-IP
feature.
I know squid can run in accel mode but AFAIK there is no way to keep
remote client bond to the same backend.
=20
--
Vlad
|
|
|
|
|