OsmAnd: Ежедневное конвертирование и автоматическое обновление карт

Поубавьте оптимизм, качают там полтора человека, из гигабитного канала средняя нагрузка 2мбит (0.2%) :slight_smile:

И да, не так уж и просто положить Core i7-3770 @ 3.40GHz с 16гб оперативки и nginx в качестве веб-сервера.

Причина падения скорее что-то внутреннее.

Что-то не выходит у меня наладить конвертацию выбранных регионов. Тестовые конвертации на небольших объемах проходят на ура, а как дело доходит до обработки >~150Mb на PBF, так креш. Упомянутая версия конвертера из архива со скриптами валится с

A fatal error has been detected by the Java Runtime Environment:

 SIGSEGV (0xb) at pc=0x00007f5ce2fc3f41, pid=4914, tid=140036921820928

JRE version: Java(TM) SE Runtime Environment (7.0_51-b13) (build 1.7.0_51-b13)
Java VM: Java HotSpot(TM) 64-Bit Server VM (24.51-b03 mixed mode linux-amd64 compressed oops)
Problematic frame:
C  [sqlite-3.7.6.3-libsqlitejdbc.so+0x12f41]  sqlite3_backup_pagecount+0x241

Судя по Османд гугло круппе бага была исправлена еще в январе 13-го. Что же, нужно, думаю, попробовать ночнушку. Ночной билд данной ошибки не вываливает, но конверитить все карты все равно не собирается, похоже, валится с аут оф мемори.

/var/osmandmc/./temp/Finland-latest_2.obf.rtree0
java.io.IOException: Stream Closed
     at java.io.RandomAccessFile.seek(Native Method)
     at rtree.FileHdr.writeFileHeader(FileHdr.java:243)
     at rtree.FileHdr.flush(FileHdr.java:333)
     at rtree.FileHdr.finalize(FileHdr.java:318)
     at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
     at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:101)
     at java.lang.ref.Finalizer.access(Finalizer.java:32)
     at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:190)
Exception in thread "Timer-0" java.lang.OutOfMemoryError: Java heap space
java.sql.SQLException: ResultSet closed
     at org.sqlite.RS.checkOpen(RS.java:63)
     at org.sqlite.RS.markCol(RS.java:77)
     at org.sqlite.RS.getBytes(RS.java:230)
     at net.osmand.data.preparation.OsmDbAccessor$EntityProducer.run(OsmDbAccessor.java:339)

Видно, не судьба. Пока взял на себя только Болгарию с геофабрик.

А ты ключи для java про увеличение памяти брал из батников от mapcreater?

Из батников. Но игра с параметрами выделения памяти не сильно поможет, сервачек-то бюджетненький, ОСМ хоть и притягивает сильно, но жаба тоже не спит.
Снимаю с сервака конвертацию, не потянет он ее, пусть занимается статистикой. В рамках данного топика он разве что для зеркалирования сгодится. Конвертацию запускаю на Виндовой машине. Пока беру Болгарию, Финку и Швецию с геофабрик.

Гм, что-то тут не так. PBF до 50Мб пролетают на ура, Финку же в 169Мб уже 2 часа пилит. Нагрузка на CPU незначительными всплесками

Швецию в 198Мб чувствую вооще не дождусь…

Мдя, без РАМ и на ХДД далеко не уедешь, похоже, большие файлы только SviMikу с 16Гб подвласны. Придется ограничиваться крохами.

Я с 2 гигами даже на 50 метров, со своим Р4, не зарился. 30 метров обрабатывает 12 минут.
Они же на i5 (ноутбук) с 6 гигами обрабатываются меньше минуты.

То то и оно, что Виндовая машина i7 с 8Гб. Но даже с -Xmx2048M процесс идет без видимой нагрузки на CPU и жер памяти 300-600Мб. Ладно бы нагрузил одно из ядер под завязку, отожрал кучу памяти, стал бы свопить, а тут просто непонятные простои, никакой видимой деятельности. Ладно, буду довольствоваться небольшими файлами.

Я кстати тоже нагрузку не всегда вижу на слабенькой машине. А вот на i5 в момент обработки она почему то есть.
Обе машины на линухе.

у меня тоже на и5 жрёт. то одно ядро, то все. зависит от этапа задачи. часть процесса параллеится, часть – нет.

а вот озу извините. на моих 4 гб – 50-100 меговый жатый осм-архив, не больше. мос.- и лен.-область уже наверно не провернёт. и никакие свопы не помогут.
джава своп не кушает, ей чистое озу подавай.

Сначала я было расстроился, что конвертер стал плохо работать, а оказалось - что-то сломалось на http://be.gis-lab.info/data/osm_dump/dump/latest/

Тоже заметил что обновления не было…

Итак, вернулся из отпуска, могу обратно взять что конвертировал. Если все согласны завтра с утра буду запускать.

Выключаю.

Для удобства, теперь дата для папок с картами выставляется такая же, как дата у файла внутри. Так что теперь в списке карт можно видеть актуальные даты.

В связи с чем вопрос: tefal больше не конвертирует карты? С февраля не обновлялись…

Запустил конвертацию

Ни у кого не было проблем, что иногда конвертация занимает в 10-20 раз больше времени, чем обычно? Не могу определить, с чем именно связано, но иногда Украина (180мб pbf) делается за 20 минут, а бывает и за 3+ часа.

Отсутствие достаточно свободной оперативы?

неа, 7 гиг свободно, конвертация - 3 часа…

Друзья, у меня не очень хорошие новости. Мне написал разработчик и менеджер open-source проекта OsmAnd. Нашу переписку вы можете прочитать тут: http://data.nikanorov.mobi/misc/osmand.html

Возможно, источник OsmAnd придётся убрать из OSM Downloader.

Грусть печаль, крайне не хотелось бы потерять возможность обновления карт из пользовательских источников через OSM Downloader или иными, отличными от соответствующего пункта меню в OsmAnd средствами. Даже если официальные обновления карт, доступные из самого OsmAnd, будут ежедневными, это лишает возможности использования кастомных карт, что не может не огорчать…