
Estou executando um processo de carregamento de banco de dados (osm2pgsql) que está falhando:
Processing: Node(17404k 148.8k/s) Way(1351k 6.38k/s) Relation(9520 29.94/s)way_done failed: ERROR: could not extend file "base/140667/152463": No space left on device
HINT: Check free disk space.
(7)
Arguments were: 187226311,
No início da importação, mem
os relatórios:
total used free shared buffers cached
Mem: 31G 29G 2.4G 0B 178M 24G
-/+ buffers/cache: 4.5G 26G
Swap: 0B 0B 0B
Pouco antes do fim:
total used free shared buffers cached
Mem: 31G 31G 227M 0B 178M 26G
-/+ buffers/cache: 4.8G 26G
Swap: 0B 0B 0B
Enquanto isso, df
no início:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10309828 7879412 1997036 80% /
udev 16470572 12 16470560 1% /dev
tmpfs 6590080 260 6589820 1% /run
none 5120 0 5120 0% /run/lock
none 16475196 0 16475196 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/vdb 247709760 105978300 129148548 46% /mnt
E a partir de cerca de 3/4 do processo. O uso fica em 100%.
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10309828 9854348 22100 100% /
udev 16470572 12 16470560 1% /dev
tmpfs 6590080 260 6589820 1% /run
none 5120 0 5120 0% /run/lock
none 16475196 0 16475196 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/vdb 247709760 105978300 129148548 46% /mnt
Não consigo identificar nenhum arquivo real no disco que esteja preenchendo /dev/vda1:
du -h -d 3 / 2>/dev/null | grep -v ^0 > /tmp/o2p1.txt
[start import]
du -h -d 3 / 2>/dev/null | grep -v ^0 > /tmp/o2p2.txt
diff /tmp/o2p1.txt /tmp/o2p2.txt
Isso não revela nada.
O que está acontecendo?
Responder1
Ok, foi simples. O banco de dados Postgres estava em /dev/vda1 e estava ficando enorme. Não apareceu no du
comando porque eu não estava executando como root.
Acho que depois que o disco fica cheio, o Postgres para de salvar no disco e mantém tudo na memória - até que a memória também acabe.