Сколько дней ждать osm2pgsql ?

IlVin
Новоприбывший
Сообщения: 11
Зарегистрирован: 21 ноя 2011, 12:14
Репутация: 0

Re: Сколько дней ждать osm2pgsql ?

Сообщение IlVin » 27 дек 2011, 05:46

Целый месяц я потратил на подбор оптимальных параметров для osm2pgsql и делюсь своими наблюдениями:

Какой нужен процессор - любой 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 кэша отдавать osm2pgsql не надо - этого достаточно

Из вышеприведеного наблюдения получается что нужно создать кэш на 16Gb. На FreeBSD нужно подкручивать параметр kern.maxswzone. По умолчанию kern.maxswzone="32M", что хватает для 7 Гб свопа (по разным оценкам в инете). Значит этот параметр нужно увеличить до 96Мб

Код: Выделить всё

/boot/loader.conf
kern.maxswzone="96M"
reboot
Все бенчмарки в Инете и мой опыт говорят, что без SSD совсем туго. Какого объема нужен SSD - 256Gb минимальный размер, так как база на данный момент занимает поряда 240Gb.
При этом на SSD выделяем 16Гб для SWAP файла.

Как сэкономить место на диске - можно включить компрессию ZFS. Компрессия может увеличить время работы программы раза в 1,5..2 (но не в 10).

Базу нужно размещать на SSD, т.к. финт со свопом PostgreSQL не воспринимает. При построении индексов PostgreSQL создает такой рандомный акцесс к диску, что никакой кэш не помогает (я выделял ZFS 40Гб SSD кэша - не помогло).
PostgreSQL можно затюнить:

Код: Выделить всё

maintenance_work_mem = 2048Gb   # min 1MB
Этот параметр регламентирует объем памяти, который PostgreSQL может задействовать для служебных целей, например, для построения индексов. В нашем случае имеет смысл отдать от 50% до 75% RAM.

Если SWAP разместить на SSD, а базу на SATA, работать конвертация будет 4 суток. Если все разместить на SSD - думаю, что за 2 суток точно справится.

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей