Mempercepat MediaWiki Lambat: Optimasi Kinerja

Sangat lambat MediaWiki adalah masalah besar! Kinerja MediaWiki mungkin terkena load.php lambat dan file index.php. Mempercepat MediaWiki untuk mengoptimalkan kecepatan load halaman.

A+ A-

Saya menjalankan situs web populer berdasarkan MediaWiki. Untuk beberapa tahun terakhir telah memberi saya mimpi buruk karena kelambatan nya. Meskipun semua usaha saya, saya tidak mampu menstabilkan web server dan mengatasi MediaWiki lambat. Sebagian besar log server waktu akan menyalahkan load.php dan script index.php untuk menyebabkan kecelakaan. Saya melakukan sedikit riset dan sekarang yang akhirnya website saya adalah dalam bentuk yang jauh lebih baik, saya pikir menuliskan pengalaman saya untuk Anda semua. Di sini saya akan menulis tentang sejumlah tips yang saya dapatkan dari internet dan efektivitas mereka dalam meningkatkan kinerja MediaWiki.

Sementara aku sedang meneliti tentang bagaimana meningkatkan kinerja MW, saya datang di sejumlah forum di mana orang-orang berbicara tentang MediaWiki terkait mereka masalah dan solusi yang mungkin. Namun, satu hal yang saya hampir selalu ditemukan hilang dari deskripsi masalah / solusi tersebut adalah rincian teknis tentang website yang menghadapi masalah. Kita perlu memahami bahwa lingkungan teknis yang berbeda membutuhkan solusi yang berbeda. Oleh karena itu, menyajikan solusi tanpa memberikan konteks apapun mungkin tidak banyak berguna.

Jadi, pertama-tama, biarkan aku memberitahu Anda tentang situs saya punya sehingga memungkinkan Anda untuk patokan website Anda sendiri, masalah, dan efektivitas solusi yang mungkin.

Rincian dari website saya

HARDWARE: VPS dengan sekitar 1800MB RAM
SOFTWARE: Berikut adalah lingkungan perangkat lunak server MediaWiki saya:

  • Menggunakan UTF-8 charset untuk MediaWiki serta database MySQL. Ini adalah situs non-Bahasa Inggris
  • Database MySQL menggunakan InnoDB untuk sebagian besar tabel, beberapa tabel MYISAM
  • Saat ini berdasarkan MediaWiki 1.20.3 (Namun, masalah kelambatan dimulai ketika ia berjalan di MW 1.14)
  • Versi PHP adalah 5.3.23 (cgi-FCGI)
  • versi MySQL 5.1.69-cll
  • Versi Apache 2.2.24

website saya memiliki lebih dari 60.000 halaman, hampir 150.000 pengunjung per bulan dan sekitar 2 juta page views per bulan. Jadi, Anda dapat mempertimbangkan sebuah situs lalu lintas cukup tinggi.

Gejala masalah situs saya

1) Kinerja lambat. Pages akan mengambil 10 detik untuk lebih dari 2 menit untuk memuat. Server error log sering memberitahu saya bahwa load.php dan script index.php mengambil terlalu lama untuk menyelesaikan. Dan yang menciptakan hambatan.

2) tidak stabil. Web server akan sering turun dan akan menjadi lambat seperti mati (melayani hanya 2-3 halaman dalam satu menit). Server akan masuk ke mode tak tertahankan lambat ini selama 15-20 menit dan kemudian lagi musim semi kembali ke kehidupan (melayani 20-30 halaman per menit).

3) Lingkungan kegagalan. Saya sering mendapatkan email dari host yang MySQL telah gagal atau Apache crash atau beberapa layanan lainnya turun.

Siapkan untuk "Mission Kecepatan-up MediaWiki"

alat berikut akan sangat berguna saat menyelidiki penyebab masalah server dan implementasi solusi.

Tips untuk meningkatkan kinerja MediaWiki.

Tips untuk meningkatkan kinerja MediaWiki.

Gunakan Google Anayltics: Real time analytics disediakan oleh Google adalah berkat. Hal ini menunjukkan bahwa, saat ini, berapa banyak orang yang terhubung ke situs web Anda, berapa banyak halaman yang sedang disampaikan per menit dan per detik. Informasi ini sangat berguna dalam persidangan dan putaran kesalahan seperti yang Anda akan dapat melihat bagaimana berbagai kebijakan yang diambil oleh Anda telah mempengaruhi lalu lintas di situs Web Anda.

