Artikel ini menjelaskan apa itu pekerja PHP, bagaimana situs web Anda menggunakannya, dan berapa banyak yang Anda butuhkan untuk situs web WordPress Anda Show
CATATAN. Artikel ini berlaku untuk Stack yang Dioptimalkan WordPress yang tersedia di WordPress, VPS WordPress, dan Paket Hosting Khusus WordPress kami Apa itu Pekerja PHP?Pekerja PHP memproses kode PHP yang digunakan untuk mengembangkan situs web WordPress Anda. Saat mengunjungi situs web Anda, browser pengguna meminta untuk memuat situs web. Permintaan ini pertama kali dipenuhi oleh NGINX. NGINX menggunakan Cache Manager untuk menentukan cara menangani permintaan. Permintaan segera disajikan dari cache (jika tersedia) atau dikirim ke Apache untuk ditangani. Apache menugaskan proses PHP ke kumpulan pekerja PHP. Seorang pekerja PHP menjalankan skrip. Apache menerima respons dan memperbarui cache NGINX. Terakhir, NGINX menyajikan respons ke browser klien Pekerja PHP hanya menangani permintaan yang tidak di-cache. Jadi, situs web statis tidak membutuhkan pekerja PHP dalam jumlah besar. Dalam hal ini, sebagian besar konten tidak berubah sehingga caching sudah cukup. Sebaliknya, situs web dinamis atau yang memiliki banyak kerumitan mungkin membutuhkan lebih banyak pekerja PHP. Situs web yang kompleks dengan lebih banyak pekerja PHP mencegah permintaan mengantri Secara umum, lebih banyak pekerja PHP akan membantu memuat situs web Anda lebih cepat. Namun, tidak semua website membutuhkan banyak pekerja. Baca terus untuk mengetahui lebih lanjut tentang bagaimana Anda dapat menentukan berapa banyak pekerja PHP yang tepat untuk Anda Berapa Banyak Pekerja PHP yang Saya Butuhkan?Untuk memastikan stabilitas dan akses cepat ke situs web Anda, Anda perlu mengalokasikan pekerja PHP yang cukup. Sejumlah besar pekerja mencegah penundaan menunggu pekerja PHP lainnya selesai sebelum dapat menerima/memproses permintaan baru. Namun, sejumlah besar pekerja mungkin tidak diperlukan, katakanlah jika Anda menjalankan situs web statis dengan caching Contoh website statis
Contoh website dinamis
Jumlah pekerja PHP yang dibutuhkan sangat bergantung pada jumlah konten dinamis yang digunakan situs web Anda. Misalnya, situs forum terbatas pada kemampuan untuk meng-cache halaman. Ini karena konten berubah dan halaman yang di-cache akan melewatkan konten terbaru yang ditambahkan. Demikian pula, halaman keranjang belanja tidak pernah sama untuk prospek, sehingga tidak dapat di-cache juga Apa yang Terjadi jika Anda Tidak Memiliki Pekerja PHP yang Cukup?Menentukan jumlah pekerja PHP yang tepat penting untuk mencegah masalah kinerja. Saat Anda mencapai batas pekerja PHP, mereka akan mulai menumpuk dalam antrean dan akhirnya mulai mengeluarkan permintaan terlama. Hasil untuk pengguna bisa berupa kesalahan 504 yang ditakuti, 502 kesalahan gateway yang buruk, atau permintaan tidak lengkap lainnya. Sering kali akan ada permintaan lambat yang tidak di-cache yang menunda pemrosesan, tetapi masalah ini dapat diselesaikan dengan mudah dengan menambah jumlah pekerja PHP Memilih Paket Hosting WordPress yang TepatSitus web Anda adalah komponen penting dari bisnis Anda. Untuk kinerja optimal, itu harus dihosting di lingkungan yang aman dan cepat. Paket Hosting WordPress kami menawarkan berbagai konfigurasi yang sesuai dengan kebutuhan Anda (dan dengan harga yang sesuai dengan anggaran Anda). Tabel di bawah ini menunjukkan jumlah PHP Worker yang disertakan di setiap tier WordPress Hosting Saat menganalisis berapa banyak pekerja PHP yang Anda perlukan untuk situs web Anda, yang terbaik adalah mempertimbangkan jumlah kunjungan simultan selain jumlah konten dinamis. Jika Anda menjalankan situs web eCommerce, Anda dapat membandingkan pekerja PHP dengan jumlah jalur pembayaran yang ingin Anda buka agar pengunjung dapat melakukan pembelian Juga, pastikan untuk mempertimbangkan berapa banyak situs web yang akan Anda jalankan. Bergantung pada kerumitan situs web dan lalu lintas simultan, kami merekomendasikan antara 2 – 4 pekerja per situs web Sekarang setelah Anda memiliki pemahaman yang lebih baik tentang apa itu pekerja PHP, Anda dapat membuat penilaian yang lebih terpelajar tentang kebutuhan situs web WordPress Anda. Ingin mempelajari lebih lanjut tentang paket Hosting WordPress kami? Pekerja PHP adalah bagian penting dalam teka-teki hosting berkinerja tinggi. Panduan ini akan memandu Anda melalui dasar-dasar dan menawarkan beberapa pedoman dunia nyata untuk semua kasus penggunaan umum Daftar isipengantarBergantung pada pengalaman hosting Anda di masa lalu, Anda mungkin menemukan Pajak Pekerja PHP. Percakapan itu biasanya seperti ini (minus sarkasme)
Ini adalah pajak pekerja PHP Sebagian besar perusahaan hosting terkelola memiliki paket hosting berbasis kontainer yang kaku yang cocok untuk situs web gaya brosur rata-rata Anda, tetapi untuk situs web dinamis apa pun dengan banyak cache melewati lalu lintas, pembatasan pekerja PHP pada jenis paket ini dapat dengan cepat menjadi titik sakit yang mahal Saat Anda mengembangkan bisnis hosting Anda sendiri dan menghosting situs web yang lebih besar dan lebih kompleks, penting untuk memiliki pemahaman mendasar tentang apa itu pekerja PHP, dan bagaimana pengaruhnya terhadap kinerja situs web Anda Pada artikel ini kita akan melihat
Kami akan berfokus terutama pada Nginx dan di masa mendatang, kami akan memperbarui artikel ini dengan info tentang OpenLiteSpeed. Jika Anda menggunakan Apache, mungkin sudah waktunya untuk mempertimbangkan untuk tidak menggunakan Apache Apakah Anda Benar-Benar Perlu Peduli Tentang Pekerja PHP?Jika Anda hanya menghosting lalu lintas rendah, situs web gaya brosur WordPress maka secara teknis tidak ada… Namun, sebagai profesional WordPress yang serius, Anda harus benar-benar meluangkan waktu untuk mempelajari apa itu pekerja PHP. Ini tidak hanya akan membantu Anda menjadi pengembang yang lebih baik, tetapi juga akan membantu Anda menjadi lebih baik dalam menjual layanan paket hosting / perawatan WordPress Anda sendiri dan menunjukkan keahlian Anda Bagian dari apa yang membuat GridPane begitu kuat adalah bahwa ia memberi para profesional WordPress yang serius alat untuk membangun paket layanan / perawatan hosting yang mampu untuk perusahaan mereka sendiri. Memahami bagaimana pekerja PHP beroperasi akan membantu Anda. –
Jika Anda berencana untuk mengembangkan bisnis hosting yang serius atau bahkan menghosting situs web yang diperdagangkan sedang hingga berat yang memiliki konten dinamis, mengetahui cara mengelola pekerja PHP adalah keterampilan yang berharga. Mari selami Bagian 1. Dasar-dasar Pekerja PHPMari kita lihat apa itu, apa tanggung jawab mereka, dan bagaimana kaitannya dengan menghosting situs web WordPress Anda Beberapa Definisi Ukuran GigitanPekerja PHPPekerja PHP adalah proses komputasi latar belakang yang bertanggung jawab untuk memproses kode PHP Kolam PekerjaKumpulan pekerja adalah kumpulan pekerja PHP yang tersedia yang siap menerima permintaan dari server web (Nginx / OpenLiteSpeed) Utas PHPUtas adalah unit kecil instruksi yang dapat dijalankan oleh prosesor (CPU server kami) Apa itu pekerja PHP?Pekerja PHP adalah prosesor PHP yang menangani permintaan yang dialokasikan oleh server web (Nginx / OpenLitespeed) saat permintaan ini memerlukan kode PHP untuk diproses. Setelah permintaan selesai, pekerja PHP kemudian mengembalikan informasi tersebut kembali ke server web Mereka bertanggung jawab untuk menghasilkan halaman HTML yang Anda dan pengunjung Anda lihat ketika Anda mengunjungi situs web Anda, serta memproses tugas latar belakang seperti WP-Cron atau pekerjaan terkait plugin keamanan. Merupakan tugas pekerja PHP untuk memproses setiap permintaan yang "BYPASS" atau "MISS" cache situs web Anda (pelajari lebih lanjut tentang caching di sini). Jika permintaan tidak HIT cache, pekerja PHP akan mengambil dan memproses permintaan, dan kemudian mengembalikannya ke pengunjung dalam bentuk halaman web Kemampuan mereka untuk berfungsi tidak terbatas – itu tergantung pada berbagai faktor termasuk permintaan (basis kode, kueri basis data), dan sumber daya server yang tersedia untuk mereka yang akan menentukan berapa banyak kunjungan/permintaan yang tidak di-cache yang dapat ditangani situs Anda pada satu waktu Browser < > Nginx < > PHP < > MySQL PHP dan Hosting WebDalam lingkungan server web, PHP adalah single-threaded, yang berarti bahwa proses PHP hanya dapat berjalan pada satu inti CPU, dan tidak dapat menjangkau banyak inti. Anda dapat menjalankan beberapa proses PHP, satu di setiap inti, tetapi satu proses itu sendiri tidak akan pernah dapat menggunakan lebih dari satu inti Misalnya, jika Anda memiliki 3 permintaan dan satu inti CPU, pekerja PHP membentuk antrean dan permintaan tersebut diproses satu per satu. Setelah seorang pekerja PHP mulai bekerja, ia hanya berfokus pada tugas itu selama durasi permintaan itu. Jika salah satu dari 3 permintaan tersebut membutuhkan waktu lama untuk diselesaikan, ini dapat mengakibatkan waktu muat yang lambat atau 504 kesalahan pada saat itu Jika Anda pernah menerima kesalahan 504 yang tampaknya acak yang dengan cepat hilang setelah menekan penyegaran, ini mungkin penyebabnya Jika Anda memiliki 3 permintaan dan 4 inti CPU, semuanya dapat berjalan pada waktu yang sama, 1 per inti, dan Anda masih memiliki satu inti CPU yang tersedia Catatan tambahan. Meskipun secara teknis PHP dapat diperluas untuk menawarkan multi-threading melalui ekstensi pThreads, ekstensi pThread tidak dapat digunakan di lingkungan server web. Oleh karena itu, threading dalam PHP dibatasi hanya untuk aplikasi berbasis CLI Pekerja PHP dan WordPressWordPress sendiri adalah aplikasi single-threaded. Ini berarti bahwa satu permintaan WordPress (pemuatan halaman, permintaan pencarian, pemfilteran produk, dll), betapapun rumitnya, ditangani oleh satu pekerja PHP. Beberapa pekerja PHP tidak terlibat dalam aspek yang berbeda dari satu permintaan WordPress Satu permintaan, satu pekerja PHP, satu inti CPU Berikut adalah contoh rata-rata permintaan sederhana Anda
Bagian 2. Sumber Daya Server dan Keterbatasan Pekerja PHPSebelum Anda dapat mulai menyempurnakan pekerja PHP Anda untuk kinerja yang optimal, Anda harus terlebih dahulu memahami bagaimana sumber daya server Anda yang tersedia memengaruhi jumlah pekerja PHP yang dapat Anda gunakan Lebih banyak pekerja PHP tidak berarti kinerja yang lebih baik. Faktanya, terlalu banyak yang benar-benar dapat menghabiskan semua sumber daya Anda dan menguras server Anda. Sebaliknya, terlalu sedikit pekerja dapat menyebabkan kesalahan 502 di situs Anda meskipun server Anda memiliki banyak CPU dan RAM yang tersedia dan dapat menangani beban kerja yang lebih besar Jumlah inti CPU dan kualitas kode situs web Anda (kode yang ditulis dengan buruk membutuhkan lebih banyak pekerjaan untuk diproses) keduanya merupakan faktor yang lebih penting daripada jumlah pekerja PHP. Sasaran Anda adalah mencapai keseimbangan yang tepat sehingga server Anda memiliki jumlah pekerja yang “optimal” untuk melakukan yang terbaik Masalah dengan terlalu banyak pekerja PHPKarena setiap pekerja PHP adalah proses komputasinya sendiri, bahkan ketika menganggur membutuhkan beberapa sumber daya untuk ada sebagai suatu proses. Semakin banyak pekerja PHP yang ada, semakin banyak sumber daya yang diperlukan untuk mempertahankannya – ini dapat berdampak signifikan pada RAM, jadi ini sangat penting pada server yang lebih kecil di mana OS, dan layanan mikro menggunakan persentase RAM yang tersedia lebih tinggi. VPS RAM 1GB misalnya, tidak akan memiliki banyak sisa memori yang dapat digunakan setelah semua hal lain yang mendasar untuk operasi server Anda telah mengambil bagiannya Selain itu, jika Anda memiliki terlalu banyak pekerja PHP untuk CPU yang tersedia, saat server Anda mulai mencapai kapasitas CPU 100%, memiliki pekerja PHP ekstra tersebut akan menyebabkan masalah tambahan. Sistem Anda akan menjadi semakin tidak efektif, menghasilkan jumlah proses yang berlebihan, yang pada gilirannya dapat menyebabkan setiap proses memakan waktu lebih lama dan lebih lama untuk diselesaikan. Sangat mungkin bahwa pada saat itu pengunjung Anda akan mulai mengalami kesalahan 503, dan skenario kasus yang lebih buruk sistem Anda akan gagal Kemacetan di sini adalah inti CPU yang terlalu sedikit Masalah dengan terlalu sedikit pekerja PHPSeperti disebutkan sebelumnya, terlalu sedikit pekerja PHP berarti server Anda memiliki sumber daya untuk melakukan lebih banyak pekerjaan, tetapi Anda tidak memiliki pekerja untuk menyelesaikan pekerjaan – tidak cukup pekerja PHP yang menjadi penghambat. Ini pada dasarnya sabotase diri. Jika situs Anda berkinerja buruk tetapi CPU Anda tidak mendekati kapasitas 100%, Anda harus meningkatkan jumlah pekerja PHP Menemukan sweet spotIni bisa dianggap lebih seni daripada sains Saya berharap kami bisa memberi Anda angka ajaib seperti 4 pekerja per inti CPU (yang sebenarnya merupakan titik awal yang baik dan yang kami rekomendasikan), tetapi tidak selalu sesederhana itu. Kisaran ideal untuk situs web Anda dapat bervariasi secara signifikan, dan dapat berkisar antara 2 pekerja per inti hingga 8 pekerja per inti tergantung pada jumlah pemrosesan PHP yang diperlukan dan kualitas CPU. Ini sangat bergantung pada basis kode situs web Anda dan jenis tugas yang sedang dilakukan. Secara umum, semakin kompleks tugas, dan/atau semakin rendah kualitas basis kode, semakin sedikit pekerja PHP yang harus ditetapkan per inti Menemukan nomor yang tepat untuk Anda mungkin memerlukan beberapa eksperimen, tetapi yang ingin Anda capai adalah kapasitas CPU berkisar antara 80-100% saat dimuat Pekerja PHP dan Kinerja CPUKarena kenyataan bahwa satu permintaan ditangani oleh satu pekerja PHP pada satu inti CPU, memilih kinerja single-thread sebaik mungkin adalah ide yang bagus untuk menghosting situs web yang lebih dinamis (artinya Anda harus menggunakan server dengan kinerja lebih tinggi . Semakin dinamis sebuah situs web, semakin banyak PHP diperlukan untuk terlibat dalam menangani permintaan, dan semakin baik kinerja CPU Anda, semakin cepat proses PHP Anda dapat… diproses Jika Anda seorang desainer, Anda mungkin pernah mengalami hal serupa saat mencoba menggunakan sesuatu seperti Photoshop di laptop lama Anda vs Photoshop di pemutakhiran baru Anda yang mengkilap. Hal-hal diselesaikan dengan lebih cepat karena CPU Anda yang lebih baru dapat memproses lebih cepat. ATAU mungkin Anda bahkan memperhatikan perbedaan kecepatan hanya dengan mem-boot laptop Anda (atau desktop atau apa pun) Performa CPU harus menjadi pertimbangan saat menyusun proposal hosting Anda. Untuk situs WordPress rata-rata Anda, itu tidak akan membuat banyak perbedaan. Bahkan Lightsail dapat digunakan untuk situs dengan lalu lintas rendah. Namun, untuk situs dinamis Anda yang lebih kompleks, Anda mungkin jauh lebih baik dengan Vultr High Frequency, C2 Google Cloud Platforms yang dioptimalkan untuk komputasi, atau server game dari OVH Inilah salah satu alasan Vultr High Frequency menjadi begitu populer dengan begitu cepat. Performa CPU mereka, dolar demi dolar, pound demi pound, yang terbaik di pasar saat ini di tahun 2020. Data dari pengujian UpCloud menunjukkan kinerjanya juga sangat baik dan layak untuk Anda pertimbangkan. Mereka juga memiliki rekam jejak yang bagus untuk waktu aktif, yang mungkin menjadi faktor yang lebih penting dalam beberapa kasus Untuk situs web dinamis seperti e-niaga, di mana Anda memiliki lalu lintas yang tidak di-cache setelah pelanggan mulai menambahkan item ke keranjang belanja mereka, Anda akan melihat kinerja yang lebih baik dengan CPU yang lebih kuat, terutama saat memuat Batasan Hosting WordPress TerkelolaBagian dari masalah dengan sebagian besar host WordPress yang dikelola adalah metrik penagihan mereka. Keterbatasan pekerja PHP khususnya merupakan masalah serius saat bekerja dengan host ini karena cara pengoperasian ini dibangun langsung ke dalam infrastruktur mereka. Paket Anda mencakup satu set batasan pekerja PHP per situs. Jika Anda perlu men-tweak pekerja PHP Anda untuk kinerja yang lebih baik, ya… Anda tidak bisa. Anda telah mencapai batas Anda, dan bahkan jika tim pendukung mereka adalah yang terbaik, tangan mereka terikat dan mereka benar-benar tidak punya pilihan selain menjual paket yang lebih tinggi kepada Anda. Tidak ada solusi lain, jadi Anda dihukum karena memiliki situs yang dioptimalkan dengan baik Itu sial. Dengan serius Itu juga mengapa banyak orang yang menggunakan host ini berakhir dengan paket yang jauh lebih mahal daripada yang seharusnya mereka perlukan. Banyak dari klien kami sendiri menjadi klien kami karena alasan ini, dan ini adalah pengalaman yang sama-sama dimiliki oleh banyak agensi Keterbatasan pekerja PHP dan metrik omong kosong seperti tampilan halaman hanyalah dua dari banyak alasan agensi WordPress pindah ke GridPane, di mana alih-alih dikenai pajak secara sewenang-wenang atas kesuksesan mereka, mereka justru dapat memperoleh keuntungan besar-besaran dari skala ekonomi tak terbatas yang menyertai pengelolaan mereka. Bagian 3. Kinerja WordPress dan Pekerja PHPDi bagian ini, kita akan melihat faktor-faktor yang memengaruhi kinerja di tingkat masing-masing situs web. Kualitas kode situs web Anda, jumlah konten dinamis yang Anda layani, dan kerumitan tugas yang perlu diproses PHP, semuanya memengaruhi keseimbangan pekerja CPU-PHP Setiap situs web memiliki tema, plugin, dan fungsi yang berbeda, dan ini semua memengaruhi kinerja dan jumlah pekerjaan yang harus dilakukan pekerja PHP saat menyajikan konten ke pengunjung situs web Anda Pentingnya CachingCaching adalah kunci untuk situs web WordPress berkinerja tinggi. Jika halaman tidak menyajikan konten dinamis khusus pengunjung, maka halaman tersebut harus di-cache, dan ini paling baik ditangani di tingkat server. Server web seperti Nginx dan OpenLiteSpeed menawarkan kinerja luar biasa saat melayani dari cache, dan keduanya mampu menangani sejumlah besar lalu lintas bersamaan saat pemrosesan PHP dijaga seminimal mungkin. Saat sebuah halaman di-cache, apa yang disimpannya adalah HTML, CSS, dan JS yang telah disiapkan sebelumnya yang siap digunakan browser untuk segera digunakan. Nginx / OpenLiteSpeed tidak perlu mengirim apa pun ke PHP untuk diproses untuk "membuat" halaman karena mereka hanya menyimpan salinan hasil dari pertama kali dibuat. Pada titik ini, ini seperti melayani situs web yang benar-benar statis Menghilangkan kebutuhan PHP (atau MySQL) untuk melakukan pekerjaan apa pun, berarti server harus melakukan lebih sedikit untuk memberikan hasil yang sama Ini dia pengunjung yang budiman, inilah yang kami buat sebelumnya Yang membawa kita ke… Situs Web WordPress DinamisPada bagian pertama kita berbicara tentang permintaan yang "BYPASS" atau "MISS" cache situs web Anda dan bagaimana pekerja PHP perlu dilibatkan untuk melayani permintaan ini Situs web WordPress dinamis adalah situs di mana cache secara teratur di-BYPASS, artinya Nginx / OpenLiteSpeed tidak melayani set HTML/CSS/JS yang telah disiapkan sebelumnya. Misalnya, jika Anda menambahkan item ke keranjang belanja, ini adalah data dinamis yang sengaja tidak ingin kami simpan di cache, dan agar item ini tetap berada di keranjang belanja hanya untuk satu pengunjung individu ini, ini memerlukan konten BYPASSing cache yang dipersonalisasi Jenis situs web dinamis yang paling umum adalah. –
GridPane sangat populer dengan situs web WooCommerce dan LMS yang besar karena opsi konfigurasi pekerja PHP yang tersedia, dan kemampuan untuk memilih penyedia IaaS dengan CPU berkinerja tinggi dengan biaya dasarnya – kami tidak menambahkan markup apa pun atau menghasilkan uang apa pun dari Anda Opsi ini memungkinkan fleksibilitas dan kinerja maksimum, tanpa batasan atau biaya besar apa pun yang terkait dengan paket tingkat tinggi di sebagian besar penyedia hosting terkelola Situs web dinamis akan membutuhkan lebih banyak pekerja PHP dan sumber daya server untuk pekerja PHP tersebut daripada situs web gaya brosur biasa untuk jumlah lalu lintas yang sama. Melayani pengunjung yang masuk atau konten khusus pengunjung memerlukan PHP untuk setiap permintaan, sehingga Anda perlu menilai dan merencanakan jenis situs web ini secara berbeda dari situs web rata-rata Kualitas Basis Kode AndaKualitas basis kode situs web Anda akan memainkan faktor penting dalam seberapa banyak pekerjaan yang harus dilakukan oleh pekerja PHP untuk menyelesaikan setiap permintaan individual. Kode yang lebih baik/berkualitas tinggi = pemrosesan lebih cepat Ini menjadi lebih penting ketika permintaan itu sendiri rumit. Misalnya, memfilter katalog WooCommerce yang besar memerlukan beberapa pemrosesan signifikan dari PHP dan database, dan jika basis kode Anda buruk sejak awal, ini akan membutuhkan lebih banyak sumber daya server saat Anda menyesuaikan skala untuk mengakomodasinya Di sisi lain, jika Anda memiliki basis kode yang ramping dan super bersih, jumlah pekerjaan yang diperlukan untuk memproses jenis permintaan yang sama jauh lebih sedikit, yang berarti lebih banyak tugas dapat diselesaikan dalam waktu yang lebih cepat, oleh beberapa pekerja Jika memungkinkan, selalu yang terbaik untuk memulai dengan tema modular yang ringan, lalu lakukan yang terbaik untuk memeriksa plugin yang Anda gunakan dan pilih opsi yang paling ringan untuk apa yang ingin Anda capai. Selain itu, Anda juga dapat menggunakan plugin seperti Asset CleanUp, Autoptimize, Fast Velocity Minify, Flying Scripts, atau Perfmatters (khusus premium) untuk mengurangi permintaan lebih jauh Jika Anda memiliki situs yang menguntungkan tetapi berkinerja buruk, mendapatkan bantuan ahli untuk membantu Anda mempercepat situs Anda bisa menjadi investasi yang bagus Kompleksitas TugasPencarian database yang kompleks seperti memfilter katalog pakaian berdasarkan kategori yang berbeda (misalnya, mantel musim dingin pria yang berwarna biru dan di bawah $60) adalah tugas yang jauh lebih kompleks, dan dengan demikian sumber daya mahal, daripada sekadar memuat halaman yang belum di-cache Jika situs web Anda mengalami banyak tugas rumit, ini akan membatasi kinerja Anda. Memastikan basis kode Anda seringan mungkin akan membantu mengurangi beban Versi PHP – Anda harus menggunakan PHP 7. 4 atau lebih tinggiJika Anda ingin meningkatkan kinerja situs web Anda, maka Anda harus menggunakan setidaknya PHP 7. 4 untuk semua situs web Anda. 7. 4 adalah versi tercepat yang tersedia pada saat penulisan, tetapi 7. 3 memiliki lebih banyak kompatibilitas keseluruhan dengan beberapa plugin. Gunakan mana yang paling cocok untuk Anda Jika Anda tidak menggunakan setidaknya PHP 7. 4, saatnya untuk memutakhirkan – seperti ASAP (semua versi sebelumnya telah mencapai akhir masa pakainya dan tidak akan pernah menerima pembaruan/tambalan keamanan lainnya). Jika host web Anda tidak mendukung 7. 4 atau lebih tinggi, itu adalah indikator yang cukup kuat bahwa Anda harus menemukan tuan rumah baru karena mereka tidak menganggap serius bisnis mereka atau bisnis Anda Bagaimana dengan PHP8?Pada saat penulisan, PHP 8 masih berupa wildcard. Adopsi di antara sebagian besar plugin populer telah cukup banyak diluncurkan, tetapi masih banyak yang belum dan ini dapat menyebabkan semua jenis perilaku aneh atau bahkan merusak situs Anda jika itu masalahnya. Jika Anda tertarik untuk belajar tentang PHP 8 dan WordPress, saya sangat menyarankan Anda untuk bergabung dengan Grup Facebook Hosting WordPress yang besar dan menonton video ini Kami akan memperbarui posting ini di masa mendatang Bagian 4. Nginx, OpenLiteSpeed, dan Berbagai Jenis PekerjaServer web yang berbeda memiliki tipe pekerja yang berbeda, dan ini berarti opsi untuk menyetelnya berbeda. Di bawah ini kita akan melihat jenis pekerja yang berbeda di Nginx dan OpenLiteSpeed, dan terminologi yang perlu Anda pahami sebelum Anda dapat mulai membuat perubahan pada keduanya Kami tidak akan melihat Apache karena panduan ini untuk WordPress dan ini tahun 2021 Pekerja PHP dan Nginx. Jenis Manajer Proses FastCGI (FPM).Di sebagian besar server web Nginx, pekerja PHP ditangani oleh Manajer Proses FastCGI – yang sering Anda lihat disingkat sebagai PHP-FPM. Menggunakan PHP-FPM Anda memiliki tiga opsi untuk. sesuai permintaan, statis, & dinamis
Kami akan menggali lebih dalam ke masing-masing opsi ini dan kasus penggunaannya di bagian 5 Pengaturan Pekerja NginxDi bawah ini merinci berbagai pengaturan yang tersedia untuk mengonfigurasi pekerja PHP Anda. "Anak-anak" mengacu pada pekerja PHP. Ini adalah pengaturan yang akan Anda sesuaikan saat menyetel pekerja Anda untuk kinerja yang optimal. Beberapa pengaturan ini khusus untuk mode Dinamis dan Ondemand pm. max_children. Jumlah maksimum anak (pekerja) yang dapat hidup pada waktu yang sama pm. start_servers. Jumlah anak yang dibuat saat startup pm. min_spare_servers. Jumlah minimum anak dalam status 'idle' (menunggu untuk diproses). Jika jumlah proses 'idle' kurang dari angka ini maka beberapa anak akan dibuat pm. max_spare_servers. Jumlah maksimum anak dalam status 'idle' (menunggu untuk diproses). Jika jumlah proses 'idle' lebih besar dari angka ini maka beberapa anak akan dibunuh pm. process_idle_timeout. Jumlah detik setelah proses menganggur akan dimatikan pm. max_requests. Jumlah permintaan yang harus dijalankan setiap proses anak sebelum respawning Sumber. https. // www. php. net/manual/en/instal. fpm. konfigurasi. php Pekerja PHP dan OpenLiteSpeed. PHP LSAPILiteSpeed dan OpenLiteSpeed menjalankan PHP LiteSpeed SAPI, yang merupakan versi khusus PHP khusus untuk Server Web LiteSpeed Sama seperti Nginx, OpenLiteSpeed menawarkan sejumlah mode proses PHP yang berbeda melalui PHP LSAPI. Mode ProcessGroup, mode Daemon, dan mode Pekerja
Sumber. https. // www. litespeedtech. com/support/wiki/doku. php/litespeed_wiki. php. mode proses Dokumentasi LiteSpeed di atas layak dibaca untuk pemahaman yang lebih dalam tentang cara kerja Mode Proses PHP, serta pro dan kontranya Mode GridPane dan DaemonMode daemon tidak mengizinkan penggunaan php per-pengguna khusus. ini, sehingga setiap situs web tidak dapat dikustomisasi. Ini adalah pilihan umum untuk lingkungan hosting bersama, tetapi karena keterbatasan penyesuaiannya, opsi ini tidak tersedia di GridPane OpenLiteSpeed dan "Aplikasi Eksternal"Dokumentasi OLS/LiteSpeed tidak terlalu intuitif bagi siapa saja yang belum memiliki banyak pengalaman LiteSpeed. Sepanjang dokumentasinya, Anda akan melihatnya mengacu pada "aplikasi eksternal". LiteSpeed web server (LSWS) mendukung tujuh jenis aplikasi eksternal. Ini adalah. –
Panduan ini khusus untuk WordPress. Di LiteSpeed dan OLS, WordPress menggunakan jenis aplikasi eksternal “Aplikasi LiteSpeed SAPI” agar PHP berkomunikasi dengan server web Dengan pengecualian "server Web", yang digunakan GridPane untuk memproksi Monit, tidak ada aplikasi lain yang diperlukan untuk menghosting situs web WordPress Ketika Anda melihat dokumentasi OLS mengacu pada "aplikasi eksternal" dalam konteks pekerja PHP, mereka mengacu pada aplikasi LiteSpeed SAPI, dan untuk lebih spesifik, PHP LSAPI (juga disebut sebagai LSPHP) Pelajari lebih lanjut di sini. https. // www. litespeedtech. com/open-source/litespeed-sapi/ Jenis Pekerja OpenLiteSpeedSebelum kita melihat pengaturan individual, penjelasan ini langsung dari dokumen LiteSpeed memecah perbedaan antara tipe pekerja Worker dan ProcessGroup karena terkait dengan pengaturan LSAPI Children dan LSAPI App Instances “Menyetel LSAPI_CHILDREN ke 1 menempatkan LSWS dalam mode Pekerja. Dalam mode Worker, LiteSpeed Web Server secara dinamis memunculkan proses PHP baru untuk memenuhi permintaan dan mematikan proses yang sudah selesai Terjemahan. Dalam mode Pekerja, server akan membuat proses PHP sesuai kebutuhan, dan kemudian mematikannya saat tidak lagi diperlukan. Mirip dengan Permintaan PHP-FPM Menyetel LSAPI_CHILDREN ke angka yang lebih besar dari 1 menempatkan LSWS dalam mode ProcessGroup. Dalam mode ProcessGroup, server web akan memulai satu proses induk PHP yang terus berjalan. Proses ini kemudian akan melakukan fork proses PHP anak (berlawanan dengan pemijahan proses baru) untuk memenuhi permintaan. Mode ProcessGroup umumnya lebih disukai karena semua proses PHP kemudian dapat berbagi satu blok memori untuk caching opcode. Dalam mode ProcessGroup, Instances harus disetel ke 1, sedangkan LSAPI_CHILDREN harus disetel agar sesuai dengan nilai Max Connections. ” Terjemahan. Dalam mode ProcessGroup selalu ada satu proses induk PHP yang berjalan, dan untuk mengambil lebih banyak tugas PHP, itu akan memotong proses anak, yang jauh lebih efisien daripada menghasilkan proses baru Jika Anda klien GridPane, Anda akan melihat bahwa saat Anda mengubah LSAPI Children dalam mode ProcessGroup, Max Connections akan secara otomatis cocok. Dalam mode Worker, instance aplikasi LSAPI akan secara otomatis cocok dengan Max Connections Anak PHP LSAPI. Jumlah maksimum proses anak yang dapat ada pada satu waktu (satu proses PHP induk selalu ada) Instance Aplikasi PHP LSAPI. Jumlah proses PHP yang dapat ada pada satu waktu Koneksi Maks Aplikasi PHP LSAPI. Ini menentukan jumlah maksimum koneksi bersamaan yang dapat dibuat antara server dan PHP LSAPI, dan berapa banyak permintaan yang dapat diproses secara bersamaan Batas Waktu Permintaan Awal PHP LSAPI. Ini menentukan waktu maksimum dalam detik server akan menunggu PHP untuk menanggapi permintaan pertama melalui koneksi yang baru dibuat. Jika server tidak menerima data apa pun dalam batas waktu tunggu ini, koneksi ini akan ditandai sebagai buruk dan mengembalikan kesalahan 503 Ini dapat membantu mengidentifikasi masalah komunikasi antara server web OLS dan PHP secepat mungkin. Jika Anda memiliki permintaan yang sah dan berjalan lama, Anda dapat meningkatkan batas ini untuk menghindari pesan kesalahan 503 Batas Waktu Coba Ulang PHP LSAPI. Periode waktu (dalam detik) server menunggu sebelum mencoba kembali setelah masalah komunikasi sebelumnya Permintaan Maks PHP LSAPI. Jumlah maksimum permintaan yang akan ditangani oleh setiap proses anak sebelum keluar secara otomatis. Ketika satu proses keluar, yang lain akan dibuat. Ini diperlukan jika ada fungsi PHP yang mengalami kebocoran memori, yang bisa menjadi sangat tidak efisien PHP LSAPI Max Idle (Detik). Waktu idle maksimum sebelum proses PHP dihentikan oleh server. Pengaturan ini memungkinkan sumber daya yang digunakan oleh aplikasi menganggur untuk dibebaskan setelah jangka waktu yang ditentukan telah berlalu https. // www. litespeedtech. com/support/wiki/doku. php/litespeed_wiki. php. lsapi-lingkungan-variabel Bagian 5. Contoh Kasus Penggunaan dan Membangun Layanan Hosting Anda SendiriBaiklah, dengan semua fondasi sudah tercakup, mari kita lihat bagaimana mulai mempraktikkan semua hal di atas. Di bawah ini kami akan melihat berbagai sasaran yang perlu Anda pertimbangkan sebelumnya, lalu beberapa contoh cara mulai menyesuaikan untuk berbagai jenis situs. Di bawah ini kita akan melihat
Pedoman Dasar untuk NginxDi GridPane, pengaturan default kami adalah menggunakan Dynamic PHP worker di Nginx, dan default kami untuk setiap jenis pekerja adalah sebagai berikut. –
Pengaturan Dinamis default kami akan bekerja dengan sangat baik untuk 90% dari semua situs yang dihosting di platform kami. Ini berarti rata-rata situs web Anda yang di-cache dengan baik yang memiliki konten dinamis minimal Menyetel Performa OpenLiteSpeedKami akan menambahkan rekomendasi penyetelan untuk situs web dinamis dengan lalu lintas tinggi di masa mendatang. Untuk semua skenario lainnya, kami merekomendasikan pengaturan pekerja ProcessGroup default Mode ProcessGroup vs WorkerKecuali Anda memiliki alasan yang sangat spesifik untuk menggunakan mode proses Worker, kami sarankan Anda tetap menggunakan ProcessGroup untuk semua situs web Anda. Pengaturan default kami didasarkan pada rekomendasi LiteSpeed dan ini akan membantu Anda dengan baik, apa pun jenis situs web yang Anda hostingHosting Situs WordPress sederhanaSaat ini saya menghosting situs pribadi saya di 2 inti CPU kecil yang bagus, instans e2-kecil 2GB di Google Cloud Platform, benar-benar gratis berkat kredit gratis $300 12 bulan mereka. Ini cukup bagus, dan karena tidak berbagi sumber daya dengan situs lain mana pun, sepenuhnya statis, memanfaatkan caching halaman tingkat server dan caching objek Redis, ia dapat menangani sejumlah besar lalu lintas jika diperlukan. Jujur saja, tapi gratis itu gratis Pengaturan dinamis default minimum 1 pekerja per inti CPU setiap saat benar-benar memadai, dan server akan membuat hingga maksimal 4 pekerja per inti jika diperlukan. Dalam kasus saya, saya bisa menggunakan ondemand, statis atau dinamis dan itu akan membuat sedikit perbedaan Saat menghosting situs web sederhana, atau beberapa situs web sederhana, tembolok dengan baik, lalu lintas rendah di server, pekerja PHP umumnya bukanlah sesuatu yang perlu Anda khawatirkan, tetapi dinamis adalah taruhan yang sangat aman Hosting BANYAK situs web sederhana dengan lalu lintas rendah di satu serverJika Anda menghosting BANYAK situs web dengan lalu lintas rendah yang semuanya menggunakan caching tingkat server, maka menggunakan pekerja ondemand untuk situs web ini dapat memberikan yang terbaik bagi Anda, tetapi dinamis mungkin tetap yang terbaik Misalnya, jika Anda menghosting 50 situs web pada server 4 inti CPU, semuanya dengan pekerja dinamis yang aktif diatur ke satu pekerja, itu berarti 1 pekerja per situs web. Di sini kami memiliki total 50 pekerja PHP aktif di server ini setiap saat, secara permanen menggunakan sumber daya Anda perlu mengawasi jumlah total turunan maksimum dari semua situs yang digabungkan, dan memori maksimum PHP per skrip Karena mereka semua adalah situs dengan lalu lintas rendah, mereka akan berfungsi dengan sangat baik menggunakan ondemand, memungkinkan server untuk membuat pekerja sesuai kebutuhan, dan kemudian mematikan mereka setelah jam tangan mereka berakhir. Dan, dengan menghemat sumber daya, Anda akan dapat menghosting lebih banyak situs web per server jika itu adalah tujuan Anda (namun kami tetap menyarankan untuk tidak mengisi server dengan sebanyak mungkin situs web, dan malah menyebarkannya dan menggunakan dinamis) Alternatif yang Lebih Baik7-10 situs web gaya brosur per 1 GB RAM adalah pedoman yang baik untuk berapa banyak situs ini yang dapat ditangani server. Mengikuti pedoman ini, lanjutkan dan gunakan dinamis (default kami sempurna jika Anda klien GridPane) Hosting satu situs web lalu lintas super tinggiJika Anda menghosting situs web dengan lalu lintas super tinggi, maka ada beberapa hal yang mungkin ingin Anda lakukan
Lebih penting untuk merencanakan lalu lintas bersamaan yang maksimum. 100.000 pengunjung yang tersebar sepanjang hari adalah masalah hosting yang sangat, sangat berbeda dengan 100.000 pengunjung per hari, tetapi semuanya masuk ke situs web Anda pada waktu yang bersamaan. Di sini situs web kami tidak membagikan sumber daya apa pun, sehingga server dapat dengan mudah membayar penggunaan pekerja statis. Tidak ada kerugian, jadi mulailah dengan 4 pekerja per inti Hosting situs web WooCommerce dengan lalu lintas tinggieCommerce menghadirkan tantangan uniknya sendiri. Sering meminta BYPASS cache, dan ada permintaan PHP dan basis data yang ekstensif. Untuk jenis beban kerja berat ini, sebaiknya hosting situs web ini di server mereka sendiri Anda juga ingin memanfaatkan caching objek untuk mengurangi beban kerja di database Anda. Ini akan menjadi penguat kinerja yang signifikan untuk situs web berat MySQL mana pun. RAM server Anda yang tersedia juga harus setidaknya dua kali lipat dari ukuran database Anda Semakin besar toko dalam hal inventaris produk, biasanya akan ada lebih banyak pekerjaan di PHP dan database karena pengunjung Anda mencari dan memfilter produk untuk menemukan apa yang mereka cari. WooCommerce juga jauh dari basis kode yang paling ramping untuk memulai… Tempat yang baik untuk memulai bagi banyak situs eCommerce menggunakan pekerja statis pada 3 pekerja per inti CPU. Jika Anda memiliki basis kode yang bersih dan tidak berurusan dengan terlalu banyak permintaan yang berjalan lama, uji kinerjanya pada 4 dan 5 pekerja per inti sampai Anda menemukan sweet spot Hosting situs web LMS / Forum / Keanggotaan dengan lalu lintas tinggiSemua jenis situs web ini berbagi masalah utama yang sama. Pengguna yang masuk Segera setelah pengguna masuk ke WordPress, mereka sekarang mem-BYPASS cache, sehingga semua yang mereka lakukan di situs Anda perlu diproses oleh PHP dan MySQL Jika Anda memiliki banyak orang yang aktif di situs Anda pada satu waktu, hal ini dapat menimbulkan banyak tekanan pada sistem Anda karena pekerja PHP bertanggung jawab atas semuanya Dalam kasus ini, Anda ingin basis kode Anda seramping mungkin, dan menghosting situs di servernya sendiri dengan CPU berperforma tinggi. Anda juga ingin menggunakan pekerja statis Mulailah menguji pekerja statis pada 3 pekerja per inti CPU, pantau bagaimana keadaan selama periode beban tinggi, dan uji kinerja situs Anda pada 4, 5, dan bahkan mungkin 6 pekerja per inti hingga Anda menemukan sweet spot Hosting Jaringan WaaS / MultisiteJaringan WaaS Anda harus sepenuhnya di-cache dan berada di servernya sendiri. Prinsip yang sama berlaku di sini – satu situs web memiliki akses ke semua sumber daya, jadi menggunakan pekerja Statis akan memberikan kinerja terbaik di bagian depan dan belakang Catatan tambahan. Menambahkan eCommerce ke dalam jaringan multisite adalah ide yang sangat buruk. Tidak hanya dari sudut pandang kinerja (yang bisa sangat bermasalah saat orang mulai berbelanja di toko yang berbeda), tetapi juga dari sudut pandang keamanan. Jika satu toko pernah disusupi, semua toko di jaringan Anda akan disusupi dan itu tidak sebanding dengan risikonya terhadap bisnis Anda, atau bisnis pelanggan Anda, atau informasi pribadi pelanggan mereka Tidak ada terbalik Kami sangat menyarankan Anda menghindari semua jenis eCommerce di jaringan WaaS Anda. Jika perlu, pindahkan beberapa klien yang memerlukannya ke instalasi WordPress mandiri mereka sendiri (dan kenakan biaya lebih banyak) Itu BungkusPekerja PHP adalah topik yang maju dan padat, tetapi topik yang sangat berharga untuk waktu Anda. Kami harap Anda menganggap ini sebagai bacaan yang berharga dan kami akan senang mendengar tanggapan dan saran Anda tentang bagaimana kami dapat menjadikannya lebih baik Berapa banyak pekerja PHP per inti?Pekerja PHP untuk situs e-niaga dengan lalu lintas tinggi. Banyak situs e-niaga dapat memanfaatkan penggunaan 3 pekerja statis per inti CPU . Jika Anda memiliki basis kode yang bersih dan tidak mengelola terlalu banyak permintaan yang berjalan lama, Anda perlu menguji kinerja situs web Anda pada 4 dan 5 pekerja per inti sampai Anda menemukan sweet spot.
Apa batas pekerja PHP?SpinupWP menggunakan metode dinamis untuk menentukan berapa banyak pekerja PHP yang harus ada di kumpulan PHP pada waktu tertentu. Setiap saat, setidaknya satu pekerja PHP yang menganggur harus tersedia untuk menangani setiap permintaan yang masuk, hingga maksimal lima pekerja PHP per situs .
Apa itu pekerja PHP Kinsta?Pekerja PHP memproses kode PHP situs . Ini termasuk membuat halaman, memproses tugas latar belakang, menanyakan database, dll. Salah satu cara untuk memikirkan pekerja PHP adalah seperti karyawan di sebuah toko. Setiap pekerja hanya dapat menangani satu permintaan pada satu waktu.
Apakah WordPress single threaded?WordPress sendiri adalah aplikasi single-threaded . Ini berarti bahwa satu permintaan WordPress (pemuatan halaman, permintaan pencarian, pemfilteran produk, dll), betapapun rumitnya, ditangani oleh satu pekerja PHP. |