tmpfs out of space (ZFS related?)
Gleb Kurtsou
gleb.kurtsou at gmail.com
Mon Nov 22 10:50:11 UTC 2010
On (21/11/2010 22:22), Ivan Voras wrote:
> I got a curious error today while starting PostgreSQL, complaining about
> "out of space" errno while creating lock file on /tmp.
>
> /tmp on this machine is mounted as tmpfs and indeed, here is the statistic:
>
> biggie:/# df -i
> Filesystem 1M-blocks Used Avail Capacity iused ifree %iused
> Mounted on
> /dev/mfid0s1a 9912 5193 3926 57% 306079 1012831 23% /
> devfs 0 0 0 100% 0 0 100% /dev
> fdescfs 0 0 0 100% 4 11092 0%
> /dev/fd
> tmpfs 0 0 0 100% 9 0 100% /tmp
> tank 376044 0 376044 0% 4 770138347 0% /tank
> tank/ports 376658 614 376044 0% 145919 770138347 0%
> /usr/ports
> tank/mysql 376073 29 376044 0% 102 770138347 0%
> /var/db/mysql
> tank/pgdata90 400469 24425 376044 6% 1047 770138347 0%
> /tank/pgdata90
>
> On the other hand, "top" reports this:
>
> last pid: 79667; load averages: 0.08, 0.68, 0.77 up 1+09:12:13
> 00:11:33
> 44 processes: 1 running, 43 sleeping
> CPU: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
> Mem: 13M Active, 46M Inact, 15G Wired, 232K Cache, 1458M Buf, 8358M Free
> Swap: 1024M Total, 1024M Free
>
> Note the "8358M free" report.
That's probably integer overflow, could you try specifying max
size as mount option. There was a series of integer overflows in tmpfs.
Used and available are 0 in df output. On my system I have:
% df
Filesystem Size Used Avail Capacity Mounted on
tmpfs 4.3G 4.0K 4.3G 0% /usr/obj/ports
Also note, that tmpfs does somewhat weired thing on constantly
recalculating available space based on free memory/swap (not sure if
specifying max size would fix it).
Did you try double copy elimination patch by kib@?
http://lists.freebsd.org/pipermail/freebsd-fs/2010-June/008786.html
It doesn't apply cleanly to current any more, but fixing it shouldn't be
hard. The patch wouldn't fix this particular issue but looks very
promising.
Thanks,
Gleb
> The server has ZFS and was doing IO intensive database work on it; the 8
> GB free memory comes from PostgreSQL being restarted and freeing the
> memory (but failing to start again...).
>
> Starting PostgreSQL gets me this message:
> Nov 22 00:18:24 biggie postgres[79696]: [1-1] FATAL: could not write
> lock file "/tmp/.s.PGSQL.5432.lock": No space left on device
>
> This is 8-STABLE amd64.
>
> Running "touch /tmp/abc" works, and creates a file. Running "echo abc >
> /tmp/abc" doesn't return an error but *doesn't write anything to the
> file*, just creates a directory entry.
>
> The status doesn't change over time, i.e. "df" on tmpfs always shows "0
> free".
>
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current
mailing list