pconnect vs connect

From: Date: Wed, 18 Oct 2000 20:24:41 +0000
Subject: pconnect vs connect
Groups: php.db 
Request: Send a blank email to php-db+get-3749@lists.php.net to get a copy of this message
Hi, I'm one of the developers working on the phpauction project (www.phpauction.org). Recently, I tried converting the code to use mysql_pconnect rather than mysql_connect. Since a database connection is invoked on every web page, I thought my change would greatly enhance performance, but my results were a little suprising (I tested using both connect and pconnect twice, once to "warm up" apache and mysql, and a second time with the warmed up system -- I didn't try tweaking any paramters). The test results are included below, but its enough to say that pconnect actually decreased performance slightly. My guess is that the open connections (I used mysql processlist to verify that connections WHERE being reused) did not yield any performance enhancements, and the extra time pconnect spends checking for used connections is reflected in the slight performance loss. My question: why? Is MySQL that fast at opening a connection. Alternately, is php that slow (on the same machine I got 25 pages per minute using Apache Jserv, albeit on an entireley different script -- though they both opened several database connecetions). I'm a relative newcomer to php, but I thought that it was native to the apache process, the same way mod_perl is, so it would be REALLY fast. Is this not the case? Where (online and for free ;->) can I find information regarding the php backend architecture that would elucidate these issues (please don't just say www.php.net). Thanks in advance, Sheer El-Showk Benchmarks: Please forgive the full benchmark listing, I just thought I'd be thorough. Warm up tests: -------------- mysql_connect: /usr/local/apache/bin/ab -n 1000 -c 10 http://192.168.1.2/~sheer/phpauction/index.php3 Server Software: Apache/1.3.12 Server Hostname: 192.168.1.2 Server Port: 80 Document Path: /~sheer/phpauction/index.php3 Document Length: 15286 bytes Concurrency Level: 10 Time taken for tests: 141.273 seconds Complete requests: 1000 Failed requests: 154 (Connect: 0, Length: 154, Exceptions: 0) Total transferred: 15606422 bytes HTML transferred: 15308942 bytes Requests per second: 7.08 Transfer rate: 110.47 kb/s received Connnection Times (ms) min avg max Connect: 0 0 54 Processing: 106 1401 3237 Total: 106 1401 3291 mysql_pconnect: Server Software: Apache/1.3.12 Server Hostname: 192.168.1.2 Server Port: 80 Document Path: /~sheer/phpauction/index.php3 Document Length: 15286 bytes Concurrency Level: 10 Time taken for tests: 153.657 seconds Complete requests: 1000 Failed requests: 190 (Connect: 0, Length: 190, Exceptions: 0) Total transferred: 15590002 bytes HTML transferred: 15293410 bytes Requests per second: 6.51 Transfer rate: 101.46 kb/s received Connnection Times (ms) min avg max Connect: 0 0 54 Processing: 277 1529 3700 Total: 277 1529 3754 real test: mysql_connect: /usr/local/apache/bin/ab -n 1000 -c 10 http://192.168.1.2/~sheer/phpauction/index.php3 Server Software: Apache/1.3.12 Server Hostname: 192.168.1.2 Server Port: 80 Document Path: /~sheer/phpauction/index.php3 Document Length: 15286 bytes Concurrency Level: 10 Time taken for tests: 126.953 seconds Complete requests: 1000 Failed requests: 205 (Connect: 0, Length: 205, Exceptions: 0) Total transferred: 15581755 bytes HTML transferred: 15285755 bytes Requests per second: 7.88 Transfer rate: 122.74 kb/s received Connnection Times (ms) min avg max Connect: 0 0 36 Processing: 329 1263 2614 Total: 329 1263 2650 mysql_pconnect: /usr/local/apache/bin/ab -n 1000 -c 10 http://192.168.1.2/~sheer/phpauction/index.php3 Server Software: Apache/1.3.12 Server Hostname: 192.168.1.2 Server Port: 80 Document Path: /~sheer/phpauction/index.php3 Document Length: 15285 bytes Concurrency Level: 10 Time taken for tests: 140.592 seconds Complete requests: 1000 Failed requests: 214 (Connect: 0, Length: 214, Exceptions: 0) Total transferred: 15584882 bytes HTML transferred: 15288586 bytes Requests per second: 7.11 Transfer rate: 110.85 kb/s received Connnection Times (ms) min avg max Connect: 0 0 35 Processing: 339 1398 2905 Total: 339 1398 2940

« previous php.db (#3749) next »