Categories
Elearning Series

Setting Moodle Untuk Administrator atau Programmer

Daftar Isi

Tips

  1. Gunakan https
    • Lebih aman
    • Lebih stabil, terutama berhubungan dengan proxy
  2. Disarankan pengguna menggunakan Mozilla Firefox
  3. Buat nilai default untuk kuis, penugasan, forum dan sebagainya (lihat di sini)
  4. Tips untuk Quiz:
    • Buat 1 halaman 4 soal apabila soal berupa MCQ (multiple choice question). Hal ini terbukti membuat proses quiz menjadi lebih ringan.
    • Set waktu mulai ujian kurang dari waktu seharusnya untuk ujian yang terdapat banyak peserta, misalnya seharusnya mulai ujian jam 08:00, maka waktu mulai ujian dapat diatur jam 07:45. Hal tersebut bertujuan untuk memecah load server. Proses membuka dan menutup quiz relatif lebih berat, sedangkan apabila sudah terbuka soalnya maka akan relatif lebih ringan.
  5. Pantau kemampuan dan pengaturan server dari sisi database server dan web server. Gunakan teknologi server yang terbaik tetapi stabil, misalnya gunakan:
    • Nginx,
    • Apache dengan MPM Event
    • dan sebagainya
  6. Apabila Moodle berjalan lambat, bisa jadi bukan aplikasi web yang bermasalah, seperti Apache, Nginx, PHP dan sebagainya, tetapi bisa jadi yang bermasalah adalah basis datanya. Caranya adalah memonitor database untuk mencari slow query.

Slow Query Moodle

Slow query pada saat masuk ke Quiz

mencari slow query
ditemukan slow query pada
SELECT name,value FROM prefix_cache_flags WHERE flagtype = 'accesslib/dirtycontexts' AND expiry >= '1638410974' AND timemodified > '1638407075';
solusi pada permasalahan tersebut adalah menambah indeks pada expiry dan timemodified dengan perintah sebagai berikut
ALTER TABLE db.prefix_cache_flags
ADD INDEX idx_time (timemodified ASC, expiry ASC);

Untuk slow query lain dapat diselesaikan dengan cara yang hampir sama. Intinya adalah memaksimalkan penggunaan memori melalui index.

Slow query pada saat mengerjakan Quiz

ditemukan slow query pada
SELECT quba.id AS qubaid, quba.contextid, quba.component, quba.preferredbehaviour, qa.id AS questionattemptid, qa.questionusageid, qa.slot, qa.behaviour, qa.questionid, qa.variant, qa.maxmark, qa.minfraction, qa.maxfraction, qa.flagged, qa.questionsummary, qa.rightanswer, qa.responsesummary, qa.timemodified, qas.id AS attemptstepid, qas.sequencenumber, qas.state, qas.fraction, qas.timecreated, qas.userid, qasd.name, qasd.value FROM db.prefix_question_usages quba LEFT JOIN db.prefix_question_attempts qa ON qa.questionusageid = quba.id LEFT JOIN db.prefix_question_attempt_steps qas ON qas.questionattemptid = qa.id LEFT JOIN db.prefix_question_attempt_step_data qasd ON qasd.attemptstepid = qas.id WHERE quba.id = '10904' ORDER BY qa.slot, qas.sequencenumber
solusi pada permasalahan tersebut adalah menambah indeks pada mdl_question_attempts.slot dan mdl_question_attempt_steps.sequencenumber dengan perintah sebagai berikut
ALTER TABLE db.prefix_question_attempts
ADD INDEX idx_quesatte_slot (slot ASC);
ALTER TABLE db.prefix_question_attempt_steps
ADD INDEX idx_quesattestep_sec (sequencenumber ASC);

karena pada join sudah diindeks semua, sedangkan pada sort belum diindeks

Demikian, semoga bermanfaat. [bst]

By basit

Biro Pengembangan Teknologi Dan Sistem Informasi

2 replies on “Setting Moodle Untuk Administrator atau Programmer”

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.