Sudah merasa websitenya mulai banyak yang mengakses dan terasa lambat? atau ada keinginan untuk mengeksplorasi teknik-teknik optimasi website, yang tentunya bertujuan untuk mendapatkan performa yang paling optimal. Untuk teknik-teknik yang akan dibahas ini, environment yang saya gunakan adalah Linux-Apache-Mysql-Php (LAMP). kolaborasi opensource yang menurut saya sudah terbukti handal untuk server-server dengan load yang tinggi. Untuk yang masih menggunakan windows, pertimbangkanlah untuk migrasi :) Ada beberapa tahap dan pendekatan dari sisi teknologi yang bisa dilakukan untuk mencapai tujuan ini. selain tuning konfigurasi untuk setiap aplikasi, kita bisa juga install aplikasi pihak ketiga ataupun menggunakan fitur-fitur tambahan yang telah tersedia dari aplikasi tersebut. *artikel ini hanya melingkupi deskripsi singkat dari setiap teknik. belum membahas secara teknis maupun komparasi kelebihan dan kekurangan antar produk.
Cache - PHP Accelerator / Opcode Cache: cara kerja accelerator ini adalah dengan mengoptimalkan proses kompilasi skrip. pertama-tama, hasil proses kompilasi suatu skrip akan disimpan pada memory, apabila ada skrip yang memanggil fungsi/perintah yang sama maka PHP dapat langsung memanggil hasil kompilasi tersebut dari memori. sehingga waktu yang digunakan untuk meng-compile skrip PHP akan lebih pendek dibandingkan apabila harus terus mengulangi proses kompilasi dari awal untuk skrip PHP yang sama. selain itu, teknik ini akan mengurangi load server secara keseluruhan. Manakah yang lebih baik? mungkin sudah banyak website-website yang membahas hasil benchmark antar PHP accelerator tersebut, dengan hasil benchmark yang berbeda-beda. tapi menurut saya, accelerator yang terbaik adalah hasil dari riset kita sendiri dengan platform dan framework yang kita gunakan. ada satu kasus xCache memberikan performa yang baik, tapi di kasus yang lain eAccelerator dapat menurunkan load server secara drastis.
- Memcached: umumnya, memcached berfungsi untuk me-cache hasil query database. cache tersebut akan disimpan dalam memory, sehingga memiliki waktu respon lebih cepat ketimbang file-file cache yang disimpan di disk. lebih lanjut, selain hasil query database, memcache dapat pula me-cache object atau juga isi dari tipe data primitif (array, string, integer).
Penggunaan memcached akan lebih terasa apabila kita me-query database dengan record berjumlah besar dan diquery berulang-ulang kali. apabila data telah tersimpan di memcached, aplikasi akan mendapatkan hasil query lebih cepat karena tidak perlu melakukan koneksi ke database terlebih dahulu. dan dampak langsungnya, akan mengurangi jumlah koneksi di mysql dan menjaga agar load di database server tidak tinggi.
File Statik / HTML: Web server lebih cepat merespon rekues file-file statik (jpeg, js, css) atau file html untuk content. dan apabila aplikasi webnya menggunakan framework (codeigniter, symfony, cakePhp), CMF (drupal) atau CMS (Joomla, PhpNuke), biasanya telah tersedia module / class / addon untuk teknik cache jenis ini. file-file cache yang dihasilkan aplikasi tersebut akan disimpan di disk, maka pastikan masih ada ruang di disk agar dapat menyimpan file-file cache tersebut.
Reverse Proxy: Mungkin lebih familiar proxy server yang diinstall di gateway atau server yang khusus me-cache halaman-halaman web yang sudah dipernah dikunjungi sebelumnya. istilah sebenarnya untuk hal itu adalah forward proxy. kebalikannya, reverse proxy melakukan cache langsung ke webserver, tidak dari sisi user. dan apabila ada user yang rekues halaman web, reverse proxy akan mencek direktori cache-nya terlebih dahulu dan apabila halaman yang direkuesnya tidak ada atau sudah expire, maka reverse proxy akan meneruskan rekues tersebut ke webserver dan kemudian mengirim hasil rekues kembali ke user.
- Contoh reverse proxy seperti Apache (mod_proxy), Nginx, Squid
KEMBALI KE ARTIKEL