Req #71832 [Com]: Support for persistent connections

From: Date: Tue, 15 May 2018 08:43:17 +0000
Subject: Req #71832 [Com]: Support for persistent connections
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-215257@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=71832&edit=1 ID: 71832 Comment by: rmoisto at gmail dot com Reported by: rmoisto at gmail dot com Summary: Support for persistent connections Status: Open Type: Feature/Change Request Package: cURL related PHP Version: Irrelevant Block user comment: N Private report: N New Comment: In the meantime I've found out that DNS is already cached and it's enabled by default. But still, measured by curl request times with a proxy that can hold keepalive connections are anywhere from 100 ms to 800 ms faster. These requests go all over the world in parallel. That proxy however is a pain to maintain and I'm sure doing this directly in PHP would be even faster. Previous Comments: ------------------------------------------------------------------------ [2018-02-28 13:51:01] spam2 at rhsoft dot net on a proper system the 4 ms should only hit once, normally you have as local dns-caching resolver on 127.0.0.1 on servers where it matters which eiter does recursion directly or forward to a fast nameserver as near as possible but cache results anyways ------------------------------------------------------------------------ [2018-02-28 13:06:30] rmoisto at gmail dot com I'm not sure where I got that 60 ms from. Currently curl is reporting connection time to another server on the local network as 5 ms. 4 ms of that is name lookup. The total request time is 6 ms. It would already be a bonus if curl didn't query the name server each time and cached the results for a bit. Keeping a persistent connection would be even better. ------------------------------------------------------------------------ [2018-02-28 12:43:48] spam2 at rhsoft dot net and within the LAN 1.4 ms while we talk here about fetch the whole page and not only connection and with https below 5 ms Concurrency Level: 1 Time taken for tests: 1.349 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 4075053 bytes HTML transferred: 3778000 bytes Requests per second: 741.49 [#/sec] (mean) Time per request: 1.349 [ms] (mean) Time per request: 1.349 [ms] (mean, across all concurrent requests) Transfer rate: 2950.78 [Kbytes/sec] received Concurrency Level: 1 Time taken for tests: 4.978 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 4038052 bytes HTML transferred: 3778000 bytes Requests per second: 200.88 [#/sec] (mean) Time per request: 4.978 [ms] (mean) Time per request: 4.978 [ms] (mean, across all concurrent requests) Transfer rate: 792.14 [Kbytes/sec] received ------------------------------------------------------------------------ [2018-02-28 12:38:14] spam2 at rhsoft dot net > For example even in my very fast local network the > time spent establishing a connection is around 60 ms then your error is somewhere else the 26 ms at the bottom are non-keep-alive requests over vpn and WAN [harry@srv-rhsoft:~]$ response-times.sh DOMAIN: http://corecms COUNT: 250 CMS UNCACHED: 2370 us CMS CACHED: 978 us STATIC HTM: 737 us STATIC PHP: 879 us FACTOR CMS/STATIC HTM: 3.2 FACTOR CMS/STATIC PHP: 2.7 FACTOR CACHED/STATIC HTM: 1.3 FACTOR CACHED/STATIC PHP: 1.1 FACTOR STATIC PHP/STATIC: 1.2 RUNTIME: 1.778 Concurrency Level: 1 Time taken for tests: 26.715 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 4074590 bytes HTML transferred: 3777476 bytes Requests per second: 37.43 [#/sec] (mean) Time per request: 26.715 [ms] (mean) Time per request: 26.715 [ms] (mean, across all concurrent requests) Transfer rate: 148.95 [Kbytes/sec] received ------------------------------------------------------------------------ [2018-02-28 12:05:44] rmoisto at gmail dot com As a workaround I'm in the process of building an nginx reverse proxy that can hold persistent connections. The performance gains for EU - US connections are massive. Even with the nginx proxy overhead requests are on average 900 ms faster. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=71832 -- Edit this bug report at https://bugs.php.net/bug.php?id=71832&edit=1

« previous php.bugs (#215257) next »