The problem: my /tmp is always full.
I manually deleted stuff from it (it's generally safe) and also from /var/tmp (which might not be that safe) but this didn't help. It turned out the problem is that systemd mounts /tmp into the RAM trough tmpfs (or at least I understand it so, I might be wrong). So even though /tmp as a directory is empty, it's still full somewhere on the RAM. Which creates problems, because even though I have plenty of RAM, the system thinks your tmpfs is full, because its size is the one written in /etc/fstab
.
One thing to do is to change the memory limit to a higher number, but this makes sense only if you know how to reset the tmpfs. Well, it turned out there is a way.
Zero step: check with:
$df
that the problem is indeed in /tmp and not that your disk is simply full.
Then, first before deleting anything, check that there's nothing important in your running apps that needs it. You can do:
$lsof /tmp
$fuser -m /tmp
To see what is currently using the /tmp directory. I guess it's a good idea to stop those processes before proceeding.
In mode details:
jane@linux $ fuser -m /tmp
/tmp: 2229 2258 3869c 6464 13163m 21380
jane@linux $ ps auxw|grep 21380
jane 7241 0.0 0.0 92088 2448 pts/1 S+ 16:31 0:00 grep --colour=auto 21380
jane 8456 1.5 2.0 1856540 341412 ? Sl Jul28 46:02 /usr/lib64/firefox/plugin-container /usr/lib64/nsbrowser/plugins/libflashplayer.so -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appdir /usr/lib64/firefox/browser 21380 plugin
jane 21380 12.9 23.8 5670228 3889432 ? Rl Jul28 395:20 /usr/bin/firefox
Then you kill whatever is on your way.
Afterwards, you need to become
$su
And then
$umount -l /tmp/
$mount /tmp/
And ideally, you're a happy person. This should work safely, but still, it's a good idea to close or save anything important for you before umounting /tmp.
Btw, there is a way to turn off the mounting of the tmpfs to RAM by:
echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp
but people are not recommending that and I didn't do it.
You can also mount /tmp with:
$mount -t tmpfs -o size=1048576,mode=1777 overflow /tmp
where the size should be whatever you like. Which probably is the better way to mount it, because automatically, it mount is with size=8156484, which probably is related to the amount of free RAM, but I'm not sure.
You can check your free RAM with:
$free -m -t
I manually deleted stuff from it (it's generally safe) and also from /var/tmp (which might not be that safe) but this didn't help. It turned out the problem is that systemd mounts /tmp into the RAM trough tmpfs (or at least I understand it so, I might be wrong). So even though /tmp as a directory is empty, it's still full somewhere on the RAM. Which creates problems, because even though I have plenty of RAM, the system thinks your tmpfs is full, because its size is the one written in /etc/fstab
.
One thing to do is to change the memory limit to a higher number, but this makes sense only if you know how to reset the tmpfs. Well, it turned out there is a way.
Zero step: check with:
$df
that the problem is indeed in /tmp and not that your disk is simply full.
Then, first before deleting anything, check that there's nothing important in your running apps that needs it. You can do:
$lsof /tmp
$fuser -m /tmp
To see what is currently using the /tmp directory. I guess it's a good idea to stop those processes before proceeding.
In mode details:
jane@linux $ fuser -m /tmp
/tmp: 2229 2258 3869c 6464 13163m 21380
jane@linux $ ps auxw|grep 21380
jane 7241 0.0 0.0 92088 2448 pts/1 S+ 16:31 0:00 grep --colour=auto 21380
jane 8456 1.5 2.0 1856540 341412 ? Sl Jul28 46:02 /usr/lib64/firefox/plugin-container /usr/lib64/nsbrowser/plugins/libflashplayer.so -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appdir /usr/lib64/firefox/browser 21380 plugin
jane 21380 12.9 23.8 5670228 3889432 ? Rl Jul28 395:20 /usr/bin/firefox
Then you kill whatever is on your way.
Afterwards, you need to become
$su
And then
$umount -l /tmp/
$mount /tmp/
And ideally, you're a happy person. This should work safely, but still, it's a good idea to close or save anything important for you before umounting /tmp.
Btw, there is a way to turn off the mounting of the tmpfs to RAM by:
echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp
but people are not recommending that and I didn't do it.
You can also mount /tmp with:
$mount -t tmpfs -o size=1048576,mode=1777 overflow /tmp
where the size should be whatever you like. Which probably is the better way to mount it, because automatically, it mount is with size=8156484, which probably is related to the amount of free RAM, but I'm not sure.
You can check your free RAM with:
$free -m -t
I did $umount -l /tmp/ and than $mount /tmp/ but I got this error:
ОтговорИзтриванеmount: can't find /tmp/ in /etc/fstab
What now???