Op mijn Ubuntu VPS standaard installatie krijg ik vaak out of swap memory fouten bij het werken met composer. Vaak draait er nog een detached screen sessie met Gulp, Vim en Midnight Commander op de achtergrond en het beindigen daarvan helpt niet zelden. Maar optimaal is het niet en het moet beter kunnen. Mijn VPS beschikt over 2Gb RAM terwijl de swapfile (ja geen partitie op dit VPS) slechts 1Gb is.
free total used free shared buff/cache available Mem: 2041060 514472 1155096 121960 371492 1249636 Swap: 1021446 1021446 0
Zelf heb ik mijn swap partities altijd even groot als de hoeveelheid RAM geheugen die ik heb geïnstalleerd en dus ligt het voor de hand de swap grootte te verhogen naar 2Gb. Dat gaat als volgt:
Swap uitzetten met:
sudo swapoff -a
De swapfile vergroten (of in feite opnieuw aanmaken):
sudo dd if=/dev/zero of=/swapfile bs=1M count=2000
De swapfile formatteren als swap:
sudo mkswap /swapfile
en tenslotte activeren:
sudo swapon /swapfile
En zie het resultaat
free total used free shared buff/cache available Mem: 2041060 514472 1155096 121960 371492 1249636 Swap: 2047996 0 2047996
Composer werkt nu als een zonnetje zelfs met meerdere verloren screen sessies tegelijkertijd op de achtergrond.
Permanent maken
Om deze swap permanent te maken moet die worden toegevoegd aan /etc/fstab:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Verdere optimalisatie
Swappiness verlagen
Vraag de swappiness waarde van het systeem op met:
cat /proc/sys/vm/swappiness
Voor desktops is een swappiness van 60 prima maar voor servers kan deze omlaag worden gebracht naar 10
sudo sysctl vm.swappiness=10
Aanpassen Cache Pressure
Vraag de huidige waarde op met:
cat /proc/sys/vm/vfs_cache_pressure
Voor servers is een waarde van 50 aanbevolen:
sudo sysctl vm.vfs_cache_pressure=50
Om de waarden permanent te maken:
sudo vim /etc/sysctl.conf
en voeg de volgende regels toe:
vm.swappiness=10
vm.vfs_cache_pressure=50