Jika menjalankan website pada VPS yang memorinya terbatas maka proses tuning/optimasi konfigurasi merupakan keharusan. Setiap konfigurasi memiliki dampak yang berbeda-beda tergantung berbagai macam faktor diantaranya hardware dan versi aplikasi yang dijalankan. Jadi tidak ada garansi satu konfigurasi bisa mengatasi semua masalah. Intinya tetap benchmark.
Konfigurasi ini digunakan ketika apache berjalan dibelakang proxy (nginx). Tugas apache hanya menjalankan dynamic content (PHP). Dan versi apache yang dijalankan adalah versi prefork bukan MPM worker.
Disable KeepAlive
Membiarkan client yang memiliki koneksi lambat untuk tetap membuka TPC connection merupakan keputusan buruk. Serahkan saja hal itu pada Nginx.
KeepAlive Off
Batasi Jumlah Fork
Secara matematika hal ini dapat dihitung. Jika VPS memiliki memiliki RAM sebesar 512MB. Maka jangan sampai forking yang dihasilkan apache mencapai lebih dari 50% RAM (256MB). Misal setiap client yang mengakses aplikasi memakan resource sebesar 4MB (Jumlah ini tergantung kompleksitas aplikasi). Maka jumlah klien yang dapat di layani dalam satu waktu adalah 256 / 4 = 64. Jumlah 64 concurent connection sebenarnya sudah termasuk banyak mengingat ini adalah diakses dalam satu waktu (concurrent). Lalu bagaimana dengan klient ke 65, 66, dst? Jika pada satu waktu website diakses oleh user sebanyak itu sudah seharusnya dipertimbangkan menggunakan Dedicated Server atau RAM bergiga-giga. Baca http://en.wikipedia.org/wiki/C10k_problem
# prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process servesStartServers 4 MinSpareServers 5 MaxSpareServers 10 # Asumsi 1 client menghabiskan 4MB maka dalam satu waktu 4x64 = 256MB. # 256MB mesin masih mampu menampung, sisanya untuk mail server, database, dan proxy MaxClients 64 MaxRequestsPerChild 0
Disable Module
Disable modul-modul yang tidak diperlukan. Itu akan memperkecil memory footprint dari Apache.
AllowOverride None
Mematikan AllowOverried menjadi None akan membuat Apache tidak mencari dan memproses .htacces pada setiap direktori.
Referensi:
0 comments:
Post a Comment