Drupal pada pemasangan asas memuatkan beberapa modul bagi membolehkan ianya berfungsi sebagai sistem pengurusan kandungan. Tetapi apabila anda mula menambah fungsi yang lain dengan modul tambahan, sistem akan mula terbeban dengan penambahan kuari dan beban pemprosesan.

Keadaan akan lebih bertambah buruk apabila proses capaian data untuk kemaskini melalui modul "Update" dilakukan berakhir dengan skrin putih (WSOD).

Banyak artikel-artikel dan tips yang diberikan dalam internet tentang memecutkan Drupal pada pelayan web yang berjenis "Dedicated" atau "VPS". Hal ini tidak berapa adil memandangkan jenis penghosan web ini dimiliki sepenuhnya oleh anda. Kali ini kita akan fokus kepada jenis penghosan web jenis perkongsian atau "Shared".

1. Pilih modul yang paling betul dan paling sesuai

Pengguna baru sentiasa ghairah untuk mencuba pelbagai modul dan dipasang sehingga terlalu membebankan laman. Pada peringkat percubaan di komputer anda, kaji setiap kegunaan modul yang ingin dipasang terlebih dahulu. Dalam Drupal, tidak semestinya memerlukan modul khas untuk melakukan satu-satu tugasan.

Sebaliknya anda perlu memahami dengan mendalam setiap fungsi dan kebolehan modul untuk melakukan pelbagai tugas. Sebagai contoh, modul

  • Recent Comments -- menghasilkan satu blok yang lebih maju berbanding yang dimuatkan pada pemasangan asal
  • Featured Content -- menyenaraikan kandungan yang terakhir dihantar dalam bentuk blok

boleh dihasilkan kedua-dua fungsi yang sama hanya dengan menggunakan modul Views. Beban laman akan dapat dikurangkan kepada separuh berbanding anda memasang kedua-dua modul bagi mendapatkan fungsi di atas.

2. Kaji modul, tahap pemprosesan dan kebergantungannya

Sesetengah modul memerlukan tahap pemprosesan yang sangat tinggi hanya untuk melakukan kerja-kerja yang boleh dilakukan tanpa memerlukan ianya dipasang. Sebagai contoh, modul Panel dan SWF Tools akan menggunakan ruangan ingatan (memory) hampir 30MB bagi melaksanakan satu-satu tugas.

Sekiranya penggunaan anda hanya melibatkan satu atau dua kandungan untuk salah satu modul berat di atas, cari alternatif lain yang memungkinkan kerja dilakukan tanpa memerlukan ianya dipasang. Sebagai contoh, modul Panel digantikan dengan melakukan proses modifikasi templat pada fail page.tpl.php dan node.tpl.php.

Selain itu periksa kebergantungan modul. Kadang kala, satu-satu modul memerlukan modul tertentu dipasang dan diaktifkan sebelum ianya boleh berfungsi. Contoh di atas adalah modul Panel yang memerlukan modul Ctools. Pemprosesan kedua-dua modul menjadikan jumlah penggunaan ingatan pelayan meningkat kepada 40MB.

3. Kenal pasti keperluan modul terpenting

Fokuskan semua modul yang digunakan digunakan hampir 50% fungsinya berdasarkan kepada jenis laman yang dibangunkan. Laman jenis blog mungkin tidak memerlukan modul Ubercart yang sekadar untuk mempamerkan hasil kerja anda sebaliknya cuba adaptasi modul Image sebagai ganti.

Bagi laman jaringan sosial (sosial network), penggunaan modul Advanced Forum dan Advanced Forum More Style tidak terlalu penting memandangkan kedua-duanya hanya menukarkan corak dan bentuk paparan modul Forum asal. Sebaliknya ianya boleh dilakukan dengan templat dan CSS.

4. Hadkan bilangan modul

