Установка предварительно проиндексированных данных 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х не повредит. Во-вторых, старайтесь вообще не менять местами, потому что это будет медленнее, чем высыхание грязи. Выясните, есть ли способы ограничить процесс одновременной работой с небольшими блоками, чтобы память не использовалась.