Ubuntu locks up when swap full
Yes that is what happens when you run out of memory/swap. On the other hand I would have expected that Ubuntu starts killing random processes, desperately trying not to crash. It is a configuration somewhere in the system, but once out of memory there it is unsafe for your filesystem to keep running. So the most sane thing is to halt the system, trying not to corrupt any (more) data.
You have to figure out why you run out of memory, which application causes this to happen. top
or htop
can help you with that. htop probably needs to be installed with sudo apt-get install htop
. The advantage of htop
is that you can easily point and click on the column header you want to sort by.
If you can't eleminate the program, your best bet is to add extra RAM, but that costs money. Your second best bet is increasing swap space, but that costs performance.
As a temporary work around (until next reboot) you can test if this works:
- Find a filesystem with a lot of free space. On most default installs
/tmp
will dodf -h /tmp
. At least several GB's should be free. - Create a large file (eg. 1M × 2000 = 2GB)
dd if=/dev/zero of=/tmp/extra.swap bs=1M count=2000
- Initialise the file as swap space
mkswap /tmp/extra.swap
- Start using the file as swap space
sudo swapon /tmp/extra.swap
If this is working for you, you'll have to look into making a more definitive solution out of this.
Related videos on Youtube
nanofarad
Updated on September 18, 2022Comments
-
nanofarad over 1 year
I have a Ubuntu system running xfce and 2 GB RAM. I have a 1GB swap file which, when multitasking begins to fill up. When I have even a small amount of free swap, I have no issues, but the second the swap fills, the system locks up. Not even the mouse will move, although, I am able to use [Alt]+[SysRq]+[K] to kill xfce, which still necessitates a reboot to get up and running again. I will provide more system details if they are needed. Thanks in advance.
-
nanofarad about 12 yearsDoes
mkswap /tmp/extra.swap
need to be run as root? -
jippie about 12 yearsNot on my system, as long as you executed the dd as an unprivileged user too. Coming to think of it, as a safety measure, best is to do all these three commands as root (using
sudo
) so you cannot accidentally write to it. Just a safety measure. -
nanofarad about 12 yearsI have quite a bit of physical mem left when it locks up...
-
jippie about 12 yearsCan you share the output of
free
when swap fills up? -
nanofarad about 12 yearsIf's not a full lockup, it's just the OOM killer doing its job, and removing my swap actually lets me use more memory before a lockup... Also I can't show the output of
free
, as I can't see my virtual consoles...+ -
jippie about 12 yearsYou have to figure out which application is causing this. Use
htop
as described above. Or make a batch job that logs the output oftop
,free
anddstat
to a file. -
nanofarad about 12 years