Lihat ke Halaman Asli

Optimasikan Waktu Eksekusi Skrip PHP dengan Php Accelerator

Diperbarui: 26 Juni 2015   19:23

Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Bagikan ide kreativitasmu dalam bentuk konten di Kompasiana | Sumber gambar: Freepik

Secara sederhana, proses waktu kita merekues halaman web adalah seperti ini: user meminta halaman web ke webserver, apabila yang diminta oleh user adalah halaman dinamis dengan pemrograman Php, maka dari webserver meneruskannya ke intepreter Php untuk diproses terlebih dahulu. Php akan memroses skrip tersebut dan setelah didapatkan hasilnya maka akan dikembalikan kembali ke webserver untuk diberikan ke user. Lalu dimanakah fungsi Php accelerator dalam proses tersebut? seperti yang telah disebutkan sebelumnya, ada saat webserver menugaskan Intepreter Php untuk memproses skrip Php, baik Php sebagai module ataupun file binary yang berdiri sendiri (CGI). Pertama-tama Php akan mem-parsing baris-per-baris skrip tersebut dan memastikan tidak ada error pada skrip tersebut, secara syntax dan semantic. kemudian Php memproses (compile) setiap instruksi dari skrip tersebut dan mengembalikan hasilnya kembali ke webserver. Peranan dari Php accelerator ini adalah menyimpan sementara (di memory) hasil dari kompilasi tersebut (compile-state). dan apabila Php menerima kembali skrip dengan instruksi-instruksi yang sama seperti sebelumnya, maka Php akan langsung mengambil hasilnya dari memory, tanpa melalui proses kompilasi kembali. [caption id="attachment_24002" align="aligncenter" width="481" caption="Cara Kerja Php Accelerator"][/caption] Tahap mem-bypass proses kompilasi tersebutlah yang menjadikan waktu yang dibutuhkan Php untuk memproses skrip akan lebih singkat. dan lebih lagi, dengan meminimalisir proses di Php maka load server juga akan terkurangi, karena akan terkurangi pula penggunaan prosesor. Produk Php accelerator sudah banyak tersedia di internet. dari yang berlisensi GNU/GPL sampai yang bersifat propertiery. Sebut saja, Alternative Php Cache (APC), eAccelerator, ionCube Php Accelerator, Turck MMCache (discontinued), XCache, Nusphere PhpExpress, Zend Optimizer+ dan lainnya. Pengujian Sudah banyak website-sebsite yang melakukan benchmark produk-produk Php accelerator dan mereka memberikan hasil benchmark yang berbeda-beda pula, dalam lingkungan pengujian dan parameter-parameter yang berbeda pula. diantaranya;

Diartikel ini saya tidak akan melakukan pengujian dengan membandingkan tiap-tiap aplikasi, melainkan saya akan menjelaskan sisi fungsionalitas Php accelerator ini secara umum. Membandingkan performa website dan server itu sendiri antara menggunakan Php accelerator dengan yang tidak menggunakannya. Berikut lingkungan pengujian yang saya gunakan:

  • Hardware: Intel(R) Xeon(R) 2Cpu @ 3.00 GHz, Memory 2G,
  • Software: RHEL Kernel 2.6, PHP 5.1, Apache 2.2, Mysql-server 5.0
  • Aplikasi: OpenX v2.4

Dengan menggunakan aplikasi ab (Apache HTTP Server Benchmark) dengan parameter n*=1000, c*=10, berikut adalah hasilnya: *n (jumlah koneksi yang direkues), c (jumlah koneksi yang dilakukan pada saat bersamaan, konkurensi)

  • dengan tidak menggunakan Php accelerator
Server Software: Apache Server Hostname: localhost Server Port: 80 Document Path: /www/index.php Document Length: 0 bytes Concurrency Level: 10 Time taken for tests: 132.918951 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Non-2xx responses: 999 Total transferred: 228771 bytes HTML transferred: 0 bytes Requests per second: 7.52 [#/sec] (mean) Time per request: 1329.189 [ms] (mean) Time per request: 132.919 [ms] (mean, across all concurrent requests) Transfer rate: 1.68 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 168 1467.5 0 21023 Processing: 2 1160 4470.6 18 30018 Waiting: 0 1159 4470.7 17 30018 Total: 5 1328 4861.7 18 40605 Percentage of the requests served within a certain time (ms) 50% 18 66% 57 75% 117 80% 232 90% 1289 95% 10246 98% 21975 99% 29504 100% 40605 (longest request)  100%  36455 (longest request)
  • dengan menggunakan Php accelerator
Server Software: Apache Server Hostname: localhost Server Port: 80 Document Path: /www/index.php Document Length: 0 bytes Concurrency Level: 10 Time taken for tests: 2.818427 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Non-2xx responses: 1000 Total transferred: 229000 bytes HTML transferred: 0 bytes Requests per second: 354.81 [#/sec] (mean) Time per request: 28.184 [ms] (mean) Time per request: 2.818 [ms] (mean, across all concurrent requests) Transfer rate: 79.12 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 2.5 0 39 Processing: 2 26 26.3 21 335 Waiting: 0 26 26.2 21 335 Total: 4 27 26.4 21 336 Percentage of the requests served within a certain time (ms) 50% 21 66% 27 75% 30 80% 33 90% 42 95% 54 98% 77 99% 165 100% 336 (longest request)

Dari perbandingan table diatas, kita bisa menyimpulkan bahwa waktu eksekusi yang menggunakan Php accelerator akan lebih singkat ketimbang server yang tidak menggunakan Php accelerator. Dan apabila dilihat dari sisi load server itu sendiri (gambar dibawah), terlihat load server akan terkurangi hampir setengahnya pada saat Php accelerator diaktifkan (yang diarsir adalah kondisi server tanpa Php accelerator). [caption id="attachment_23384" align="aligncenter" width="499" caption="Server Load - Penggunaan CPU"][/caption] Kesimpulan Untuk website yang memiliki trafik yang tinggi dengan load yang tinggi pula, penggunaan Php Accelerator dapat membantu kecepatan loading halaman website dan juga mengurangi load dari server itu sendiri. mengenai manakah produk-produk Php Acclerator yang terbaik diantara banyaknya pilihan tersebut, saya sangat menyarankan agar kita sendirilah yang melakukan pengujian pada lingkungan kerja kita. Ada faktor-faktor yang sangat berpengaruh pada hasil akhir pengujian, seperti kondisi server, service-service yang berjalan, aplikasi yang digunakan dan tentunya beban server itu sendiri. Dan pada akhirnya, kita sendiri yang bisa mengatakan produk Php accelerator mana yang terbaik. atau paling tidak, yang paling cocok dengan kondisi lingkungan server kita.




BERI NILAI

Bagaimana reaksi Anda tentang artikel ini?

BERI KOMENTAR

Kirim

Konten Terkait


Video Pilihan

Terpopuler

Nilai Tertinggi

Feature Article

Terbaru

Headline