Don't have enough RAM memory on server? Let's create a swapfile!
I’m running a simple instance on DigitalOcean with 512MB of RAM. So, what happens is when I try to update composer to install a new dependency on my symfony2 project, the composer got killed. Why? Well.. composer is always starving and his food is RAM memory. Yeah, it’s a ram memory destroyer. So, let’s fix this creating an extra 1GB Swapfile because we have 20GB of storage in our instance!
- Let’s check how many available space we have in our root partition / (In my case 16GB)
df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 2.8G 16G 15% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 235M 4.0K 235M 1% /dev tmpfs 50M 360K 49M 1% /run none 5.0M 0 5.0M 0% /run/lock none 246M 0 246M 0% /run/shm none 100M 0 100M 0% /run/user
- Now, let’s create an empty 1GB file on / with the name swapfile
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 4.57631 s, 235 MB/s
- If everything ran well, we have 1GB less on our / partition. Let’s verify?
df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 3.8G 15G 21% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 235M 4.0K 235M 1% /dev tmpfs 50M 360K 49M 1% /run none 5.0M 0 5.0M 0% /run/lock none 246M 0 246M 0% /run/shm none 100M 0 100M 0% /run/user
- Yeah! Now, let’s change from a single and normal file to a swap file! And then add on /etc/fstab to make it automatically started when boot the server.
sudo mkswap /swapfile Setting up swapspace version 1, size = 1048572 KiB no label, UUID=a418b9f4-c4fc-4d8f-87ff-d924e33203cf
sudo swapon /swapfile echo 'echo "/swapfile none swap defaults 0 0" >> /etc/fstab' | sudo sh
- We can confirm that we have a new swap with 1024GB:
free -m total used free shared buffers cached Mem: 490 483 6 50 2 298 -/+ buffers/cache: 182 307 Swap: 1023 0 1023
Now we can run our php composer.phar update with no “Killed” messages!