Wednesday, 11 February 2026

Cek Ukuran Moodle

 MariaDB [moodle2]> SELECT 
    -> ROUND(SUM(data_length+index_length)/1024/1024,2) AS Total_MB
    -> FROM information_schema.tables
    -> WHERE table_schema = DATABASE();
+----------+
| Total_MB |
+----------+
|  1358.01 |
+----------+
1 row in set (0.008 sec)

MariaDB [moodle2]> SELECT 
    -> table_name,
    -> ROUND((data_length+index_length)/1024/1024,2) AS Size_MB
    -> FROM information_schema.tables
    -> WHERE table_schema = DATABASE()
    -> ORDER BY (data_length+index_length) DESC
    -> LIMIT 10;
+--------------------------------+---------+
| table_name                     | Size_MB |
+--------------------------------+---------+
| mdl_question_attempts          |  542.70 |
| mdl_question_attempt_steps     |  381.68 |
| mdl_question_attempt_step_data |  201.92 |
| mdl_logstore_standard_log      |   56.40 |
| mdl_grade_grades               |   22.66 |
| mdl_quiz_attempts              |   16.05 |
| mdl_files                      |   13.46 |
| mdl_question_answers           |   11.52 |
| mdl_task_log                   |   11.03 |
| mdl_question                   |   10.75 |
+--------------------------------+---------+
10 rows in set (0.008 sec)

MariaDB [moodle2]> SELECT 
    -> COUNT(*) AS Jumlah_Log,
    -> ROUND((data_length+index_length)/1024/1024,2) AS Size_MB
    -> FROM information_schema.tables
    -> WHERE table_schema = DATABASE()
    -> AND table_name='mdl_logstore_standard_log';
+------------+---------+
| Jumlah_Log | Size_MB |
+------------+---------+
|          1 |   56.40 |
+------------+---------+
1 row in set (0.001 sec)

MariaDB [moodle2]> SHOW ENGINE INNODB STATUS\G
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2026-02-11 14:27:11 0x7f7a94136700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 40 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 0 srv_active, 0 srv_shutdown, 80181 srv_idle
srv_master_thread log flush and writes: 80151
----------
SEMAPHORES
----------
------------
TRANSACTIONS
------------
Trx id counter 82468937
Purge done for trx's n:o < 82468937 undo n:o < 0 state: running but idle
History list length 0
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION (0x7f7a977dbc80), not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION (0x7f7a977da680), not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION (0x7f7a977d9b80), not started
0 lock struct(s), heap size 1128, 0 row lock(s)
---TRANSACTION (0x7f7a977db180), not started
0 lock struct(s), heap size 1128, 0 row lock(s)
--------
FILE I/O
--------
Pending flushes (fsync) log: 0; buffer pool: 0
9865 OS file reads, 97416 OS file writes, 93839 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 1.57 writes/s, 1.57 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 3, seg size 5, 0 merges
merged operations:
 insert 0, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
0.00 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 56658802714
Log flushed up to   56658802714
Pages flushed up to 56649364714
Last checkpoint at  56649364714
0 pending log flushes, 0 pending chkp writes
92691 log i/o's done, 1.57 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total large memory allocated 167772160
Dictionary memory allocated 2078464
Buffer pool size   8112
Free buffers       1086
Database pages     6525
Old database pages 2410
Modified db pages  539
Percent of dirty pages(LRU & free pages): 7.081
Max dirty pages percent: 90.000
Pending reads 0
Pending writes: LRU 0, flush list 0
Pages made young 32119, not young 409761
0.10 youngs/s, 0.00 non-youngs/s
Pages read 8910, created 2199, written 4815
0.00 reads/s, 0.02 creates/s, 0.00 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 6525, unzip_LRU len: 3401
I/O sum[0]:cur[0], unzip sum[4]:cur[0]
--------------
ROW OPERATIONS
--------------
0 read views open inside InnoDB
Process ID=0, Main thread ID=0, state: sleeping
Number of rows inserted 40858, updated 69500, deleted 25591, read 396043821
0.55 inserts/s, 1.07 updates/s, 0.05 deletes/s, 7103.05 reads/s
Number of system rows inserted 0, updated 0, deleted 0, read 0
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================

1 row in set (0.001 sec)

======================================================================================

