Akselerator PHP secara substansial meningkatkan kinerja perangkat lunak berbasis PHP seperti WordPress. Menjalankan situs dengan lalu lintas tinggi yang didukung oleh aplikasi PHP hanya dimungkinkan karena akselerator PHP. Manfaat kinerjanya sangat bervariasi karena bergantung pada banyak faktor, termasuk pengoptimalan lain yang mungkin perlu Anda terapkan di situs Anda.
Pada artikel ini Anda akan mempelajari cara kerja akselerator PHP, mengapa Anda membutuhkannya, akselerator PHP mana yang terbaik untuk situs WordPress Anda, dan bagaimana Anda dapat menginstal dan mengonfigurasinya
Bersemangat?
Apa itu Akselerator PHP?
Akselerator PHP adalah ekstensi PHP yang meningkatkan kinerja aplikasi PHP. Ekstensi ini bekerja dengan menyimpan opcode (atau kode operasi) yang dihasilkan oleh file PHP. Untuk alasan ini, akselerator PHP juga disebut sebagai Opcode Caching.
Skrip PHP ditulis dalam sintaksis yang dapat dibaca manusia, tetapi server (atau unit pemrosesan pusat) tidak dapat memahami kode ini secara langsung. Itu perlu diubah menjadi format yang dapat dibaca oleh server secara langsung. Di sinilah Opcode masuk.
Opcode adalah bagian dari instruksi bahasa mesin yang mengarahkan server pada operasi apa yang harus dilakukan. Umumnya, instruksi ini cukup sederhana, seperti menambahkan dua angka atau menggabungkan dua atau lebih string. Bagian lain dari instruksi bahasa mesin termasuk operan, item yang dimanipulasi oleh opcode
Setiap kali pengguna meminta sesuatu di situs Anda, membuat opcode dari skrip PHP bisa sangat membebani server web Anda. Pertama, skrip perlu diberi token dan diuraikan untuk menghasilkan pohon sintaksis abstrak (AST), yang kemudian dikompilasi untuk membuat opcode.
Dalam beberapa kasus ekstrem, proses ini dapat membuat situs web Anda dirayapi oleh banyak pengguna. Jika jumlah permintaan besar, maka server kehabisan waktu untuk banyak pengguna, mengunci mereka dari mengakses situs web sama sekali
Anda dapat mengatasi masalah ini dengan menyimpan opcode sebagai cache (OpCache) setelah dibuat. Anda kemudian dapat menyajikannya langsung ke semua pengguna berikutnya tanpa melibatkan server. Inilah yang dilakukan akselerator PHP
Bukan hal yang aneh melihat situs WordPress dipercepat dua hingga tiga kali (atau lebih) setelah menginstal dan mengonfigurasi akselerator PHP
Akselerator PHP Terbaik
PHP diluncurkan pada tahun 1995, menjadikannya salah satu bahasa server-side tertua yang bertahan hingga saat ini. Sepanjang masa pakainya, ada banyak akselerator (caching opcode) yang diimplementasikan untuk itu, tetapi untuk pengaturan server yang berjalan di Linux, hanya ada satu solusi yang terpelihara dengan baik dan berguna. OPcache PHP
Untuk aplikasi PHP yang berjalan di Windows dan Windows Server, ada akselerator PHP alternatif yang disebut Ekstensi Cache Windows untuk PHP. Plus, ada banyak ekstensi untuk menambahkan fitur ke caching opcode bawaan PHP. Saya akan membahas semuanya di artikel ini
OPcache PHP (Zend OPcache)
Ekstensi PHP OPcache membuat kode PHP dieksekusi lebih cepat melalui caching opcode dan teknik pengoptimalan lainnya. Itu dibundel bersama dengan PHP 5. 5 dan versi yang lebih baru.
PHP OPcache juga disebut Zend OPcache karena merupakan implementasi dari ekstensi caching opcode Zend. Zend mempertahankan kepemilikan ekstensi ini hingga PHP 5. 5 dirilis. Oleh karena itu, bagi banyak pengguna Cache PHP Alternatif (APC) adalah solusi masuk untuk caching opcode di PHP.
Setelah Zend membuka sumber kode untuk caching opcode mereka dan merilisnya sebagai ekstensi yang disebut Zend OPcache, PHP 5. 5 menjadikannya bagian dari intinya dan telah menggunakannya sebagai solusi caching opcode default sejak saat itu.
PHP OPcache meningkatkan kinerja dengan menyimpan bytecode yang telah dikompilasi dalam memori bersama server ketika skrip PHP apa pun dijalankan untuk pertama kalinya. Ini menghilangkan membaca dan menyusun kode PHP untuk akses di masa mendatang. PHP OPcache juga menerapkan pola optimisasi bytecode tambahan untuk membuat eksekusi kode PHP lebih cepat
Cache Pengguna APC (APCu)
Cache PHP alternatif (APC) adalah akselerator PHP sumber terbuka dan gratis. Seperti Zend OPcache, ini terutama dirancang untuk meng-cache keluaran opcode PHP di memori bersama server. Karena selalu menggunakan FOSS, ini adalah solusi caching opcode paling populer untuk PHP hingga beberapa tahun yang lalu.
Setelah PHP OPcache menjadi bagian dari PHP 5. 5, perkembangan APC sangat melambat dan dianggap mati sekarang. Namun, beberapa fitur APC masih belum tersedia di PHP OPcache. Salah satunya adalah fungsi cache memori bersama userland. Ini juga disebut sebagai "caching data dalam memori. ”
Untuk mengatasi masalah ini, pengembang APC menghapus semua fitur caching opcode dan merilisnya sebagai ekstensi terpisah yang disebut APCu. Itu menambahkan dukungan untuk caching userland dari variabel PHP.
Anda juga dapat menginstal Modul Kompatibilitas Mundur APCu untuk menggunakan APCu sebagai pengganti pengganti APC dalam versi PHP modern
Anda akan belajar nanti cara mengaktifkan dan mengonfigurasi PHP OPcache dan APCu di server Anda
Ekstensi Cache Windows untuk PHP
Ekstensi Cache Windows untuk PHP adalah akselerator PHP yang mempercepat perangkat lunak PHP di Windows dan Windows Server. Itu tidak termasuk dukungan untuk caching opcode karena PHP sudah memasukkannya ke dalam intinya, tetapi itu termasuk 4 jenis cache yang unik.
- File Cache — PHP OPCache hanya meng-cache opcode yang dihasilkan oleh skrip PHP. Mesin PHP masih harus mengakses file skrip di server. Melakukan operasi file dapat menyebabkan overhead kinerja yang signifikan, jadi ekstensi ini menyertakan cache file yang dapat menyimpan skrip PHP di memori bersama
- Selesaikan Cache Jalur File — Sebagian besar skrip PHP menggunakan jalur file relatif untuk merujuk ke setiap file unik. Mesin PHP harus mengubahnya menjadi jalur file absolut untuk mengaksesnya. Jika ada banyak file yang direferensikan seperti ini, dapat menyebabkan masalah kinerja. Ekstensi ini menyimpan pemetaan semua jalur file relatif dan absolut sebelumnya sehingga mesin PHP tidak menghabiskan terlalu banyak waktu untuk menyelesaikan jalur file
- Cache Pengguna — Cache ini berfungsi mirip dengan cache memori bersama pengguna APCu. Skrip PHP dapat menggunakan API cache pengguna untuk menyimpan objek dan variabel dalam cache pengguna dan menggunakannya kembali pada permintaan selanjutnya. Tidak hanya meningkatkan kinerja skrip PHP, tetapi juga memungkinkan mesin PHP untuk berbagi data di beberapa proses PHP
- Session Handler — Ini menyimpan data sesi PHP di memori bersama server untuk menghindari melakukan operasi sistem file untuk membaca dan menulis data sesi. Akan sangat membantu jika sejumlah besar data dihasilkan dalam satu sesi PHP.
Sebagian besar instalasi WordPress menggunakan server Linux. Jika Anda salah satu dari selusin pengguna yang menggunakan Windows Server untuk menjalankan situs Anda, Anda dapat mempelajari lebih lanjut tentang menginstal dan mengonfigurasi WinCache di manual online-nya
Instalasi dan Konfigurasi PHP OPcache
Untuk PHP5. 5 ke atas, PHP mengkompilasi OPcache secara default sebagai ekstensi bersama selama instalasi PHP. Namun, jika Anda menentukan direktif –disable-all saat menginstal PHP, maka Anda perlu mengizinkan OPcache secara eksplisit dengan menentukan direktif –enable-opcache
Setelah Anda mengkompilasi ekstensi OPcache, Anda perlu mengaktifkannya dan mengonfigurasi variabelnya.
Anda harus menggunakan direktif zend_extension untuk mengaktifkan ekstensi OPcache. Untuk melakukannya, tambahkan semua kode berikut ke php.ini Anda. file ini
zend_extension=/full/path/to/opcache.soCatatan. Jika Anda memiliki penginstalan server non-standar dan tidak mengetahui jalur lengkapnya, maka Anda dapat menentukan direktif extension_dir untuk memberi tahu PHP agar mencari ekstensi yang dimuat secara dinamis di direktori tersebut. Juga, untuk instalasi berbasis Windows jalurnya adalah C. \path\ke\php_opcache. dll.
Setelah Anda mengaktifkan OPcache, Anda perlu menerapkan pengaturan yang tepat untuk mendapatkan kinerja maksimal darinya. Untuk sebagian besar kasus penggunaan, Anda dapat menambahkan pengaturan berikut ke php.ini Anda. file ini
opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1_Berikut rincian dari semua arahan dan apa yang mereka lakukan
- opcache. konsumsi_memori. Mengatur ukuran penyimpanan memori bersama yang tersedia untuk OPcache. Nilai ditentukan dalam megabita dan nilai standarnya untuk PHP 7. 0 ke atas adalah 128, tetapi Anda dapat mengaturnya lebih dari itu jika diperlukan.
Sebelum mengubah nilai ini, pastikan server Anda memiliki ruang memori bersama yang cukup untuk layanan lain seperti MySQL.
- opcache. interned_strings_buffer. Menentukan jumlah memori yang tersedia untuk menyimpan string yang diinternir. String interning adalah metode pengoptimalan kinerja di mana hanya satu salinan dari setiap string yang berbeda disimpan dalam memori, membuat tugas pemrosesan string hemat ruang dan waktu.
Nilai standarnya adalah 8 megabita. Anda dapat meningkatkan nilainya menjadi 16 jika Anda menjalankan banyak kode di situs Anda
- opcache. max_accelerated_files. Menentukan jumlah maksimum skrip PHP yang dapat disimpan dalam tabel hash OPcache. Nilai minimumnya adalah 200, tetapi Anda dapat mengaturnya hingga 1000000 di PHP 5. 5. 6 dan versi yang lebih baru. Anda harus mencatat bahwa nilai aktual yang digunakan oleh OPcache adalah dan bukan nilai itu sendiri
Untuk menemukan nilai sempurna untuk disetel di sini, Anda dapat menghitung jumlah file PHP di server Linux Anda dengan menjalankan perintah
perintah di terminal Anda. Tetapkan nilai arahan ini lebih besar dari jumlah file PHP di server Anda. Untuk sebagian besar instalasi WordPress, menyetelnya ke 10.000 akan ideal.
- opcache. validasi ulang_freq. Mengarahkan OPcache pada seberapa sering perlu memeriksa stempel waktu skrip untuk pembaruan apa pun. Nilainya ditetapkan dalam hitungan detik. Jika Anda menyetelnya ke 0, OPcache akan memeriksa pembaruan pada setiap permintaan, yang setara dengan tidak mengaktifkan opcode caching
Jika Anda tidak sering memperbarui situs, Anda dapat menyetel nilai ini ke 3600 detik. Untuk tujuan pengembangan, Anda dapat menonaktifkan berdasarkan fitur dengan menyetel direktif ke 0.
- opcache. fast_shutdown. Mengaktifkan urutan penonaktifan cepat untuk OPcache. Ini mempercepat waktu respons dan daur ulang pekerja PHP sehingga mereka siap menerima permintaan tambahan dengan segera. OPcache mencapai ini dengan menggunakan pengelola memori Zend Engine untuk membatalkan penetapan semua permintaan sekaligus
Sejak PHP 7. 2, varian dari direktif ini telah diintegrasikan ke dalam PHP inti dan akan digunakan secara otomatis jika memungkinkan
- opcache. aktifkan_cli. Mengaktifkan opcode caching untuk versi CLI dari PHP. Menyetel flag ke 1 akan mengaktifkan caching opcode di server Anda. Anda dapat menonaktifkan caching opcode untuk pengembangan dan pengujian dengan menyetel benderanya ke 0.
Untuk perincian lebih lanjut dan definisi arahan OPcache yang dapat Anda gunakan, lihat manual konfigurasi runtime PHP OPcache. Jika Anda beralih antara tahap pengembangan dan produksi, disarankan untuk membiasakan diri dengan semua arahan OPcache untuk memanfaatkan semuanya secara maksimal
Memeriksa Status OPcache PHP
Anda dapat memeriksa status OPcache di server Anda dengan menjalankan fungsi opcache_get_status().
Jika OPCache diaktifkan di server Anda, itu akan mengembalikan larik yang berisi semua properti caching opcode. Ini dia. Jika OPcache dinonaktifkan di server Anda, maka itu hanya akan mengembalikan false
Anda dapat menyambungkan parameter get_scripts opsional ke fungsi ini untuk mendapatkan informasi status khusus skrip. Sebagai alternatif, Anda juga dapat menggunakan fungsi opcache_get_configuration() untuk mendapatkan informasi konfigurasi OPcache, termasuk INI, daftar hitam, dan versi OPcache yang digunakan
Untuk daftar terperinci dari semua fungsi OPcache, Anda dapat merujuk ke manual fungsi PHP OPcache
Memantau dan Mengelola PHP OPcache
Ada banyak ekstensi PHP yang memungkinkan Anda mengelola fitur OPcache dengan mudah melalui antarmuka grafis. Dua ekstensi yang paling direkomendasikan untuk tujuan ini adalah OpCacheGUI dan opcache-gui (nama serupa, tetapi ekstensi berbeda)
Sementara OpCacheGUI adalah ekstensi yang tampak lebih baik dari keduanya, ekstensi opcache-gui diperbarui secara berkala untuk bekerja dengan versi PHP terbaru. Anda dapat menggunakan salah satunya untuk mengelola dan memantau OPcache PHP dengan mudah
Menginstal dan Mengkonfigurasi APCu
Anda dapat menginstal ekstensi APCu dari repositori PECL atau langsung dari PHP. Jalankan perintah berikut di terminal Anda untuk memulai
sudo apt-get install php7.3-apcuCatatan. Bergantung pada versi PHP Anda, Anda perlu menggunakan arahan yang benar. Ini dia PHP 7. 3, tetapi Anda mungkin menginstal versi PHP yang berbeda di server Anda.
Selama instalasi, Anda mungkin menemukan pertanyaan tentang cara mengkonfigurasi APCu di server Anda. Pilih default untuk semuanya.
Selanjutnya, periksa php. ini dan tambahkan baris di bawah ini jika belum ditambahkan oleh PHP.
extension=apcu.so_Ini akan mengaktifkan apc. jadi modul di server Anda setelah dimulai ulang. Untuk server yang berjalan di NGINX, Anda harus menggunakan perintah berikut
sudo service php7.3-fpm restart sudo service nginx reloadJika server Anda menggunakan Apache, maka Anda dapat menggunakan perintah berikut
Pengaturan APCu default sempurna untuk sebagian besar pengaturan, termasuk instalasi WordPress. Namun, jika Anda mempertimbangkan untuk menyempurnakannya, Anda dapat membaca semua opsi konfigurasi APCu yang tersedia.
Misalnya, apcu. direktif shm_size diatur ke 32M secara default. Jika Anda menemukan bahwa APCu kehabisan ruang yang dialokasikan pada memori bersama, Anda dapat mengalokasikan lebih banyak ruang ke APCu dengan menambahkan apcu. direktif shm_size dengan nilai khusus di php Anda. nilai ini
Catatan. APCu pada versi PHP 7+ tidak memiliki kompatibilitas mundur penuh dengan APC. Jika Anda memerlukannya, maka Anda juga perlu menginstal ekstensi APCu Backwards Compatibility (apc-bu) dari repositori PECL.
Untuk informasi yang lebih mendalam dan sangat teknis tentang APCu, Anda dapat melihat dokumentasi TECHNOTES
Bersihkan OpCache dengan WP Rocket
Saat Anda mengubah kode PHP atau menambahkan skrip baru, Anda mungkin perlu menghapus cache opcode di situs web Anda. Meskipun Anda dapat melakukan ini melalui terminal, WP Rocket memiliki opsi bawaan untuk melakukannya dengan mengklik tombol
Untuk melakukannya, buka Pengaturan > WP Rocket di dasbor admin WordPress Anda dan klik tombol PURGE OPCACHE
Jika Anda tidak memiliki opsi ini di panel pengaturan WP Rocket Anda, maka server Anda belum dikonfigurasi untuk menggunakan OPcache, atau host telah menonaktifkan pembersihan OPcache melalui API dengan menambahkan opcache. arahan restriksi_api di php. file ini. Anda dapat membaca lebih lanjut tentang fitur ini di dokumentasi WP Rocket
Ringkasan
Fungsionalitas OPcache default PHP memberikan peningkatan kinerja yang nyata untuk situs WordPress. Sering kali, peningkatan kecepatan sebanyak 3 kali lebih banyak. Jika Anda memiliki situs dengan lalu lintas sedang hingga tinggi, sangat disarankan untuk mengaktifkan opcode caching di server Anda. Plus, mereka bisa membuat perbedaan jika Anda ingin memperbaiki admin WordPress yang lambat
Adapun akselerator PHP terbaik, hanya ada satu yang bekerja dengan sempurna untuk opcode caching hari ini, dan itu adalah OPcache bawaan PHP. Anda juga dapat menginstal ekstensi APCu PHP untuk memanfaatkan fungsi caching memori bersama userland.
Saya harap artikel ini menjawab semua pertanyaan Anda tentang akselerator PHP. Mulailah dengan mempercepat situs Anda sekarang
Apakah Anda memiliki pertanyaan tentang caching opcode atau PHP OPcache?
Pembaruan terakhir pada 25 Februari 2022 Bagikan di
Tentang Salman Ravoof
Salman Ravoof adalah pengembang web, penulis, dan pencipta otodidak. Dia penggemar berat Perangkat Lunak Bebas dan Sumber Terbuka. Selain teknologi, menurutnya sains, filosofi, dan makanan menarik. Pelajari lebih lanjut tentang dia di situs webnya, dan terhubung dengan Salman di Twitter