Konfigurasi OPcache PHP: Panduan dan Parameter Terbaik

OPcache adalah ekstensi built-in pada PHP yang berfungsi meningkatkan performa eksekusi skrip melalui penyimpanan status byte kode skrip yang telah dikompilasi (bytecode) ke dalam memori bersama (shared memory). Dengan mengaktifkan OPcache, PHP tidak perlu membaca dan mengompilasi ulang skrip pada setiap permintaan (request) HTTP, sehingga menghemat penggunaan CPU dan drastis memangkas waktu muat halaman (Page Load Time).

Untuk mengonfigurasi OPcache, Anda perlu menyunting berkas pengaturan utama PHP yaitu php.ini. Pengaturan yang tepat akan memaksimalkan pemanfaatan RAM server tanpa risiko kehabisan memori (Out of Memory). Berikut adalah rincian parameter direktif konfigurasi OPcache yang wajib Anda ketahui dan sesuaikan dengan kapasitas server produksi.

Tabel Direktif Konfigurasi OPcache Utama

Direktif OPcache Nilai Default Rekomendasi Produksi Fungsi Utama
opcache.enable 1 1 Mengaktifkan atau menonaktifkan ekstensi OPcache.
opcache.memory_consumption 64 (atau 128) 256 - 512 (tergantung ukuran aplikasi) Jumlah memori penyimpanan bytecode dalam megabita (MB).
opcache.interned_strings_buffer 8 16 - 64 Jumlah memori untuk menyimpan string yang di-intern (dalam MB).
opcache.max_accelerated_files 10000 20000 - 65407 Jumlah maksimum kunci/skrip yang dapat ditampung dalam tabel hash.
opcache.revalidate_freq 2 0 Frekuensi pengecekan pembaruan berkas (dalam detik).
opcache.validate_timestamps 1 0 (Produksi) / 1 (Dev) Memeriksa apakah berkas skrip telah berubah sejak kompilasi terakhir.
opcache.save_comments 1 1 Menyimpan komentar PHPDoc di bytecode (diperlukan oleh beberapa framework).

Contoh Blok Konfigurasi php.ini untuk Produksi

Berikut adalah contoh blok konfigurasi optimal yang dapat Anda tempelkan di bagian bawah berkas php.ini server web (seperti Nginx dengan PHP-FPM atau Apache):

[opcache]
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=32
opcache.max_accelerated_files=32768
opcache.revalidate_freq=0
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=1

Langkah Penerapan dan Validasi Konfigurasi

  1. Buka berkas konfigurasi php.ini menggunakan teks editor dengan hak akses administratif (contoh: sudo nano /etc/php/8.2/fpm/php.ini).
  2. Tambahkan atau sesuaikan parameter direktif OPcache sesuai kebutuhan kapasitas RAM server Anda.
  3. Simpan berkas dan keluar dari editor.
  4. Muat ulang layanan PHP-FPM atau web server Anda agar perubahan diterapkan (contoh: sudo systemctl restart php8.2-fpm).
  5. Buat berkas PHP berisi fungsi <?php phpinfo(); ?> untuk memverifikasi apakah bagian OPcache telah aktif dan menampilkan parameter yang baru diatur.

Troubleshooting dan Tips Lapangan

Jika aplikasi web berbasis CMS besar seperti WordPress, Magento, atau Symfony mengalami galat atau perubahan kode tidak langsung tampil di sisi klien, perhatikan hal berikut:

    validate_timestamps bernilai 0: Ketika direktif ini diatur ke 0 untuk performa maksimal di lingkungan produksi, PHP tidak akan memeriksa perubahan berkas skrip. Jika Anda memperbarui kode sumber atau memasang plugin baru, Anda wajib membersihkan (flush) cache OPcache secara manual melalui skrip PHP dengan fungsi opcache_reset() atau dengan memulai ulang layanan PHP-FPM.

    Memory Consumption Habis: Jika fungsi opcache_get_status() menunjukkan bahwa memori terpakai (used_memory) mendekati batas maksimal dan oom_pending bernilai true, segera tingkatkan nilai opcache.memory_consumption serta pastikan opcache.max_accelerated_files mencakup total keseluruhan berkas PHP dalam proyek Anda.