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.