Log permintaan lambat PHP adalah tempat PHP mencatat informasi tentang permintaan yang membutuhkan waktu lebih dari lima detik untuk dieksekusi.
Memiliki kode PHP yang lambat tidak hanya menciptakan pengalaman buruk bagi pengunjung situs Anda, tapi juga mahal untuk Anda. Aplikasi dengan kode PHP cepat hanya membutuhkan satu proses PHP untuk menangani banyak permintaan setiap detik. Namun, karena setiap proses PHP hanya bisa menjalankan satu permintaan pada satu waktu, saat skrip PHP lambat, aplikasi memerlukan proses PHP tambahan untuk menangani permintaan. Setiap proses tambahan menggunakan lebih banyak memori, sehingga memiliki kode lambat berarti server Anda membutuhkan lebih banyak memori.
Jika server Anda memiliki penggunaan memori tinggi atau permintaan yang waktunya habis, Anda mungkin memiliki permintaan lambat yang dapat Anda debug dengan membaca log permintaan lambat PHP.
Apache Server |
Lokasi Log Permintaan Lambat PHP
Pada rencana Bisnis Server, Anda dapat melihat log permintaan lambat PHP dari tab Log aplikasi masing-masing di Server.
Jika Anda tidak mengikuti rencana Bisnis, Anda dapat memasukkan SSH atau SFTP ke server Anda untuk melihat log permintaan lambat PHP.
Setiap aplikasi memiliki log permintaan lambat PHP sendiri. File log terletak di bawah direktori home pengguna sistem aplikasi di:
/srv/users/apapun/log/APPNAME/APPNAME_phpX.Y.slow.log
Dimana phpX.Y adalah versi PHP yang digunakan aplikasi ini, misalnya php7.0 .
Memahami Log Permintaan Lambat PHP
Catatan log permintaan lambat PHP menyimpan jejak stack (juga dikenal sebagai tracebacks) dari setiap naskah pelaksana yang perlahan saat permintaan tersebut melewati lima detik dalam eksekusi.
Misalnya, entri di log permintaan lambat mungkin terlihat seperti ini:
Dua baris pertama memberi tahu Anda saat permintaan lambat dan naskah mana yang awalnya diminta. Dalam contoh di atas, dua baris pertama ini adalah:
[06-Jul-2017 12:20:34] [xxxxxxxxxx] pid 1852
script_filename = /srv/users/apapun/apps/example/public/index.php
Baris ketiga (baris segera di bawah dua baris pertama) adalah bagian atas tumpukan jejak. Ini memberitahu Anda saat ini menjalankan fungsi pada saat script melewati lima detik dalam eksekusi. Pada contoh di atas, bagian atas tumpukan jejak adalah:
[0x00007f7e475ba138] curl_exec () /srv/users/apapun/apps/example/public/wp-content/plugins/wp-piwik/classes/WP_Piwik/Request/Rest.php:44
Tiga bagian dari baris ini adalah pengenal unik untuk permintaan ( [0x00007f7e475ba138] ), nama fungsi pelaksana ( curl_exec () ), dan nama file dan nomor baris fungsi itu ( / srv / users / ... /Request/Rest.php:44 ).
Bagian atas tumpukan jejak umumnya penyebab kelambatan skrip Anda. Sisa dari garis di bawah yang memberitahu Anda setiap panggilan fungsi yang mengarah ke titik itu.
Perhatikan bahwa Anda kadang-kadang akan melihat +++ dump failed di bagian bawah jejak stack. Itu menunjukkan akhir jejak stack dan tidak menunjukkan adanya masalah.
Jika Anda melihat nama plugin WordPress di log permintaan yang lambat, Anda mungkin bisa mengatasi masalah permintaan aplikasi yang lambat dengan menonaktifkan plugin.
Penyebab umum Permintaan Lambat
Ada beberapa penyebab umum permintaan lambat.
Permintaan Lambat Karena curl_exec ()
Jika Anda melihat fungsi curl_exec () di log permintaan lambat PHP Anda, masalahnya bukan bug di cURL namun permintaan tersebut memerlukan waktu lama untuk menyelesaikannya.
Saat skrip Anda mengandalkan permintaan ke layanan eksternal dan situs web lainnya, situs Anda sendiri bisa menjadi lambat dan tidak dapat diandalkan karena masalah dengan situs web lainnya. Misalnya, jika situs web mereka lambat atau membatasi tarif permintaan Anda, aplikasi Anda sendiri akan menjadi sangat lambat. Masalah ini dapat diatasi dengan menonaktifkan plugin yang membuat permintaan eksternal dan tidak menulis kode PHP Anda sendiri untuk melakukan permintaan HTTP ke situs web atau layanan eksternal.
Permintaan Lambat Karena mysqli_query ()
Jika Anda melihat fungsi mysqli_query () di log permintaan lambat PHP Anda, masalahnya bukan bug di MySQL atau pengaturan MySQL, melainkan kode PHP Anda mengeksekusi query SQL yang lambat.
Anda dapat memiliki query SQL yang lambat karena, misalnya, kurangnya indeks yang tepat dalam tabel database atau kode PHP Anda yang tidak efisien menggunakan database. Solusinya dalam kasus ini adalah melacak kueri tertentu yang lamban dan memperbaikinya.
Kasus Permintaan Lambat yang Diterima
Ada satu kasus permintaan lambat yang dapat diterima dimana Anda dapat dengan mudah mengabaikan entri di log permintaan lambat PHP: permintaan lambat yang tidak dilakukan saat menjawab permintaan pengunjung situs web namun dijadwalkan untuk dilakukan di latar belakang. Contoh umum permintaan semacam itu adalah permintaan wp-cron.php atau permintaan yang mungkin Anda tentukan dengan menggunakan cron .