Low performance in Pipe-only mode
Somsak Sriprayoonsakul
somsaks at gmail.com
Mon Dec 10 16:24:56 CET 2012
Please ignore this. Seems that I misinterpreted my test result. Actually
Pipe performance is not that bad.
BR,
Somsak
somsaks at gmail.com
On Fri, Dec 7, 2012 at 4:58 PM, Somsak Sriprayoonsakul <somsaks at gmail.com>wrote:
> Hello,
>
> We were trying to use Varnish as L7 HTTP request router with absolutely NO
> cache.
>
> We created very minimal VCL rules to select correct backend and return
> PIPE for all requests. Below are the snippet taken from the VCL.
>
> sub vcl_recv {
> # if X-Forwarded-For has been set by CDN, leave it
> if (! req.http.X-Forwarded-For) {
> set req.http.X-Forwarded-For = client.ip;
> }
>
> if (req.http.host ~ "desired.domain.com" &&
> (req.request == "GET" &&
> ! ( (req.url ~ ".*\?.*[&]?.*") ||
> (req.url ~ ".*/$") ||
> (req.url ~ ".*/\?.*") ||
> (req.url ~ ".*\?.*[&]?upload.*")
> ))
> ) {
> set req.backend = tier1;
> } elsif (req.request == "PUT") {
> set req.backend = tier2;
> } elsif (req.http.host ~ "another.domain.com") {
> set req.backend = tier_console;
> } else {
> set req.backend = default_tier;
> }
> return (pipe);
> }
>
> sub vcl_pipe {
> set bereq.http.connection = "close";
>
> return (pipe);
> }
>
> With this, Varnish work as expected, but however the performance is much
> lower than in "lookup" mode.
>
> We tested performance by using Tsung, had 3 servers simulated 15000
> clients. Backends cosists of 2 servers running NGINX. We got the following
> results.
>
> - Have TSUNG did the load balancing to 2 servers (TSUNG can do round-robin
> load balance by itself). We got around 4500-4800 request/sec
> - TSUNG point to Varnish with above VCL. request/sec drop to around
> 900-1000 request/sec.
> - If we change the last line to "return (lookup);" instead of "return
> (pipe);", we got around 3300 request/sec.
>
> I tried to play around with thread_pool, thread_pool_min, and
> thread_pool_max as suggested on various web sites. Even with -p
> thread_pool_min=100, -p thread_pool_max=5000, -p thread_pools=8, -p
> session_linger=50, -p cli_timeout=25, -p listen_depth=8192 the performance
> didn't improve much (NOTE: Varnish server has 8 core)
>
> Is there anyway to increase performance of PIPE only mode to be, at the
> least, in the same level as Lookup mode? What could we do to debug the
> performance?
>
> Best Regards,
>
> Somsak
>
> somsaks at gmail.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20121210/bd95f406/attachment.html>
More information about the varnish-misc
mailing list