Categories
Tutorial, Manual, Tips dan Trik

Move On MPM Prefork ke MPM Event, Sebuah Catatan

Daftar Isi

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).

  1. Buka tiga buah terminal (command prompt) melalui ssh
  2. Jalankan monitoring penggunaan sumber daya di terminal pertama dengan perintah
    htop
  3. 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
  4. 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 7% 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

benchmark setting website
benchmark setting website

Parameter keberhasilan

  1. Swap tidak digunakan. Sisa RAM tinggal sedikit.
  2. Koneksi ssh tidak terputus

Catatan Penting: Apabila semua web yang ada di server menggunakan cache, maka disarankan sudah cukup menggunakan pm.max_children bernilai 7% 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.

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi