Какой нужен процессор - любой 2-х ядерный. При конвертации работает только диск.
Сколько нужно памяти - от 4Гб.
osm2pgsql очень лояльно относится к свопу, поэтому без боязни запускаем
Код: Выделить всё
time bzcat /home/PlanetOSM/planet-111214.osm.bz2 | osm2pgsql -d gis -m -s -U gis -C 16384 -H localhost /dev/stdin
Из вышеприведеного наблюдения получается что нужно создать кэш на 16Gb. На FreeBSD нужно подкручивать параметр kern.maxswzone. По умолчанию kern.maxswzone="32M", что хватает для 7 Гб свопа (по разным оценкам в инете). Значит этот параметр нужно увеличить до 96Мб
Код: Выделить всё
/boot/loader.conf
kern.maxswzone="96M"
reboot
При этом на SSD выделяем 16Гб для SWAP файла.
Как сэкономить место на диске - можно включить компрессию ZFS. Компрессия может увеличить время работы программы раза в 1,5..2 (но не в 10).
Базу нужно размещать на SSD, т.к. финт со свопом PostgreSQL не воспринимает. При построении индексов PostgreSQL создает такой рандомный акцесс к диску, что никакой кэш не помогает (я выделял ZFS 40Гб SSD кэша - не помогло).
PostgreSQL можно затюнить:
Код: Выделить всё
maintenance_work_mem = 2048Gb # min 1MB
Если SWAP разместить на SSD, а базу на SATA, работать конвертация будет 4 суток. Если все разместить на SSD - думаю, что за 2 суток точно справится.