Yii2 High Performance Environment Recommendation

znnwtfpraew85ib0fkt-cg

Menurut Alexander Makarov (Yii Dev Core), Yii2 best performance jika kita implementasikan pada :

“nginx + php-fpm from PHP 5.6.2 with OpCache enabled + MariaDB”

#) Mengapa harus nginx?
Nginx adalah webserver ringan karena resource yang dibutuhkan relatif kecil, tetapi bisa meng-handle semua proses yang berkaitan dengan web interface. Kelebihan utama nginx adalah kecepatan untuk akses file statis dari server lebih cepat dan stabil. (http://nginx.org/en/docs/). Kenapa gak Apache aja? by default Apache membutuhkan resource yang lebih gede dibanding nginx.. btw ini rekomendasi ini kata om Alexander Makarov lho.. jadi tanya aja sendiri.. FYI Detik.com (request +- 2 GB per seconds) pake Nginx juga.

#) Mengapa harus php-fpm?
Php-fpm adalah versi lightweight dari php yang dimana kita hanya mengunakan core php dan modul standar saja yang digunakan. Kelebihan lainnya php-fpm mempunyai proses tersendiri yang bisa kita monitor dan atur sedemikian rupa.(http://www.php-fpm.org)

#) Mengapa OpCache enabled?
OPcache (PHP Extension) digunakan untuk menningkatkan performance dari PHP dengan cara menyimpan precompiled script bytecode di shared memory, sehingga setiap ada request script PHP, maka PHP tidak perlu compile lagi, melainkan ngambil dari memory. Kerennya extension ini ada pada packet PHP 5.5.0.

Alternative yang tidak lebih baik dari OpCache adalah APC dan Xcache. Apa bedanya dengan Zend OpCache? sama aja :). Napa gak pake Memcache aja.. om ? haha beda fungsi Memcached digunakan untuk men-cache (menyimpan) data dari hasil query database, API, dan hasil render halaman. Kok gak pake Redis aja om.. katanya kan twitter pake redis juga..? haha redis alternatif dari memcache. Jadi jangan dibandingkan dengan OpCache.

Tambahan, menurut mbahnya web

https://developers.google.com/speed/docs/insights/rules

#) Enable Compression
Tujuannya adalah untuk memperkecil ukuran file web yang dikirimkan dari server ke browser sehingga bisa lebih cepat.
Gunakan ngx_http_gzip_module pada Nginx
Detailnya baca2 ini https://github.com/h5bp/server-configs-nginx

#) HTTP Caching
Ini berkaitan dengan cache pada browser, request halaman yang sama utk kedua kalinya harusnya lebih cepat karena cukup membaca dari cache di browser tanpa perlu mengambil dari server lagi, nah ini ada settingnya.
Baca disini: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#cache-control

#) Gunakan Ajax
Yii2 juga include Ajax + Pjax, gunakan sebaik mungkin, Kalo bisa load sebagian page kenapa harus seluruhnya..

#) Image Optimization
Jangan sampe image atau foto dari kamera DSLR resolusi tinggi atau bahkan jepretan HP (HP sekarang gile kameranya) kamu taruh mentah pada aplikasi..perlu di sotoshop dulu lah..

https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/image-optimization

#) Minify Resource (HTML, CSS, and JavaScript)
Ada tools untuk compress file2 web tersebut. Asumsinya adalah kecil itu lebih dan lebih cepat, gak percaya => messi..

#) Page Jangan Terlalu Besar
Usahakan dalam satu page jangan terlalu banyak kontent, solusinya bisa dibuat paging halaman..

Tapi dari semua itu ada sisi “non teknis” yang jauh lebih penting untuk diperhatikan yaitu bisnis proses dari aplikasi. Udah baik dan bener belum!!! :) Jika masih kacau.. percuma saja..

4 Comments
  1. Adit
  2. Hafid Mukhlasin
  3. blabla

Leave a Reply

Your email address will not be published. Required fields are marked *