... | @@ -10,16 +10,45 @@ |
... | @@ -10,16 +10,45 @@ |
|
Во время загрузки карт самым узким местом является дисковая подсистема т.к. во время загрузки выполняется операция поиска связей.
|
|
Во время загрузки карт самым узким местом является дисковая подсистема т.к. во время загрузки выполняется операция поиска связей.
|
|
На 03.2018 самым производительным вариантом является ФС f2fs / xfs и io scheduler CFQ.
|
|
На 03.2018 самым производительным вариантом является ФС f2fs / xfs и io scheduler CFQ.
|
|
|
|
|
|
|
|
Полезные команды
|
|
```bash
|
|
```bash
|
|
apt-get install f2fs-tools # Ставим необходимые пакеты
|
|
apt-get install f2fs-tools # Ставим необходимые пакеты
|
|
mkfs.f2fs -l osm /dev/sdxY # Размечаем файловую системы на указанном диске
|
|
mkfs.f2fs -l osm /dev/sdxY # Размечаем файловую системы на указанном диске
|
|
/dev/sdxY /mnt/osm/ default,discard 0,0 # Прописываем монтирование при загрузке
|
|
echo "/dev/sdxY /mnt/osm/ default,discard 0,0" >> /etc/fstab.conf # Прописываем монтирование при загрузке в fstab
|
|
mount -a # Монтируем раздел
|
|
mount -a # Монтируем раздел
|
|
|
|
echo cfq > /sys/block/sdx/queue/scheduler # Установить планировщик cfq
|
|
|
|
cat /sys/block/sdx/queue/scheduler # проверить планировщик
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Так же можно разделить данные. Файл для flatnodes хранить на одном физическом диске, а базу на другом.
|
|
|
|
|
|
## Настройка базы ##
|
|
## Настройка базы ##
|
|
|
|
|
|
|
|
Настройки для postgresql.conf только на время загрузки данных в базу
|
|
|
|
```
|
|
|
|
shared_buffers = 8MB
|
|
|
|
work_mem = 1MB
|
|
|
|
maintenance_work_mem = 4096MB
|
|
|
|
synchronous_commits = off
|
|
|
|
fsync = off
|
|
|
|
checkpoint_segments = 60
|
|
|
|
random_page_cost = 1.1
|
|
|
|
effective_io_concurrency = 2
|
|
|
|
max_worker_processes = 8
|
|
|
|
max_parallel_workers_per_gather = 4
|
|
|
|
max_wal_size = 8GB
|
|
|
|
min_wal_size = 4GB
|
|
|
|
checkpoint_completion_target = 0.9
|
|
|
|
autovacuum = on
|
|
|
|
```
|
|
|
|
|
|
|
|
Настройки при создании базы
|
|
|
|
```sql
|
|
|
|
CREATE USER siriuso WITH password 'siriuso';
|
|
|
|
CREATE DATABASE IF NOT EXIST osm OWNER siriuso;
|
|
|
|
CREATE EXTENSION IF NOT EXIST postgis;
|
|
|
|
CREATE EXTENSION IF NOT EXIST hstore;
|
|
|
|
```
|
|
|
|
|
|
## Загрузка базы OSM ##
|
|
## Загрузка базы OSM ##
|
|
Загрузка данных в базу выполняется через утилиту osm2pgsql
|
|
Загрузка данных в базу выполняется через утилиту osm2pgsql
|
... | @@ -29,7 +58,7 @@ mount -a # Монтируем раздел |
... | @@ -29,7 +58,7 @@ mount -a # Монтируем раздел |
|
[Документация по опциям](https://github.com/openstreetmap/osm2pgsql/blob/master/docs/usage.md)
|
|
[Документация по опциям](https://github.com/openstreetmap/osm2pgsql/blob/master/docs/usage.md)
|
|
|
|
|
|
```bash
|
|
```bash
|
|
osm2pgsql --create --cache 14000 --slim --flat-nodes flatnodes --hstore-all --hstore-add-index --latlon --proj 4386 --number-processes 8 --multi-geometry -d osm -H localhost -U siriuso -W planet-latest.osm.pbf
|
|
osm2pgsql --create --cache 14000 --slim --flat-nodes flatnodes --hstore-all --hstore-add-index --latlon --proj 4326 --number-processes 8 --multi-geometry -d osm -H localhost -U siriuso -W planet-latest.osm.pbf
|
|
```
|
|
```
|
|
|
|
|
|
`--cache` рекомендуется выбирать как 75% доступной оперативной памяти
|
|
`--cache` рекомендуется выбирать как 75% доступной оперативной памяти
|
... | @@ -39,7 +68,7 @@ osm2pgsql --create --cache 14000 --slim --flat-nodes flatnodes --hstore-all --hs |
... | @@ -39,7 +68,7 @@ osm2pgsql --create --cache 14000 --slim --flat-nodes flatnodes --hstore-all --hs |
|
|
|
|
|
Для хранения тегов в hstore необходимо подключить расширение hstore
|
|
Для хранения тегов в hstore необходимо подключить расширение hstore
|
|
SRID **3857** используется для тайлового рендеринга
|
|
SRID **3857** используется для тайлового рендеринга
|
|
SRID **4386** используется для аналитики
|
|
SRID **4326** используется для аналитики
|
|
|
|
|
|
## Дополнительные материалы ##
|
|
## Дополнительные материалы ##
|
|
- [Доклад о производительности за 2012 год](http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf)
|
|
- [Доклад о производительности за 2012 год](http://www.geofabrik.de/media/2012-09-08-osm2pgsql-performance.pdf)
|
... | | ... | |