Gunakan VPS: Jika Anda memiliki situs web MediaWiki besar secara signifikan dan jika Anda mampu membelinya -pergi untuk Virtual Private Server (VPS) bukannya Shared Server. Pada VPS Anda dapat melakukan banyak hal lebih mudah. Anda harus mendapatkan akses ke antarmuka seperti cPanel, WHM dan / atau Virtuozzo.

Gunakan SSH: Bahkan dengan server bersama Anda bisa mendapatkan akses SSH ke akun Anda (namun, dalam banyak kasus, Anda harus meminta dari host-mereka tidak memberikan pada server bersama secara default). Jadi, pergi dan meminta akses SSH jika Anda belum mendapatkannya. Setelah Anda mendapatkan akses SSH ke server Anda, menggunakan alat sederhana seperti dempul untuk terhubung ke account server Anda melalui SSH.

Biarkan saya mengatakan bahwa sangat penting untuk memiliki akses SSH jika Anda berharap untuk memecahkan masalah MediaWiki dan meningkatkan kinerjanya.

Kita bisa mencoba untuk meningkatkan kinerja MediaWiki di beberapa tingkatan. Aku akan menulis artikel ini dalam tiga bagian; masing-masing untuk tweaker dari MediaWiki, Apache Web Server dan database MySQL.

Bagian 1 - Tweak MediaWiki

Mari kita mulai dengan bagian pertama dari proses. Pertama-tama, Anda harus mengatur instalasi MediaWiki Anda ke pengaturan yang ideal. Pengaturan ini penting untuk menjaga situs MW yang lebih besar stabil. Ini adalah langkah pertama menuju kinerja tinggi.

File Caching

MediaWiki adalah sebuah aplikasi web yang berat baik pada Apache serta MySQL. Jika Anda tidak sering melakukan perubahan di sebagian besar halaman Anda, Anda dapat menggunakan file caching. Bila pengguna akan meminta halaman dari website Anda, MediaWiki akan menyimpan salinan halaman sebagai file HTML. waktu berikutnya ketika seseorang akan meminta -instead halaman yang sama dari berbicara dengan MySQL dan membangun kembali halaman -MW akan mengirimkan salinan HTML sebagai respon. Ini akan membuat respon lebih cepat karena panggilan database dan PHP render akan dilewati. Untuk mengaktifkan file caching, menempatkan baris berikut dalam file LocalSettings.php.

$ wgUseFileCache = true;
$ wgFileCacheDirectory = "$ IP / cache";
$ wgShowIPinHeader = false;

Cache Sidebar

Anda juga dapat cache konten sidebar. Hal ini akan mempercepat respon dari web server. Ke cache sidebar, tambahkan berikut dalam file LocalSettings.php.

$ wgEnableSidebarCache = true;

Gunakan MediaWiki Halaman Kompresi

Jika Anda mengaktifkan kompresi, MediaWiki akan mengirimkan halaman yang diminta ke browser sebagai file terkompresi. Hal ini akan mengurangi ukuran file dari respon dan, karena itu, kecepatan transfer akan lebih besar. Semua browser modern mampu konten uncompressing dan menunjukkan kepada pengguna. Untuk mengaktifkan kompresi, tambahkan baris berikut pada file LocalSettings.php.

$ wgUseGzip = true;

Nonaktifkan Pageview Counters

MediaWiki terus melacak berapa kali halaman telah dilihat. Jadi, setiap kali halaman diminta -yang tampilan halaman jumlah halaman yang bertambah dalam database. Jika melacak tampilan halaman tidak penting bagi Anda, Anda harus menonaktifkan fungsi ini untuk menghemat panggilan database. Untuk menonaktifkan tampilan halaman counter, tambahkan baris berikut dalam file LocalSettings.php.

$ wgDisableCounters = true;

Catatan: Jika Anda menggunakan file caching, menjaga counter pada tidak akan berguna pula karena dalam banyak kasus halaman yang diminta akan dikirimkan ke pengguna dari cache dan memperbarui basis data tidak akan berlangsung.

Set Hit Counter Frekuensi
Dalam hal jumlah tampilan halaman yang penting bagi Anda dan Anda ingin tetap di; Anda harus menggunakan variabel $ wgHitcounterUpdateFreq

Variabel ini menetapkan frekuensi seberapa sering counter pageview diperbarui. Secara default, ia memiliki nilai 1 -yang berarti pembaruan dilakukan setiap kali halaman yang dilihat. Anda harus mengaturnya untuk sesuatu seperti 500. Ini berarti bahwa database akan diperbarui hanya sekali setelah 500 pageviews. Untuk mengatur variabel ini, menggunakan berikut dalam file LocalSettings.php.