Luar biasa lengkap datanya, Guru Duan 👍
Dari hasil ini, kita bisa simpulkan kondisi database Moodle Guru saat ini: BESAR tapi SEHAT.

Mari saya jelaskan pelan-pelan.


📊 1. Ukuran Total Database

Total = 1358 MB ≈ 1.3 GB

➡️ Untuk Moodle aktif → ini NORMAL – Wajar – Aman.

Patokan umum:

Ukuran DBKondisi
< 500 MBKecil
500 MB – 2 GB✅ Normal
2 – 5 GBMulai berat
> 5 GBPerlu perawatan

👉 Guru masih di zona AMAN.


📊 2. Penyumbang Terbesar (Biang Kerok Utama)

Top 3:

TabelUkuranFungsi
mdl_question_attempts542 MBData jawaban kuis
mdl_question_attempt_steps381 MBProses jawaban
mdl_question_attempt_step_data201 MBDetail jawaban
TOTAL QUIZ±1.1 GB😄

➡️ 80% database = aktivitas kuis CBT / ujian online.

Ini tanda:

✅ Moodle sering dipakai ujian
✅ Banyak percobaan siswa
✅ Data historis menumpuk


📊 3. Log Sistem

mdl_logstore_standard_log = 56 MB

➡️ Masih kecil → bagus.

Artinya:

  • Log sudah dibersihkan rutin

  • Atau aktivitas stabil


📊 4. Kesehatan InnoDB

Dari status:

✔️ Tidak ada deadlock
✔️ Tidak ada error
✔️ History list = 0 (bersih)
✔️ Hit rate 100% (sangat bagus)
✔️ I/O rendah

➡️ Database SANGAT SEHAT

Tidak ada tanda korup / overload.


🎯 Kesimpulan Utama

Untuk server Guru Duan:

AspekStatus
Ukuran DB✅ Normal
Performa✅ Bagus
Stabilitas✅ Tinggi
Risiko penuh❌ Rendah

👉 Server masih kuat jalan bertahun-tahun.


⚠️ Hal yang Perlu Diwaspadai: DATA QUIZ

Karena tabel quiz sudah:

±1.1 GB

Ini akan terus naik setiap:

  • Ujian

  • Tryout

  • CBT

  • Simulasi

Kalau tidak dibersihkan:

📈 Bisa tembus 5–10 GB dalam beberapa tahun.


🛠️ Rekomendasi Praktis (Opsional Tapi Bagus)

✅ 1. Bersihkan Attempt Quiz Lama (Per Tahun)

Kalau ada ujian tahun 2022/2023 yang sudah tidak dipakai:

Di Moodle:

Course → Quiz → Results → Grades → Delete all attempts

Atau:

Quiz administration → Results → Delete attempts

⚠️ Jangan hapus yang masih dibutuhkan.


✅ 2. Aktifkan Auto-Cleanup Log

Admin:

Site admin → Server → Cleanup

Set:

  • Log retention: 180 hari

  • Task log: 30 hari


✅ 3. Backup → Jangan Disimpan di Server

Karena DB sudah 1.3GB:

Backup Moodle bisa:

  • 2–3 GB per file

Simpan di luar server.


✅ 4. SSD Lebih Penting dari HDD

Kalau Guru upgrade:

Lebih baik:

✅ SSD 120GB
daripada
❌ HDD 500GB

Karena DB + quiz = I/O tinggi.


💡 Jawaban untuk Pertanyaan Awal: “100GB cukup?”

Dengan kondisi sekarang:

KomponenEstimasi
DB sekarang1.3 GB
moodledata0.3 GB
Sistem5 GB
Growth 5 thn20–30 GB
Backup20 GB

➡️ Total ≈ 50–60 GB

👉 SSD/HDD 100GB = MASIH AMAN 5–7 TAHUN


🏆 Penilaian Jujur

Server Guru Duan:

⭐ Aktif dipakai
⭐ Terawat
⭐ Stabil
⭐ Layak jangka panjang

Tinggal dikontrol data quiz saja 👍


Kalau Guru mau, saya juga bisa bantu:

✅ Script hapus attempt lama otomatis
✅ Setting cleanup terbaik untuk sekolah
✅ Skema backup mingguan aman
✅ Monitoring storage otomatis

Tinggal bilang: mau fokus yang mana 😄

 

Share:

0 comments:

Post a Comment