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
roototomatis boleh masuk MariaDB sebagai
root
tanpa password.
Jadi command:
mysql moodle
langsung berhasil.
2. Ada konfigurasi otomatis
Misalnya:
/root/.my.cnfcredential tersimpan
atau socket authentication
Cara cek metode login
Masuk mysql:
mysql
Lalu:
SELECT user,host,plugin
FROM mysql.user;
Kalau hasilnya seperti:
| user | plugin |
|---|---|
| root | unix_socket |
atau:
| user | plugin |
|---|---|
| root | auth_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.txtjumlah 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:
| Task | Interval |
|---|---|
| query mysql | 10 detik |
| uptime | 10 detik |
| free -m | 10 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:
topiotoptcpdumptail 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.
0 comments:
Post a Comment