$ wgHitcounterUpdateFreq = 500;

Aktifkan Pelit Modus

MediaWiki dapat berjalan dalam modus kikir dimana ia mematikan sejumlah fitur untuk menghemat sumber daya dan meningkatkan kinerja. Berikut adalah hal-hal yang memungkinkan modus kikir tidak:

  • Menonaktifkan format kustom ukuran perubahan khusus: PerubahanTerakhir via MediaWiki: Rc-perubahan ukuran (r48986)
  • Menonaktifkan memilih semua halaman yang dimulai dengan x box di Special: log (dan pilihan leprefix daftar = logevents API modul)
  • Benar-benar menonaktifkan khusus: MimeSearch, serta aimime dan pilihan famime dalam daftar = allimages dan daftar = modul API FileArchive
  • Menonaktifkan opsi showsizediff dari RSS feed untuk khusus: Kontribusi
  • Dalam daftar = categorymembers dan daftar = externallinks modul API, berkurangnya penggunaan menyortir berdasarkan mode namespace (return hanya beberapa hasil ketika cmnamespace atau elnamespace pilihan adalah digunakan).
  • Demikian pula menonaktifkan filter dengan kotak namespace pada khusus: LinkSearch
  • Menonaktifkan menampilkan daftar halaman yang paling populer di Special: Statistik (Tapi tetap akan menampilkan statistik tampilan halaman lain jika counter yang)
  • Tidak memperbarui jumlah pengguna aktif cukup sering
  • Menonaktifkan pencarian gambar dengan x di suatu tempat di kotak nama mereka di Special: NewImages dan khusus: ListFiles
  • Tidak menunjukkan berapa banyak versi sebelumnya dari gambar yang diunggah di Special: ListFiles
  • Ketika menjalankan script pemeliharaan rebuildrecentchanges.php, tidak akan kembali auto-patroli suntingan oleh pengguna dengan bendera auto-patroli.
  • Ketika menjalankan script pemeliharaan updateCollations.php, tidak akan memberitahu Anda berapa banyak baris total ada untuk memperbarui.

Untuk mengaktifkan modus kikir, tambahkan berikut di LocalSettings.php

$ wgMiserMode = true;

Gunakan Versi terbaru dari MediaWiki

Orang-orang di MediaWiki meja pengembangan keep mengubah kode untuk membuatnya lebih cepat dan menambahkan fitur yang dapat meningkatkan kinerja. Jadi, Anda harus meng-upgrade instalasi MediaWiki Anda ke versi terbaru. Lihat cara meng-upgrade MediaWiki .

Jalankan Jobs Melalui Cron

MediaWiki mempertahankan antrian dimana itu jadwal pekerjaan yang akan dilakukan pada database (misalnya penambahan halaman baru, pembaruan perubahan, penghapusan halaman dll). Variabel $ wgJobRunRate mengontrol tingkat di mana pekerjaan dari antrian ini dieksekusi. Idealnya, kita harus melaksanakan pekerjaan ketika ada setidaknya lalu lintas (misalnya pada malam).

Secara default, variabel ini diatur ke 1; yang berarti bahwa satu pekerjaan akan dilaksanakan pada setiap halaman yang diminta dari website Anda. Jika Anda menetapkan ke 0,1, satu pekerjaan akan dilaksanakan pada setiap 10 permintaan halaman.

Jika update real time tidak penting dalam situs web Anda, lebih baik untuk mengatur variabel tingkat pekerjaan ke 0 dan kemudian setup sebuah tugas cron untuk menjalankan semua akumulasi pekerjaan di jam off-peak.

Untuk mengatur tingkat pekerjaan ke nol, tambahkan berikut di LocalSettings.php

$ wgJobRunRate = 0;

Kemudian Anda dapat mengatur crontab seperti ini:

0 0 * * * / usr / bin / php /var/www/wiki/maintenance/runJobs.php> /var/log/runJobs.log 2> & 1

Hal ini akan menyebabkan pekerjaan untuk menjalankan dalam modus batch pada tengah malam pada semua hari.

Eksplisit menulis nama situs Anda

Halaman seperti MediaWiki: Aboutsite dan MediaWiki: PAGETITLE merujuk ke {{SITENAME}}. Anda harus mengedit halaman ini dan menuliskan nama situs Anda bukannya {{SITENAME}}.

Sekarang di bagian 2, saya akan membahas bagaimana kita harus men-tweak Apache webserver dalam upaya untuk membuat lambat instalasi MediaWiki berjalan lebih cepat. Tetap disini.