Установка предварительно проиндексированных данных Nominatim

Я пытаюсь установить nominatim, используя это руководство. После одного дня обработки я наконец получаю это сообщение:

feature 895(k)
Killed

После прочтения в dmesg Я получил:

[143978.925793] Out of memory: kill process 14456 (bash) score 204947 or a child
[143978.925796] Killed process 15081 (nominatim) vsz:4871228kB, anon-rss:2953272kB, file-rss:0kB

Используя osm2pgsl, вы можете использовать опцию -s (slim), но как мне обработать, используя NPI?

Как я могу обновить, не перезапуская весь процесс?

2 ответа

Решение

Я подозреваю, что у вас есть старая версия nominatim с утечкой памяти, это было исправлено несколько недель назад. Вероятно, если вы обновите код из svn и восстановите его, это решит проблему.

Похоже, вам мешает планировщик процессов или ограничитель памяти. Ваша машина, вероятно, недостаточно загружена для этой работы. Вы можете попробовать запустить это с помощью nice с более высоким приоритетом, чем обычно, и убедитесь, что на коробке не запущено посторонних вещей, и не делайте ничего другого, что попыталось бы использовать память во время работы. Надеюсь, когда он пройдет начальный процесс, с обновлениями будет легче иметь дело в будущем.

Изменить: Согласно обсуждению в комментариях, похоже, что работа падает, когда она исчерпывает память, а затем съедает пространство подкачки. Я рекомендую две вещи. Во-первых, увеличьте пространство подкачки. Он должен быть как минимум в 2 раза больше вашей оперативной памяти, но 10х не повредит. Во-вторых, старайтесь вообще не менять местами, потому что это будет медленнее, чем высыхание грязи. Выясните, есть ли способы ограничить процесс одновременной работой с небольшими блоками, чтобы память не использовалась.

Другие вопросы по тегам