Rumah >pembangunan bahagian belakang >tutorial php >Diagnosis masalah prestasi WordPress dengan peninggalan baharu
Tutorial ini meneruskan perkara yang kami mulakan dengan memantau prestasi WordPress dengan New Relic. Di sini, saya akan memberikan anda gambaran keseluruhan konseptual prestasi WordPress dan membimbing anda menyemak prestasi tapak anda sendiri menggunakan New Relic.
Jika anda datang ke sini dari tutorial Mengoptimumkan WordPress dengan Varnish dan W3 Total Cache, maka anda sudah mempunyai asas WordPress yang sangat dioptimumkan. Jika tidak, anda mungkin mahu kembali dan menyemak artikel tersebut.
WordPress ialah sistem blog sumber terbuka yang berkuasa yang boleh menyokong blog peribadi kecil dan tapak web besar organisasi media utama. Tetapi sebenarnya menjalankan WordPress dengan baik, dan menskalakannya dengan jayanya dan kos efektif, memerlukan banyak kerumitan.
Perkhidmatan pemantauan prestasi New Relic menawarkan cara terbaik untuk memastikan konfigurasi WordPress anda kekal berjalan lancar dan cekap.
Nota: New Relic memberi amaran bahawa perkhidmatannya paling baik digunakan untuk mengoptimumkan WordPress pada pelayan khusus, berbanding pelayan maya atau kongsi (seperti yang ditawarkan oleh banyak penyedia berasaskan awan). Jika anda menjalankan WordPress pada pengehosan kongsi, New Relic mungkin tidak berguna kepada anda kerana tapak web yang dijalankan pada pelayan khusus.
Jika anda ingin mengetahui lebih lanjut tentang New Relic sebelum menyelami panduan prestasi ini, Tuts+ mempunyai pelbagai artikel tentang perkhidmatan mereka.
Pada tahun 2013, Frederick Townes, pencipta pemalam W3 Total Cache WordPress percuma, menulis catatan blog untuk New Relic yang menerangkan aspek prestasi yang perlu kami pertimbangkan: Mengoptimumkan Prestasi WordPress dengan New Relic. Ini adalah ringkasan yang baik dan saya akan menyemaknya.
Townes menyerlahkan bidang teras yang perlu kita fokuskan:
1. Prestasi cakera. Cakera tempatan yang tidak dikongsi sentiasa memberikan prestasi yang paling konsisten dan boleh dipercayai. Sebagai contoh, menggunakan konsol dengan pemacu SSD atau pemacu keras berkelajuan tinggi adalah sesuai.
2. cache pertanyaan MySQL. Cache pertanyaan menyimpan hasil pertanyaan pangkalan data biasa dan boleh mengembalikan hasil serta-merta tanpa pelaksanaan berulang. Townes mengesyorkan menjalankan MySQLTuner untuk membantu mengoptimumkan konfigurasi pangkalan data.
3. Penggunaan pertanyaan mengikut tema dan pemalam WordPress. WordPress berfungsi dengan baik di luar kotak dengan konfigurasi, tetapi apabila kami menambah pemalam dan tema pihak ketiga, kami mungkin menghadapi pelbagai kod ralat yang menyebabkan masalah prestasi.
4. Saiz fail tema dan pemalam WordPress. Mengurangkan saiz fail dan bilangan fail (dan oleh itu urus niaga HTTP) boleh memberi impak besar pada pengalaman tapak web pengguna. Malangnya, tidak semua Cascading Style Sheets (CSS) atau JavaScript (JS) boleh disepadukan dan diminimumkan dengan mudah.
5. PHP yang dioptimumkan, agak perlahan. Versi PHP yang lebih pantas (seperti HHVM) mungkin berfungsi untuk WordPress pada masa hadapan, tetapi saya faham ia masih belum stabil untuk tugas ini. Sementara itu, Townes menawarkan satu siri cadangan: kurangkan jejak memori skrip anda, gunakan autoloading, gunakan memori, elakkan gelung, kurangkan masa pelaksanaan, minimumkan bilangan fail terbuka untuk mengurangkan panggilan cakera dan penggunaan memori, dan gunakan include
和 require
而不是 include_once
和 require_once
.
6. Gunakan Caching Opcode, seperti APC, rangka kerja cache sumber terbuka untuk kod PHP. "APC menyimpan versi kod yang ditafsirkan (boleh laku) dalam ingatan supaya permintaan kepadanya tidak perlu ditafsir semula," kata Townes
"Cache objek WordPress adalah tempat di mana banyak keajaiban berlaku. WordPress menjana pelbagai kumpulan objek apabila memproses permintaan halaman. Kumpulan ini mempunyai pelbagai tujuan dan sangat penting bergantung pada cara anda menggunakan WordPress. Contohnya, dengan menggunakan storan memcached atau APC Backend mengekalkan objek untuk mencapai peningkatan prestasi.”
Townes' W3 Total Cache melaksanakan ini pada peringkat cache halaman, membenarkan PHP untuk masih menjana sebahagian daripada kandungan halaman tertentu, manakala bahagian halaman yang lebih besar yang tidak berubah dicache dan tidak dijana semula.
"W3TC akan membolehkan anda memilih stor data selain MySQL, seperti memcached, yang direka untuk akses berkelajuan tinggi daripada berbilang pelayan aplikasi. Oleh itu, setiap permintaan halaman tidak perlu mendapatkan maklumat tentang pelawat atau orang lain yang sepadan Elemen dinamik, MySQL kini boleh memfokus pada (dan menyesuaikan) hanya bahagian dinamik templat."
Townes berkata, "Caching serpihan akan mengurangkan masa pelaksanaan anda mengikut urutan magnitud."
7. Teknik yang paling berguna untuk menskala tapak web biasa ialah caching halaman. Daripada mengakses keseluruhan timbunan (WordPress, tema, pemalam, HTML dan MySQL) dengan setiap permintaan halaman, kami mendapatkan semula HTML statik daripada cache web (biasanya daripada memori). Penskalaan trafik pada tapak WordPress yang tidak dicache boleh menutupnya dalam beberapa saat, manakala penskalaan trafik pada fail HTML pratulis dalam cache dalam memori berskala besar-besaran.
Townes berkata: “Proksi terbalik biasanya menyediakan cache antara aplikasi web dan internet awam. Nginx dan juga Apache boleh dikonfigurasikan untuk menyediakan fungsi proksi terbalik.”
Saya paling kerap menggunakan Varnish dengan Apache dan W3 Total Cache untuk melanjutkan WordPress. Jika anda berminat dengan konfigurasi ini, lihat: Mengoptimumkan WordPress dengan Varnish dan W3 Total Cache (Tuts+).
8. Rangkaian penghantaran kandungan (CDN) ialah perkhidmatan caching berasaskan awan untuk fail dan media yang kerap digunakan. Townes berkata, "Dengan CDN, tidak kira di mana tapak web anda dihoskan. Jika pelawat anda berada di tempat lain di dunia, CDN akan cache kandungan berhampiran dengan mereka, mengurangkan keseluruhan masa muat halaman untuk tapak web anda."
Sekarang kita memahami beberapa konsep utama untuk WordPress berfungsi dengan baik, mari lihat cara New Relic boleh membantu kita.
New Relic ialah perkhidmatan pemantauan prestasi yang berjalan dengan pelbagai pelayan dan teknologi bahasa, termasuk PHP, dan sesuai untuk mengoptimumkan WordPress.
Relik Baharu menyediakan pemantauan prestasi tindanan penuh (pengalaman pengguna akhir) dan juga menyediakan pemantauan pelayan terperinci. "Peninggalan Baharu memudahkan untuk menyampaikan perkara yang berlaku dalam persekitaran anda," kata Townes
Apabila anda menjalankan New Relic pada pelayan, anda boleh mendapatkan carta pemantauan prestasi terperinci dan statistik tentang pelayan dan PHP, termasuk: masa tindak balas, skor Apdex (nisbah masa tindak balas yang memuaskan kepada masa tindak balas yang tidak memuaskan), pemprosesan (permintaan) seminit ), transaksi rangkaian seperti permintaan API pihak ketiga, kadar ralat, peristiwa terkini dan maklumat pelayan.
Melangkah lebih jauh, Penyemak Imbas Relik Baharu memantau data kitaran hayat halaman penuh—jauh melebihi pemuatan halaman awal. Untuk setiap pemuatan halaman pengguna akhir, Pelayar Relik Baharu menangkap:
Anda boleh melihat data untuk semua pengguna di seluruh dunia, dan melihat kepingan dan dadu data mengikut halaman, penyemak imbas, sesi pengguna dan lokasi.
Saya merangkumi Penyemak Imbas Relik Baharu dengan lebih lengkap dalam Pemantauan Bahagian Hadapan dengan Penyemak Imbas Relik Baharu (Tuts+).
Sintetik Peninggalan Baharu membolehkan anda menguji tapak web anda secara kerap dari mana-mana sahaja di dunia, memberitahu anda dengan segera jika berlaku kesilapan. Saya akan membincangkan Sintetik dalam tutorial akan datang, jadi lawati halaman Pengajar Tuts+ saya untuk melihat apabila ia dikeluarkan.
Saya menerangkan proses pendaftaran dan pemasangan Penyepaduan perkhidmatan W3 Total Cache New Relic dalam tutorial ini: Memantau Prestasi WordPress dengan New Relic (Tuts+).
Dalam konsol pentadbir WordPress, klik Prestasi > Pemantauan. Klik untuk mendaftar akaun percuma. Salin butiran API dan kunci lesen ke dalam panel tetapan W3 Total Cache di bawah:
Mendayakan New Relic pada pelayan boleh dipantau dari papan pemuka W3TC seperti yang ditunjukkan di bawah:
Untuk butiran lanjut, anda boleh melawati laman web New Relic dan log masuk ke akaun anda.
Pada tahap tinggi, pemantauan New Relic Server memberikan anda gambaran keseluruhan penggunaan CPU, penggunaan memori, cakera dan I/O rangkaian, serta maklumat tentang perkakasan anda dan proses yang paling aktif. Ini memberi anda pandangan mata tentang perkara yang berlaku dengan konfigurasi anda dan memaklumkan anda tentang sebarang isu utama:
Tab Proses menunjukkan memori dan penggunaan CPU untuk setiap proses:
Anda juga boleh melihat sejarah makluman yang menunjukkan bendera merah dalam prestasi tapak web anda:
Relik Baharu mempunyai tiga cara utama untuk menilai prestasi WordPress:
1. Apdex. Relik Baharu menggunakan Penilaian Apdex untuk membantu anda menilai prestasi aplikasi Wordpress anda untuk pengguna akhir berbanding ukuran standard industri. Ini membantu anda menyediakan data yang lebih baik untuk menyelesaikan masalah dan pemahaman yang lebih jelas tentang peratusan pengguna yang kecewa atau berpuas hati. Penilaian Apdex juga menyediakan konteks yang lebih khusus daripada aduan "tapak perlahan" generik, yang mungkin tidak memberitahu anda sehingga beberapa jam selepas kejadian. Apdex juga memberi anda cara yang lebih objektif untuk mengukur perasaan pengguna sebenar tentang peningkatan prestasi.
2. Prestasi MySQL. Pemalam dan tema Wordpress boleh menyalahgunakan pangkalan data mySQL anda. Anda boleh mengetahui perkara yang menyebabkan masalah dengan melihat Slow SQL dalam New Relic. Sebagai contoh, anda mungkin mendapati bahawa pemilihan pada wp_terms untuk kategori dan teg mungkin mengambil masa sehingga 20% daripada jumlah masa pangkalan data. Sebagai alternatif, anda mungkin perasan bahawa penyataan INSERT yang perlahan boleh diperbaiki dengan indeks yang diletakkan dengan betul atau pertanyaan menapis.
3. Pantau prestasi pemalam dan API pihak ketiga. Sangat mudah untuk menggunakan pemalam media sosial, pemalam pemantauan dan widget hebat lain dalam WordPress, tetapi mungkin tidak jelas bagaimana kebergantungan pihak ketiga ini mempengaruhi blog atau tapak web pemasaran blog anda. New Relic membolehkan anda "mengagregatkan" panggilan perkhidmatan luaran untuk paparan yang lebih komprehensif, dan anda juga boleh memantau masa respons pihak ketiga ini dalam setiap transaksi web yang ditangkap oleh New Relic.
Kami boleh menggunakan penyemak imbas New Relic untuk mengkaji prestasi WordPress dengan lebih terperinci. Anda perlu mencari secara khusus kod daripada tema dan pemalam kami yang boleh menjejaskan prestasi secara negatif.
Papan pemuka memberi anda gambaran keseluruhan masa muat halaman yang dipecahkan mengikut Apdex dan daya pemprosesan:
Berikut ialah paparan zum masuk bagi skor Apdex saya sepanjang 24 jam yang lalu:
Anda juga boleh melihat prestasi mengikut paparan halaman:
Apabila anda menelusuri analisis, anda boleh melihat prestasi fail individu yang dimuatkan oleh tapak web anda. Anda perlu mencari mana-mana fail tema atau pemalam yang mengambil masa yang mencurigakan:
Pemantauan Pelayan Relik Baharu juga boleh menjejaki prestasi pertanyaan MySQL:
Anda boleh menelusuri untuk butiran lanjut:
Dan diagnosis pertanyaan yang paling perlahan:
Ini amat berguna untuk mengenal pasti pertanyaan lambat yang dibuat oleh kod pemalam yang buruk.
Penjejakan sesi membolehkan anda memahami keseluruhan kitaran hayat halaman web, termasuk interaksi pengguna, pemuatan sumber, iframe, masa yang dihabiskan untuk menunggu panggilan Ajax, ralat dan banyak lagi, menjejaki pengalaman sebenar pengguna sebenar dari awal hingga akhir.
Pengesanan bukan sahaja mengenal pasti masalah tetapi juga menunjukkan kepada anda tindakan yang dilakukan pengguna sebelum dan selepas ralat berlaku.
Di bawah adalah analisis terperinci terperinci sesi anda. Ini membantu menilai prestasi kod dalam tema dan pemalam:
Penjejakan sesi membantu anda memahami:
Anda boleh melihat dengan tepat apa yang berlaku dalam penyemak imbas pengguna tertentu pada bila-bila masa. Penjejakan sesi memberi anda visualisasi intuitif yang terperinci bagi semua acara dalam sesi pengguna, yang boleh membantu menentukan kawasan masalah dan mengenal pasti penyelesaian dengan mudah. Ketahui lebih lanjut tentang menggunakan penjejakan sesi.
Dengan halaman Ajax, anda boleh melihat perkara yang berlaku dengan sebarang panggilan interaktif pada halaman itu, membantu mengenal pasti isu pengalaman pengguna apabila panggilan mengambil masa atau gagal:
Sila ambil perhatian bahawa pelayar New Relic tidak log data Ajax secara automatik. Anda perlu menghidupkannya untuk setiap aplikasi dalam kawasan tetapan New Relic. Ketahui lebih lanjut tentang papan pemuka Ajax.
Papan Pemuka Ralat JavaScript Penyemak Imbas membolehkan anda melihat dengan cepat ralat yang berlaku dalam JavaScript pengeluaran anda dari semasa ke semasa dan pada penyemak imbas yang mana. Anda boleh menyiasat ralat berdasarkan bilangan kali setiap ralat berlaku dan bilangan pemuatan halaman unik yang menghadapi ralat.
Ini membolehkan anda mengenal pasti pepijat yang memberi kesan kepada pengalaman pengguna sebenar di tapak anda ini ialah cara yang sangat berkesan untuk mengetahui tentang pepijat JavaScript yang tidak muncul dalam ujian anda sendiri atau pada penyemak imbas yang mungkin telah anda kecualikan daripada meja ujian anda.
WordPres yang dihoskan sendiri memerlukan tahap kemahiran teknikal yang tinggi. Jika anda tidak mahu, pengehosan terurus ialah pilihan yang lebih baik. Ramai daripada mereka menggunakan New Relic secara dalaman untuk mengoptimumkan tapak web mereka, seperti Page.ly.
Memerlukan masa untuk mendalami New Relic, tetapi hasilnya berbaloi. Menggunakan alat ini, anda boleh melihat di dalam timbunan WordPress anda untuk mengenal pasti kawasan masalah yang perlu ditangani dengan cepat.
Jika anda mengehos sendiri, perkhidmatan New Relic menawarkan cara yang sangat hebat untuk mengetahui tentang persekitaran pengehosan anda sendiri, bersama-sama dengan timbunan, tema dan pemalam WordPress anda serta menjinakkan binatang prestasi.
Semasa proses pelancaran anda (dan semasa proses pembangunan anda, jika anda membina tema dan pemalam anda sendiri), anda pasti mahu menggunakan New Relic untuk mendapatkan pemahaman yang lebih mendalam tentang tapak anda.
Walaupun anda boleh menggunakan New Relic Lite selama-lamanya, selepas percubaan dua minggu tamat, anda mungkin perlu menaik taraf kepada pelan Pro ($149/bulan) untuk mengekalkan tahap perkhidmatan yang sama. Pelayar Relik Baharu, Synthetics dan Insight semuanya mempunyai struktur harga mereka sendiri - untuk mengetahui lebih lanjut, lawati tapak web New Relic.
Jika anda mempunyai sebarang soalan atau pembetulan, sila tinggalkan di dalam komen. Jika anda ingin terus mengikuti tutorial Tuts+ masa depan saya dan siri lain, sila lawati halaman pengajar saya atau ikuti @reifman.
Atas ialah kandungan terperinci Diagnosis masalah prestasi WordPress dengan peninggalan baharu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!