Benchmark PHP + APC + Memcache


Status
Not open for further replies.

twistedshells

Apprentice 1.0
Dear rekan-rekan,

hari ini saya sedang ngopi dan bersantai melepas penat setelah kesana kemari mencari sesuap nasi...lalu iseng login ke sebuah server yang masih baru dan melakukan beberapa test. Mungkin hasil berikut akan membantu rekan-rekan untuk mengimplementasikan APC dan memcache. Untuk mengetahui apa itu APC dan Memcache sebaiknya bertanya ke google saja daripada saya jelaskan disini panjang lebar kopi saya keburu habis :cool:

Benchmark yang saya lakukan summarynya sebagai berikut:


OS: FreeBSD 9.0-RELEASE 64bit
Processor: CPU: Intel(R) Xeon(R) CPU E5506 @ 2.13GHz (4 cores)
RAM: 4 GB
HD: 500 GB SATA II

Command AB: ab -n 1000 -c 10 Sedo Domain Parking - Sedo GmbH

PHP 5.3.13 with Suhosin-Patch
Zend Engine v2.3.0

Tanpa Memcache dan APC
-----------------------
Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 64495 bytes

Concurrency Level: 10
Time taken for tests: 20.776937 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 64720000 bytes
HTML transferred: 64495000 bytes
Requests per second: 48.13 [#/sec] (mean)
Time per request: 207.769 [ms] (mean)
Time per request: 20.777 [ms] (mean, across all concurrent requests)
Transfer rate: 3041.98 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 13 12.3 11 190
Processing: 76 192 148.5 131 1473
Waiting: 9 23 52.7 12 834
Total: 87 205 150.4 144 1485

Percentage of the requests served within a certain time (ms)
50% 144
66% 175
75% 213
80% 344
90% 398
95% 455
98% 651
99% 713
100% 1485 (longest request)

Dengan Memcache tanpa APC
-------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 66024 bytes

Concurrency Level: 10
Time taken for tests: 22.573895 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 66249000 bytes
HTML transferred: 66024000 bytes
Requests per second: 44.30 [#/sec] (mean)
Time per request: 225.739 [ms] (mean)
Time per request: 22.574 [ms] (mean, across all concurrent requests)
Transfer rate: 2865.97 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 17 13.9 13 162
Processing: 81 207 141.6 148 967
Waiting: 8 28 52.3 13 850
Total: 93 224 142.7 167 985

Percentage of the requests served within a certain time (ms)
50% 167
66% 204
75% 255
80% 356
90% 420
95% 480
98% 660
99% 741
100% 985 (longest request)

Dengan Memcache tanpa APC - test kedua
--------------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 66024 bytes

Concurrency Level: 10
Time taken for tests: 20.401963 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 66313240 bytes
HTML transferred: 66088015 bytes
Requests per second: 49.01 [#/sec] (mean)
Time per request: 204.020 [ms] (mean)
Time per request: 20.402 [ms] (mean, across all concurrent requests)
Transfer rate: 3174.16 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 16 14.7 12 150
Processing: 79 184 124.9 132 904
Waiting: 9 19 28.2 13 297
Total: 91 201 126.3 148 924

Percentage of the requests served within a certain time (ms)
50% 148
66% 180
75% 217
80% 333
90% 390
95% 431
98% 624
99% 656
100% 924 (longest request)

Dengan Memcache tanpa APC - test ketiga
---------------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 66024 bytes

Concurrency Level: 10
Time taken for tests: 20.193972 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 66323460 bytes
HTML transferred: 66098010 bytes
Requests per second: 49.52 [#/sec] (mean)
Time per request: 201.940 [ms] (mean)
Time per request: 20.194 [ms] (mean, across all concurrent requests)
Transfer rate: 3207.34 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 13 4.8 11 45
Processing: 80 186 123.1 137 731
Waiting: 9 17 29.3 12 264
Total: 92 199 123.2 151 742

Percentage of the requests served within a certain time (ms)
50% 151
66% 177
75% 206
80% 283
90% 396
95% 435
98% 592
99% 662
100% 742 (longest request)



Dengan APC tanpa memcache
-------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 68394 bytes

Concurrency Level: 10
Time taken for tests: 24.496250 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 68686163 bytes
HTML transferred: 68460938 bytes
Requests per second: 40.82 [#/sec] (mean)
Time per request: 244.962 [ms] (mean)
Time per request: 24.496 [ms] (mean, across all concurrent requests)
Transfer rate: 2738.22 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 17 14.1 12 179
Processing: 85 225 162.0 154 1301
Waiting: 9 31 52.0 14 421
Total: 95 242 163.5 174 1363

Percentage of the requests served within a certain time (ms)
50% 174
66% 223
75% 348
80% 379
90% 441
95% 577
98% 723
99% 815
100% 1363 (longest request)

Dengan APC tanpa memcache - test kedua
--------------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 68394 bytes

Concurrency Level: 10
Time taken for tests: 18.430646 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 68662803 bytes
HTML transferred: 68437578 bytes
Requests per second: 54.26 [#/sec] (mean)
Time per request: 184.306 [ms] (mean)
Time per request: 18.431 [ms] (mean, across all concurrent requests)
Transfer rate: 3638.13 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 13 5.6 12 50
Processing: 74 169 111.0 126 888
Waiting: 8 17 31.5 13 515
Total: 85 182 111.2 139 899

Percentage of the requests served within a certain time (ms)
50% 139
66% 163
75% 191
80% 209
90% 379
95% 406
98% 449
99% 628
100% 899 (longest request)

Dengan APC tanpa memcache - test ketiga
----------------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 68394 bytes

Concurrency Level: 10
Time taken for tests: 17.405946 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 68684700 bytes
HTML transferred: 68459475 bytes
Requests per second: 57.45 [#/sec] (mean)
Time per request: 174.059 [ms] (mean)
Time per request: 17.406 [ms] (mean, across all concurrent requests)
Transfer rate: 3853.51 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 8 15 11.1 12 125
Processing: 71 156 104.3 121 864
Waiting: 8 18 27.7 13 297
Total: 81 172 105.5 135 873

Percentage of the requests served within a certain time (ms)
50% 135
66% 153
75% 168
80% 186
90% 362
95% 396
98% 444
99% 620
100% 873 (longest request)


Dengan APC + Memcache
---------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 69923 bytes

Concurrency Level: 10
Time taken for tests: 16.147476 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 70270649 bytes
HTML transferred: 70045199 bytes
Requests per second: 61.93 [#/sec] (mean)
Time per request: 161.475 [ms] (mean)
Time per request: 16.147 [ms] (mean, across all concurrent requests)
Transfer rate: 4249.77 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 7 17 11.3 13 89
Processing: 64 143 92.1 113 914
Waiting: 8 24 38.8 14 515
Total: 73 160 93.5 131 936

Percentage of the requests served within a certain time (ms)
50% 131
66% 148
75% 163
80% 179
90% 234
95% 373
98% 434
99% 630
100% 936 (longest request)

Dengan APC + Memcache - test kedua
----------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 69923 bytes

Concurrency Level: 10
Time taken for tests: 15.39564 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 70148000 bytes
HTML transferred: 69923000 bytes
Requests per second: 66.49 [#/sec] (mean)
Time per request: 150.396 [ms] (mean)
Time per request: 15.040 [ms] (mean, across all concurrent requests)
Transfer rate: 4554.85 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 7 16 10.5 12 76
Processing: 71 130 72.0 109 625
Waiting: 8 17 18.2 13 281
Total: 81 147 73.6 127 654

Percentage of the requests served within a certain time (ms)
50% 127
66% 142
75% 154
80% 162
90% 203
95% 354
98% 397
99% 430
100% 654 (longest request)

Dengan APC + Memcache - test ketiga
-----------------------------------
Completed 800 requests
Completed 900 requests
Finished 1000 requests


Server Software: Apache/2.2.22
Server Hostname: aa.bb.cc.dd
Server Port: 80

Document Path: /ix.php
Document Length: 69923 bytes

Concurrency Level: 10
Time taken for tests: 15.96684 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 70191804 bytes
HTML transferred: 69966579 bytes
Requests per second: 66.24 [#/sec] (mean)
Time per request: 150.967 [ms] (mean)
Time per request: 15.097 [ms] (mean, across all concurrent requests)
Transfer rate: 4540.47 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 6 18 11.4 14 69
Processing: 66 130 72.6 109 654
Waiting: 7 20 23.6 14 302
Total: 76 149 75.0 129 664

Percentage of the requests served within a certain time (ms)
50% 129
66% 147
75% 159
80% 169
90% 204
95% 359
98% 404
99% 453
100% 664 (longest request)

Untuk grafik dan perbandingan dalam format excel bisa dilihat sebagai berikut:

benchmark-apache-php-apc-memcache-2.png


Batasan:
1. PHP, Apache belum di tuning
2. APC dan memcache belum dituning
3. OS/Kernel belum dituning

Kesimpulan:
1. Sementara perbandingan APC dan Memcache sendiri boleh dibilang memcache menang sedikit.
2. Untuk performance lebih bagus kombinasi APC + memcache akan sangat membantu untuk loading website.
3. Jika anda menggunakan memcache, pastikan script Anda sudah mendukung fitur memcache atau hanya menjadi mubazir
4. Untuk static file seperti javascript, css dan image sebaiknya menggunakan server terdistribusi untuk membantu yang disebut 'first connect time impressive'

semoga bermanfaat
 
Last edited:
Status
Not open for further replies.

Top