Tag-arkiv: Linux

Linux – sådan sættes der memory limit på ZFS

Vi benytter ZFS som filsystem på nogle af vores diske på en server til backupformål fordi det er et robust filsystem som er nemt at bruge, har understøttelses for snapshots og compression, det kan spare en masse plads men samtidig give en god mulighed for at gå tilbage i tiden og genskabe

Men ZFS kan godt æde alt RAM på maskinen, i vores tilfælde snuppede den 14 GB ud af de 16 der var på vores server til backups og interne opgaver og da den samme maskine bruges til andet også, så er det uhensigsmæssigt, i vores tilfælde bliver backuppen kun kørt om natten og der er ikke behov for at så meget caches i RAM.

Man kan heldigvis ændre på hvor meget ZFS skal bruge og det gør ikke serveren ustabil, der er bare det mindre i cache, så det kan betyde lidt på performance når man skal læse filer ud, men da det er til backup, så er det mest skrivninger vi har til den pulje af diske.

Sådan sætter du en lavere værdi på ZFS ARC cache.

Standard ser således ud på en Ubuntu 20.04 LTS Server:

Nye værdier sættes med:

sudo echo "# Min 512MB / Max 2048 MB Limit" > /etc/modprobe.d/zfs.conf
sudo echo "options zfs zfs_arc_min=536870912" >> /etc/modprobe.d/zfs.conf
sudo echo "options zfs zfs_arc_max=2147483648" >> /etc/modprobe.d/zfs.conf
sudo update-initramfs -u
sudo reboot # genstarter systemet

Det er normalt der ikke er en zfs.conf i forvejen.

Efter de nye værdier er sat er ramforbruget meget mindre, men der caches stadig en del også af Linux på andre partitioner hvor der ikke er ZFS så RAM forbruget kan stadig bygges op, men så er det ikke ZFS der er synderen.

Du kan droppe linux systemets cache således

sync; echo 3 > /proc/sys/vm/drop_caches 

Ingen reboot er nødvendig, den sidste kommando her kan også ligges i en crontab, det kan være en fordel i virtuelle miljøer så host maskinens RAM ikke bliver brugt på en masse filcache sine VM’s