Varnish performance with phpinfo

Guillaume Quintard guillaume at varnish-software.com
Fri Jun 23 17:36:49 CEST 2017


Simple way to test: grow the info.html size :-)

-- 
Guillaume Quintard

On Fri, Jun 23, 2017 at 4:52 PM, Johan Hendriks <joh.hendriks at gmail.com>
wrote:

> Thanks for you answer.
> I was thinking about that also, but I could not find anything that pointed
> in that direction.
> But should I hit that limit also with the info.html file then or could it
> be the size of the page.
> The info.html is off cource way smaller than the whole php.info page.
>
> regards
> Johan
>
> Op 23/06/2017 om 10:58 schreef Guillaume Quintard:
>
> Stupid question but, aren't you being limited by your client, or a
> firewall, maybe?
>
> --
> Guillaume Quintard
>
> On Fri, Jun 2, 2017 at 12:06 PM, Johan Hendriks <joh.hendriks at gmail.com>
> wrote:
>
>> Hello all, First sorry for the long email.
>> I have a strange issue with varnish. At least I think it is strange.
>>
>> We start some tests with varnish, but we have an issue.
>>
>> I am running varnish 4.1.6 on FreeBSD 11.1-prerelease. Where varnish
>> listen on port 82 and apache on 80, This is just for the tests.
>> We use the following start options.
>>
>> # Varnish
>> varnishd_enable="YES"
>> varnishd_listen="192.168.2.247:82"
>> varnishd_pidfile="/var/run/varnishd.pid"
>> varnishd_storage="default=malloc,2024M"
>> varnishd_config="/usr/local/etc/varnish/default.vcl"
>> varnishd_hash="critbit"
>> varnishd_admin=":6082"
>> varnishncsa_enable="YES"
>>
>> We did a test with a static page and that went fine. First we see it is
>> not cached, second attempt is cached.
>>
>> root at desk:~ # curl -I www.testdomain.nl:82/info.html
>> HTTP/1.1 200 OK
>> Date: Fri, 02 Jun 2017 09:19:52 GMT
>> Last-Modified: Thu, 01 Jun 2017 12:50:37 GMT
>> ETag: "cf4-550e57bc1f812"
>> Content-Length: 3316
>> Content-Type: text/html
>> cache-control: max-age = 259200
>> X-Varnish: 2
>> Age: 0
>> Via: 1.1 varnish-v4
>> Server: varnish
>> X-Powered-By: My Varnish
>> X-Cache: MISS
>> Accept-Ranges: bytes
>> Connection: keep-alive
>>
>> root at desk:~ # curl -I www.testdomain.nl:82/info.html
>> HTTP/1.1 200 OK
>> Date: Fri, 02 Jun 2017 09:19:52 GMT
>> Last-Modified: Thu, 01 Jun 2017 12:50:37 GMT
>> ETag: "cf4-550e57bc1f812"
>> Content-Length: 3316
>> Content-Type: text/html
>> cache-control: max-age = 259200
>> X-Varnish: 5 3
>> Age: 6
>> Via: 1.1 varnish-v4
>> Server: varnish
>> X-Powered-By: My Varnish
>> X-Cache: HIT
>> Accept-Ranges: bytes
>> Connection: keep-alive
>>
>> if I benchmark the server I get the following.
>> First is derectly to Apache
>>
>> root at testserver:~ # bombardier -c400 -n10000
>> http://www.testdomain.nl/info.html
>> Bombarding http://www.testdomain.nl/info.html with 10000 requests using
>> 400 connections
>>  10000 / 10000 [=============================
>> ================================] 100.00% 0s
>> Done!
>> Statistics        Avg      Stdev        Max
>>   Reqs/sec     12459.00     898.32      13301
>>   Latency       31.04ms    25.28ms   280.90ms
>>   HTTP codes:
>>     1xx - 0, 2xx - 10000, 3xx - 0, 4xx - 0, 5xx - 0
>>     others - 0
>>   Throughput:    42.16MB/s
>>
>> This is via varnish. So that works as intended.
>> Varnish does its job and servers the page better.
>>
>> root at testserver:~ # bombardier -c400 -n10000
>> http://www.testdomain.nl:82/info.html
>> Bombarding http://www.testdomain.nl:82/info.html with 10000 requests
>> using 400 connections
>>  10000 / 10000 [=============================
>> ================================] 100.00% 0s
>> Done!
>> Statistics        Avg      Stdev        Max
>>   Reqs/sec     19549.00    7649.32      24313
>>   Latency       17.90ms    66.77ms   485.07ms
>>   HTTP codes:
>>     1xx - 0, 2xx - 10000, 3xx - 0, 4xx - 0, 5xx - 0
>>     others - 0
>>   Throughput:    71.58MB/s
>>
>>
>> The next one is against a info.php file, which runs phpinfo();
>>
>> So first agains the server without varnish.
>>
>> root at testserver:~ # bombardier -c400 -n10000
>> http://www.testdomain.nl/info.php
>> Bombarding http://www.testdomain.nl/info.php with 10000 requests using
>> 400 connections
>>  10000 / 10000 [=============================
>> ===============================] 100.00% 11s
>> Done!
>> Statistics        Avg      Stdev        Max
>>   Reqs/sec       828.00     127.66       1010
>>   Latency      472.10ms    59.10ms   740.43ms
>>   HTTP codes:
>>     1xx - 0, 2xx - 10000, 3xx - 0, 4xx - 0, 5xx - 0
>>     others - 0
>>   Throughput:    75.51MB/s
>>
>> But then against the server with varnish.
>> So we make sure it is in cache
>>
>> root at desk:~ # curl -I www.testdomain.nl:82/info.php
>> HTTP/1.1 200 OK
>> Date: Fri, 02 Jun 2017 09:36:16 GMT
>> Content-Type: text/html; charset=UTF-8
>> cache-control: max-age = 259200
>> X-Varnish: 7
>> Age: 0
>> Via: 1.1 varnish-v4
>> Server: varnish
>> X-Powered-By: My Varnish
>> X-Cache: MISS
>> Accept-Ranges: bytes
>> Connection: keep-alive
>>
>> root at desk:~ # curl -I www.testdomain.nl:82/info.php
>> HTTP/1.1 200 OK
>> Date: Fri, 02 Jun 2017 09:36:16 GMT
>> Content-Type: text/html; charset=UTF-8
>> cache-control: max-age = 259200
>> X-Varnish: 10 8
>> Age: 2
>> Via: 1.1 varnish-v4
>> Server: varnish
>> X-Powered-By: My Varnish
>> X-Cache: HIT
>> Accept-Ranges: bytes
>> Connection: keep-alive
>>
>> So it is in cache now.
>> root at testserver:~ # bombardier -c400 -n10000
>> http://www.testdomain.nl:82/info.php
>> Bombarding http://www.testdomain.nl:82/info.php with 10000 requests
>> using 400 connections
>>  10000 / 10000 [=============================
>> ============================================================
>> ============================================================
>> ======================================================] 100.00% 8s
>> Done!
>> Statistics        Avg      Stdev        Max
>>   Reqs/sec      1179.00     230.77       1981
>>   Latency      219.94ms   340.29ms      2.00s
>>   HTTP codes:
>>     1xx - 0, 2xx - 9938, 3xx - 0, 4xx - 0, 5xx - 0
>>     others - 62
>>   Errors:
>>     dialing to the given TCP address timed out - 62
>>   Throughput:    83.16MB/s
>>
>> I expected this to be much more in favour of varnish, but it even
>> generated some errors! Time taken is lower but I expected it to be much
>> faster. Also the 62 errors is not good i guess.
>>
>> I do see the following with varnish log
>> *   << Request  >> 11141123
>> -   Begin          req 1310723 rxreq
>> -   Timestamp      Start: 1496396250.098654 0.000000 0.000000
>> -   Timestamp      Req: 1496396250.098654 0.000000 0.000000
>> -   ReqStart       192.168.2.39 14818
>> -   ReqMethod      GET
>> -   ReqURL         /info.php
>> -   ReqProtocol    HTTP/1.1
>> -   ReqHeader      User-Agent: fasthttp
>> -   ReqHeader      Host: www.testdomain.nl:82
>> -   ReqHeader      X-Forwarded-For: 192.168.2.39
>> -   VCL_call       RECV
>> -   ReqUnset       X-Forwarded-For: 192.168.2.39
>> -   ReqHeader      X-Forwarded-For: 192.168.2.39, 192.168.2.39
>> -   VCL_return     hash
>> -   VCL_call       HASH
>> -   VCL_return     lookup
>> -   Hit            8
>> -   VCL_call       HIT
>> -   VCL_return     deliver
>> -   RespProtocol   HTTP/1.1
>> -   RespStatus     200
>> -   RespReason     OK
>> -   RespHeader     Date: Fri, 02 Jun 2017 09:36:16 GMT
>> -   RespHeader     Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2l
>> -   RespHeader     X-Powered-By: PHP/7.0.19
>> -   RespHeader     Content-Type: text/html; charset=UTF-8
>> -   RespHeader     cache-control: max-age = 259200
>> -   RespHeader     X-Varnish: 11141123 8
>> -   RespHeader     Age: 73
>> -   RespHeader     Via: 1.1 varnish-v4
>> -   VCL_call       DELIVER
>> -   RespUnset      Server: Apache/2.4.25 (FreeBSD) OpenSSL/1.0.2l
>> -   RespHeader     Server: varnish
>> -   RespUnset      X-Powered-By: PHP/7.0.19
>> -   RespHeader     X-Powered-By: My Varnish
>> -   RespHeader     X-Cache: HIT
>> -   VCL_return     deliver
>> -   Timestamp      Process: 1496396250.098712 0.000058 0.000058
>> -   RespHeader     Accept-Ranges: bytes
>> -   RespHeader     Content-Length: 95200
>> -   Debug          "RES_MODE 2"
>> -   RespHeader     Connection: keep-alive
>> *-   Debug          "Hit idle send timeout, wrote = 89972/95508;
>> retrying"*
>> *-   Debug          "Write error, retval = -1, len = 5536, errno =
>> Resource temporarily unavailable"*
>> -   Timestamp      Resp: 1496396371.131526 121.032872 121.032814
>> -   ReqAcct        82 0 82 308 95200 95508
>> -   End
>>
>> Sometimes I see this Debug line also -   *Debug          "Write error,
>> retval = -1, len = 95563, errno = Broken pipe"*
>>
>>
>> I also installed varnish 5.1.2 but the results are the same.
>> Is there something I miss?
>>
>> My vcl file is pretty basic.
>>
>> https://pastebin.com/rbb42x7h
>>
>> Thanks all for your time.
>>
>> regards
>> Johan
>>
>>
>> _______________________________________________
>> varnish-misc mailing list
>> varnish-misc at varnish-cache.org
>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>>
>
>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20170623/8667b48f/attachment-0001.html>


More information about the varnish-misc mailing list