Pastikan bilangan modul yang digunakan sekitar 40 hingga 60 paling banyak. Namun yang paling sesuai dan cemerlang adalah sekitar 30 sahaja. Bilangan ini sudah cukup untuk menghasilkan satu laman yang mempunyai pelbagai fungsi untuk pihak administrasi, pengguna dan pelawat.

5. Pastikan fungsi "cron" dan "update" berjalan dengan lancar

Sering kali masalah skrin putih atau WSOD dihadapi oleh pengguna pada penghosan jenis perkongsian kerana aktiviti "cron" dan "update" akan menggunakan hampir 30 - 40MB untuk diproses. Sekiranya salah satu proses ini terbantut, laman anda dikategorikan sebagai terlalu berat untuk dijalankan.

Kedua-dua aktiviti ini menjadi penanda kepada kemampuan sebenar pelayan tersebut. Seandainya anda menghadapi masalah gagal untuk melaksankan, panduan berikut boleh dilakukan iaitu melalui kaedah cuba-jaya:

  1. Log masuk sebagai "admin" utama dan letakkan laman dalam situasi "offline" di Administer Site configuration Site maintenance
  2. Seterusnya terus ke Administer Site building Modules
  3. Matikan ke semua modul-modul yang dipasang kecuali modul pada pemasangan asas atau "core"
  4. Bukak satu tetingkap baru dan tuju ke Administer Report Available update.
  5. Klik pautan "Check manually" dan tunggu keputusan. Selalunya proses kemas kini akan berjaya. Jika gagal, pemasangan asal Drupal sendiri sudah memberikan masalah. Pasang sistem Drupal yang baru untuk dijadikan sebagai perbandingan.
  6. Seterusnya pergi ke Administer Report Status report. Klik pautan "run cron manually" dan tunggu hasil keputusannya. Selalunya proses ini akan berjaya seandainya langkah (5) tidak mengalami masalah.
  7. Balik semula ke ruangan senarai modul tadi dan hidupkan mana-mana modul tambahan. Tunggu sehingga proses selesai.
  8. Ulangi proses (4) hingga (6) semula. Jika berjaya, hidupkan modul tambahan yang lain.

Langkah (8) perlu diulang sehingga masalah skrin putih diperolehi. Modul terakhir yang diaktifkan merupakan modul yang terlalu berat untuk digunakan dan elakkan dari memasangnya.

Sekiranya proses di atas berjalan sehingga ke semua modul dipasang semula, bermakna laman anda sudah bebas dari masalah WSOD. Keadaan ini diperbetulkan melalui proses imbas semula semua fungsi modul yang akan dimulakan dalam "bootstrap" Drupal, membina semula kerangka "cache" dan penyusunan kembali tahap kepentingan ke semua modul berdasarkan kepada API dan fungsi setiap satu.

Masalah WSOD sering kali berlaku apabila aktiviti pasang dan buang modul yang terlalu kerap kadang kala meninggalkan fungsi di dalam ingatan pelayan. Ini menyebabkan kod dalam ingatan seolah-olah tergantung sekiranya modul yang menyediakan fungsi tersebut tidak wujud semasa proses kemas kini dilakukan.

6. Pasang pemecut untuk pemprosesan Drupal

Antara cadangan modul yang boleh dipasang bagi memecutkan drupal adalah modul Boost (Modul: Boost (pemecut Drupal)) atau Authenticated User Page Caching (Authcache). Kedua-dua modul ini berfungsi untuk menghasilkan laman statik berbanding laman dinamik. Laman statik adalah yang paling laju dalam semua situasi.

Kedua-dua modul ini membolehkan setiap kali kandungan dipaparkan, capaian ke pangkalan data tidak dilakukan sebaliknya satu mekanisma untuk mengarah kandungan statik dipersembahkan berlaku. Sekiranya berlaku perubahan atau penambahan kandungan, halaman statik dalam simpanan akan dikemas kini secara automatis.

Modul ini tidak memerlukan penghosan web dilengkapi dengan pemecut tambahan seperti Nginx, eAccerelator atau Xcache. Sebaliknya ianya mengubah bentuk mekanisma sistem dinamik menjadi statik.

