Thursday, 21 May 2026

Pantau Siswa AKtif QUiz, Pantau CPU, Pantau RAM

 root@cbt:~# while true; do echo "$(date '+%F %T') | $(mysql moodle -N -e "
SELECT COUNT(DISTINCT userid)
FROM mdl_logstore_standard_log
WHERE component='mod_quiz'
AND timecreated > UNIX_TIMESTAMP(NOW()) - 150;
")" >> quizlog.txt; sleep 10; done

lihatnya:
tail -f quizlog.txt 

 

Ya Guru 👍
Itu berarti di server cbt user Linux root sudah bisa login ke MariaDB tanpa password eksplisit.

Biasanya karena salah satu dari ini:


1. Plugin auth_socket / unix_socket

Paling sering di Debian/Ubuntu.

Artinya:

  • kalau login Linux sebagai root

  • otomatis boleh masuk MariaDB sebagai root

tanpa password.


Jadi command:

mysql moodle

langsung berhasil.


2. Ada konfigurasi otomatis

Misalnya:

  • /root/.my.cnf

  • credential tersimpan

  • atau socket authentication


Cara cek metode login

Masuk mysql:

mysql

Lalu:

SELECT user,host,plugin
FROM mysql.user;

Kalau hasilnya seperti:

userplugin
rootunix_socket

atau:

userplugin
rootauth_socket

berarti memang otomatis login lewat user Linux root.


Kenapa aman?

Karena:

  • hanya user Linux root yang bisa

  • bukan semua orang

Jadi:

  • SSH root dulu

  • baru mysql otomatis boleh.


Makanya command Guru langsung jalan

while true; do ...

karena:

  • mysql tidak perlu password

  • shell langsung bisa eksekusi query


Ini justru bagus untuk monitoring server

Karena:

  • script otomatis lebih mudah

  • cron job lebih simpel

  • tidak perlu simpan password plaintext


Saran tambahan bagus

Karena Guru sekarang punya logger realtime, saya sarankan nanti buat juga:

Monitor CPU

while true; do
echo "$(date '+%F %T') | $(uptime)"
sleep 10
done >> cpulog.txt

Monitor RAM

while true; do
echo "$(date '+%F %T') | $(free -m | awk '/Mem:/ {print $3 "/" $2 " MB"}')"
sleep 10
done >> ramlog.txt

Nanti bisa dibandingkan dengan:

  • quizlog.txt

  • jumlah siswa aktif

  • CPU

  • RAM

untuk mengetahui:

  • batas maksimum server CBT Guru

  • titik overload

  • waktu paling berat saat ujian berlangsung.

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Tidak terlalu memberatkan Guru 👍
Untuk server Moodle/CBT, ketiga loop itu sangat ringan dibanding beban quiz siswa.

Mari kita hitung.


1. Beban query quizlog

Command:

mysql moodle -N -e "SELECT COUNT(...) ..."

hanya:

  • 1 query kecil

  • tiap 10 detik

  • hanya hitung DISTINCT userid

Itu sangat ringan untuk MariaDB.


2. Beban uptime

uptime

hampir nol beban.

Karena cuma membaca:

  • load average

  • uptime server

dari kernel Linux.


3. Beban free -m

free -m

juga hampir nol.

Hanya membaca statistik RAM dari kernel.


Total sebenarnya

Guru menjalankan:

TaskInterval
query mysql10 detik
uptime10 detik
free -m10 detik

Artinya total:

  • sekitar 3 command / 10 detik

  • = 0.3 command per detik

Sangat kecil.


Dibanding beban Moodle nyata

1 siswa quiz Moodle bisa menghasilkan:

  • autosave

  • AJAX request

  • render halaman

  • session write

  • DB write

puluhan request per menit.


Kalau 50 siswa:

  • ratusan request per menit.

Jadi logger Guru jauh lebih ringan dibanding trafik Moodle itu sendiri.


Yang lebih berat justru:

Kalau Guru menjalankan:

  • top

  • iotop

  • tcpdump

  • tail log sangat besar

  • query JOIN kompleks

  • monitoring tiap 1 detik

baru mulai terasa.


Yang saya sarankan

Untuk aman:

quizlog

Tetap:

10 detik

CPU/RAM

Bisa:

30 detik

karena CPU/RAM tidak perlu sangat realtime.


Contoh lebih hemat:

CPU

while true; do
echo "$(date '+%F %T') | $(uptime)"
sleep 30
done >> cpulog.txt

RAM

while true; do
echo "$(date '+%F %T') | $(free -m | awk '/Mem:/ {print $3 "/" $2 " MB"}')"
sleep 30
done >> ramlog.txt

Kesimpulan

Dengan:

  • 50–60 siswa aktif

  • Debian CLI

  • Nginx

  • MariaDB

  • RAM 6 GB

ketiga logger itu:
✅ aman dijalankan bersamaan
✅ tidak signifikan membebani server
✅ sangat berguna untuk analisis performa CBT Moodle.

 

Share:

0 comments:

Post a Comment