Daftar Isi
- Migrasi MPM Prefork ke MPM Event
- Pengaturan MPM Event
- |-Apache
- |-PHP (1 Pool Untuk 1 Virtual Host)
- |-PHP (Banyak Pool Untuk Banyak Virtual Host)
- |-Uji Isolasi
- |-Penyelesaian Permasalahan
- SFTP Only
- Mengaktifkan HTTP2
- Mengaktifkan opcache
- Pengujian
- Perlindungan Aplikasi
- Cheat Untuk Server Sendiri
- Windows mod_fcgid (XAMPP)
Mengaktifkan opcache
Buka php.ini di dalam folder FPM (misal: nano /etc/php/7.0/fpm/php.ini
), kemudian aktifkan pengaturan opcache dengan nilai:
opcache.enable=1
opcache.memory_consumption=128
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.max_accelerated_files=65407
#min PHP 7.0.14
opcache.validate_permission=1
opcache.validate_root=1
Sebagai pertimbangan, jalankan cd /var/www && find . -type f -print | grep php | wc -l
untuk melihat ada berapa berkas php yang ada di dalam server web. Nilai yang keluar dapat digunakan untuk memberi nilai opcache.max_accelerated_files
. Rekomendasi dapat dilihat pada https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.max-accelerated-files
Pengujian
|-Tahapan Pengujian
Apache memiliki fitur untuk melakukan pengujian dengan alat bernama Apache Benchmark (ab).
- Buka tiga buah terminal (command prompt) melalui ssh
- Jalankan monitoring penggunaan sumber daya di terminal pertama dengan perintah
htop
- Jalankan monitoring jumlah-php-fpm yang berjalan di terminal kedua dengan perintah
x=0; max=0; while true; do x=$(pgrep -c php-fpm); if [ "$x" -gt "$max" ]; then max=$x; fi; echo $max; sleep 1; done
- akhiri perintah di atas apabila sudah selesai dengan menekan tombol ctrl+c. Nilai terakhir adalah jumlah-php-fpm
- Jalankan pengujian di terminal ketiga dengan perintah
service php7.0-fpm restart && ab -n 2*<pm.max_children> -c 2*<pm.max_children> https://<alamat web anda>/
dimana:- <pm.max_children> adalah nilai yang ada di pengaturan php-fpm (pada pertama kali bernilai 75% NilaiMaksWorker)
- Jika pada server terdapat beberapa alamat web, maka <alamat web anda> adalah alamat dari web yang tidak menggunakan cache. Pastikan opcache tidak aktif.
|-Parameter Keberhasilan
Amati tampilan pada monitoring penggunaan sumber daya. Hentikan pengujian langsung apabila swap mulai digunakan (ctrl + c). Kemudian jalankan perintah swapoff -a && swapon -a
Parameter keberhasilan
- Swap tidak digunakan. Sisa RAM tinggal sedikit.
- Koneksi ssh tidak terputus
Catatan Penting: Apabila semua web yang ada di server menggunakan cache, maka disarankan sudah cukup menggunakan pm.max_children bernilai 75% NilaiMaksWorker karena sulit untuk menentukan apakah semua laman yang dibuka 100% menggunakan cache. Idealnya pengujian dilakukan pada web yang tidak menggunakan cache, sedangkan cache dapat diaktifkan setelah pengujian selesai.
Apabila tidak berhasil, maka turunkan <pm.max_children> di pengaturan pengaturan php-fpm, kemudian jalankan kembali pengujian.
Apabila RAM yang digunakan masih ada banyak sisa, maka naikkan <pm.max_children> di pengaturan pengaturan php-fpm, kemudian jalankan kembali pengujian.
6 replies on “Move On MPM Prefork ke MPM Event, Sebuah Catatan”
[…] Materi ini terkait dengan: https://pdsi.unisayogya.ac.id/move-on-mpm-prefork-ke-mpm-event-sebuah-catatan/ […]
[…] Inspirasi: https://pdsi.unisayogya.ac.id/move-on-mpm-prefork-ke-mpm-event-sebuah-catatan/3/#windows-mod-fcgid […]
[…] Inspirasi: https://pdsi.unisayogya.ac.id/mengaktifkan-ssl-https-pada-web-berbasis-apache-dan-open-ssl/2/#feederpddiktihttps://pdsi.unisayogya.ac.id/move-on-mpm-prefork-ke-mpm-event-sebuah-catatan/ […]
[…] https://pdsi.unisayogya.ac.id/move-on-mpm-prefork-ke-mpm-event-sebuah-catatan/ […]
[…] Cara mengaktifkan HTTP2 (HTTPS) pada Apache2: https://pdsi.unisayogya.ac.id/move-on-mpm-prefork-ke-mpm-event-sebuah-catatan/#mengaktifkan-http2 […]
[…] Move On MPM Prefork ke MPM Event, Sebuah Catatan […]