Catatan Saya di Kasus Ini

Beberapa catatan sebelum mengikuti tutorial ini

  1. Saya menggunakan Rocky linux. Kasus ini kemungkinan bisa terjadi di semua Redhat based OS (Redhat, CentOS, Rocky, Alma, dll)

  2. Kenapa Rocky? Alasan utama nya karena hanya OS Redhat based yang menggunakan XFS di cloud provider saya. Sesuai dengan rekomendasi dari dokumentasi mongodb, disarankan menggunakan XFS untuk performa optimal . Kenapa ga CentOS? CentOS stream ga stabil, sekalian aja saya nyoba Rocky.

  3. VPS saya punya 16 GB RAM dan service mongod hampir menggunakan seluruh kapasitas RAM hingga sering mengakibatkan service mongod mati bahkan merusak replica-set!

  4. Saya sudah batasi penggunaan memory di mongo config (/etc/mongod.conf) tapi ga ngaruh sama sekali

storage:
  wiredTiger:
    engineConfig:
      cacheSizeGB: 13
  1. SELinux dalam kondisi disable

  2. Sudah config mongodb log rotate

  3. Menggunakan MongoDB CE versi 5.xx


Cara yang Benar-Benar Bisa Limit Memory Service Mongod

Cara ini saya dapat dari percona blog - using cgroups to limit mysql & mongodb , langsung ya ikutin tutorialnya

  1. Install paket Cgroups
yum -y install libcgroup libcgroup-tools
systemctl start cgconfig #start service cgroups
systemctl enable cgconfig  #enable cgroups at boot
  1. Buat control group DBLimitedGroup
cgcreate -g memory:DBLimitedGroup
  1. Limit pengunaan memory DBLimitedGroup. Untuk VPS saya yang punya RAM 16GB, saya kasih aman saja 13GB.
echo 13G > /sys/fs/cgroup/memory/DBLimitedGroup/memory.limit_in_bytes
Otomatis ke Konversi ke Bytes

Otomatis ke Konversi ke Bytes

  1. Clear cache mongod
sync; echo 3 > /proc/sys/vm/drop_caches
  1. Masukan process ID mongod ke group DBLimitedGroup
#`pidof mongod` was used to get mongod process ID
cgclassify -g memory:DBLimitedGroup `pidof mongod`
  1. Reboot VPS

Cara Lain Untuk Mengurangi Memory Usage

  1. Disable mongo log

    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      #change to /dev/null
      path: /dev/null
    

    Restart your mongo after change this value


Sumber:

percona blog - using cgroups to limit mysql & mongodb


Jika kamu merasa tulisan ini bermanfaat & membantu kamu, kamu bisa berdonasi lewat saweria

If you feel this website help you, you can donate at saweria