A computer or server suddenly freezes or crashes. You don't know what the problem is and you really need to complete this task. One of the options is to consider memory. You might have just run out. To confirm this, you can monitor memory usage using the htop command while the operation is running. This has occured to me multiple times, most recently while installing tor using yaourt, compiling a nodejs project and compiling hledger.
To fix this, one needs to increase the size of swap. Swap is the portion of the hard disk that the OS will use when memory runs out, like some form of virtual memory. It is usually existent on most linux installations (You probably set one yourself), but you can increase this to cater for this unique situation.
So to do this, first allocate some diskspace that will be used for this task. This saves us this space and it cannot be used for any other task. Afterwards change the ownership and permissions of the allocated space, then set it up as a linux swap space and finally enable it so that the OS can use it for swapping..
sudo fallocate -l 10G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile swapon /swapfile
Then, you can run whatever task was failing/crashing. After the task successfully runs, you might want to disable this new space. To do that:
swapoff -a rm -f /swapfile
To improve performance, one can try to experiment with the virtual memory subsystem. More on this can be found in the documentation for vm. For example, I tried this:
sudo sysctl vm.swappiness=10 sudo sysctl vm.vfs_cache_pressure=50
To make the changes permanent, one can try this:
sudo cp /etc/fstab /etc/fstab.bak #create backup just in case something fails echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
The source for these commands is from the archlinux_wiki