7. Kemas kini kod aturcara untuk templat dan "preprocessing"

Terma "preprocessing" dalam Drupal begitu sinonim sehingga terdapat pengguna yang memuatkan terlalu banyak kod aturcara dalam template.php untuk mengubah suai bentuk paparan Drupal asal. Elakkan dari kod-kod tersebut bercelaru, tidak mengikut corak penulisan yang ditegaskan dalam Drupal dan penghasilkan kod aturcara sendiri.

Terdapat pihak pembangun hanya mengambil langkah salin-dan-tampal secara terus kod-kod dari sumber bukan Drupal ke dalam fail-fail templat untuk mendapatkan kesan khas yang berlainan. Kemaskan kod tersebut agar tidak berlaku kesilapan dalam setiap baris.

8. Hidupkan ke semua fungsi "cache"

Drupal mampu untuk menyatukan ke semua fail-fail luaran terutamanya fail CSS dan JavaScript ke dalam satu fail sementara. Fungsi ini boleh di bahagian Administer Site configuration Performance.

Aktifkan "Caching mode", "Page compression", "Block cache" dan "Bandwidth optimization". Fungsi ini akan memecutkan Drupal ketahap 200% daripada keadaan biasa. Tapi kesan ini hanya untuk golongan tetamu sahaja tidak kepada pengguna berdaftar.

9. Kemaskini Drupal dan modul ke versi terbaru

Ini tersangat penting. Selain memastikan sistem laman berada dalam keadaan paling selamat, ianya memberi kesan kepada pemacuan Drupal itu sendiri. Modul versi-versi lama berkemungkinan mengandungi kod ralat yang menyebabkan pemprosesan berlaku lebih tinggi dari sepatutnya (secara teorinya).

Setiap kali ralat berlaku, lebih kurang lima tambahan permintaan akan berlaku yang sepatutnya tidak perlu dilakukan untuk direkod pada bahagian Administer Report Recent log entries. Modul dengan versi "-dev" perlu berhati-hati. Sungguhpun ianya boleh dipasang seperti biasa pada Drupal, kematangan kod modul tersebut masih belum tercapai.

Ianya mungkin akan mengganggu sistem modul lain untuk berfungsi dengan lancar.

10. Pemantauan berterusan

Bermula dari laman pertama kali dibangunkan sehingga sekarang, pastikan anda sentiasa memantau perkembangan laman. Kelajuan laman akan berkurangan apabila bilangan pelawat yang datang semakin ramai. Kadang kala yang datang bukan "pengunjung" sebenarnya sebaliknya mungkin Google bot, Yahoo bot atau MSN bot.

Penilaian: 
4
Average: 3.7 (3 votes)

Komen

wadai's picture

Ada ke tutorial cara2 setting modul boost? macam rumit je

------

http://adi.my

parasolx's picture
Admin

owh.. modul boost ek.. nanti saya akan cuba muatkan.
salah satu modul paling bagus untuk laman jenis blog.

------

Hadafi Solution & Resources: http://parasolx.net
Professional in Drupal web development, theme designing, consultation and training

parasolx's picture
Admin

tutorial untuk menggunakan modul boost telah disediakan. sila rujuk pada tutorial ini: http://kripkornstudios.com.my/drupal/tahap-3/modul-boost-pemecut-drupal

------

Hadafi Solution & Resources: http://parasolx.net
Professional in Drupal web development, theme designing, consultation and training

taruhan bola's picture

tambahan ilmu yang sangat bermanfaat dalam pemanfaatan sebuah blog

parasolx's picture
Admin

betul.. implementasi ini bukan sahaj untuk drupal tetapi boleh digunakan sebagai rujukan pada jenis2 laman web yang lain.

------

Hadafi Solution & Resources: http://parasolx.net
Professional in Drupal web development, theme designing, consultation and training