Инструменты пользователя

Инструменты сайта

  • Показать страницу
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:linux_server:tile_map_server_worl_20.04.4

    Различия

    Показаны различия между двумя версиями страницы.

    Ссылка на это сравнение

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:tile_map_server_worl_20.04.4 [2024/08/19 08:07] – [Догрузка карт в базу данных] vladpolskiysoftware:linux_server:tile_map_server_worl_20.04.4 [2024/09/04 13:43] (текущий) – [Запуск рендера в фоновом режиме] vladpolskiy
    Строка 1: Строка 1:
     ======OSM The Eurasia Ubuntu 20.04====== ======OSM The Eurasia Ubuntu 20.04======
     +{{:software:linux_server:tile_map_server_wold_20.04.4_114.png?500 |}} Тайл-сервер является основным инструментом для генерации и предоставления тайлов пользователям в мире OpenStreetMap. Это набор программ и библиотек, позволяющий эффективно обрабатывать географические данные и создавать картографические тайлы, представляющие собой небольшие изображения карты для отображения на веб-сайтах или мобильных приложениях. Важно понимать, что существует несколько различных конфигураций тайл-серверов, каждая из которых имеет свои плюсы и минусы.\\  Руководство по запуску стандартного тайл-сервера, аналогичного тому, используемому на серверах OpenStreetMap.org, может быть полезным для тех, кто только начинает знакомиться с этой областью. Обычно такие инструкции включают в себя установку необходимого программного обеспечения, настройку базы данных геоданных, настройку веб-сервера и самого тайл-сервера, а также запуск и тестирование процесса генерации тайлов.
     +
     +В результате выполнения всех необходимых шагов по установке и настройке тайл-сервера, пользователь сможет получить доступ к генерируемым тайлам через веб-приложения или мобильные устройства. Это отличное решение для тех, кто хочет создать собственный проект на основе картографических данных OpenStreetMap и обеспечить пользователям доступ к персонализированным картам.
     =====Введение===== =====Введение=====
    -Установка производиться на устройство +В данном руководстве установка программного обеспечения производиться на оборудование следующей конфигурации: 
       * **[[hardware:motherboard_supermicro_h11ssl-i|Материнская плата Supermicro MBD-H11SSL-I]]**   * **[[hardware:motherboard_supermicro_h11ssl-i|Материнская плата Supermicro MBD-H11SSL-I]]**
       * **[[hardware:cpu_amd_epyc_7551p_oem|Процессор AMD EPYC™ 7551P OEM]]**    * **[[hardware:cpu_amd_epyc_7551p_oem|Процессор AMD EPYC™ 7551P OEM]]** 
    Строка 7: Строка 10:
       * **[[hardware:ddr4_ecc_reg_64gb|256GB DDR4 3200MHz DIMM ECC Reg Micron]]**   * **[[hardware:ddr4_ecc_reg_64gb|256GB DDR4 3200MHz DIMM ECC Reg Micron]]**
       * **[[software:linux_server:ubuntu_server|ОС Ubuntu Server 20.04 LTS]]**   * **[[software:linux_server:ubuntu_server|ОС Ubuntu Server 20.04 LTS]]**
    - <color #7092be>**Все ниже написанное относиться к Ubuntu Server 20.04 (Focal Fossa) и протестированы в августе 2024 года.**</color>+Конфигурация вашего оборудавания будет соответственно отличаться, но это так-же будет работать, заняв больше времени при установке и рендере карт на устройстве с минимальными параметрами: 
     +  * **CPU > 4 ядер** 
     +  * **RAM > 12Gb** 
     +  * **HDD > 1Tb** 
     + <color #7092be>**Все ниже написанное относиться к Ubuntu Server 20.04 (Focal Fossa) и протестировано в августе 2024 года.**</color> 
     +\\  
     \\   \\  
      <color #00a2e8>**:&1: Примечание: В этом руководстве многое загружается с альтернативных, а не с официальных  зеркал, по причине скорости загрузки и неизменности файлов в репозитории для данного руководства.**</color>  <color #00a2e8>**:&1: Примечание: В этом руководстве многое загружается с альтернативных, а не с официальных  зеркал, по причине скорости загрузки и неизменности файлов в репозитории для данного руководства.**</color>
    Строка 18: Строка 26:
       * **postgresql/postgis**   * **postgresql/postgis**
      <color #22b14c>**Postgresql/postgis**</color> - базы данных. <color #22b14c>**Mod_tile**</color> — это модуль <color #22b14c>**http сервера apache**</color>, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. <color #22b14c>**Mapnik**</color> — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\    <color #22b14c>**Postgresql/postgis**</color> - базы данных. <color #22b14c>**Mod_tile**</color> — это модуль <color #22b14c>**http сервера apache**</color>, который обслуживает кэшированные тайлы и решает, какие тайлы нуждаются в повторном рендеринге — либо потому, что они еще не кэшированы, либо потому, что они устарели. <color #22b14c>**Mapnik**</color> — это программная библиотека, которая осуществляет реальный рендеринг с использованием открытого рендеринга.\\  
    - <color #7092be>** :&2: Предполагается,** что вы запускаете все от пользователя **без регистрации root** через **«sudo»**. Имя пользователя без **root**, повторяемое по умолчанию, — **«eva»**. Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.</color>+\\   
     + <color #7092be>** :&2: Предполагается,** что вы запускаете все от пользователя **без регистрации root** через **«sudo»**. Имя пользователя без **root**, повторяемое по умолчанию, — **«eva»**. Если вы указываете иного пользователя, то вам необходимо будет заменить во всех командах на свое имя и добавить его в группу пользователей, которые могут использовать sudo для получения root-прав. Из вашей обычной учетной записи пользователя без регистрации root.</color>\\   
     +\\   
     +<color #22b14c>**:&2: Общая последовательнось действий:**</color>  
     +  * **Устанавливаем и обновляем Ubuntu Server** 
     +  * **Устанавливаем основное и дополнительное ПО** 
     +  * **Загружаем 6 файлов карт** 
     +  * **Объеденяем 3 файла и загружаем в базу** 
     +  * **Настраиваем веб-сервер** 
     +  * **Производим первый рендер** 
     +  * **Догружаем в базу дополнительный файл карты** 
     +  * **Проверяем работоспособность сервера** 
     +  * **Удаляем все лишнее, объединяем и загружаем в базу данных файл Евразии** 
     =====Обновление программного обеспечения===== =====Обновление программного обеспечения=====
       * Устанавливаем и обновляем Ubuntu   * Устанавливаем и обновляем Ubuntu
    Строка 57: Строка 78:
     </code> </code>
     {{:software:linux_server:tile_map_server_wold_20.04.4_5.png?|}} {{:software:linux_server:tile_map_server_wold_20.04.4_5.png?|}}
    -  * Создадим пользователя <color #ed1c24>(**"eva"**-пример имени пользователя для дпнного рукеводства)</color>+  * Создадим пользователя <color #ed1c24>(**"eva"**-пример имени пользователя для данного руководства)</color>
     <code> <code>
     createuser eva createuser eva
    Строка 319: Строка 340:
      
     ====Догрузка карт в базу данных==== ====Догрузка карт в базу данных====
    -<color #ed1c24>**:&9: Внимание!: Этот шаг выполняеся только в случае необходимости дозагрузки в готовую базу данных дополнительных файлов, в нашем случае сейчас пропустим этот подраздел, перейдем в  радел [[software:linux_server:tile_map_server_22.04.4|"Создание индексов"]] и вернемся сюда в конце статьи при уже настроенном сервере.**</color>\\   +<color #ed1c24>**:&9: Внимание!: Этот шаг выполняеся только в случае необходимости дозагрузки в готовую базу данных дополнительных файлов, в нашем случае сейчас пропустим этот подраздел, перейдем в  радел [[software:linux_server:tile_map_server_22.04.4|"Создание индексов"]] и вернемся сюда в конце статьи при уже настроенном сервере. (этот шаг указан в этом разделе т.к команды эдинтичные с разницей в способе загрузки (%%--create/--append%%)).**</color>\\   
    -<color #00a2e8>**:&2: Следующая команда загрузит файл карты "andorra" в уже существующую базу данных. Пока мы пропустим этот шаг и продолжим установку сервера и вернемся к этому шагу позже. уже на подготовленном нами сервере. (этот шаг указан в этом разделе т.к команды эдинтичные с разницей в способе загрузки (--create/--append)).**</color> +  * Следующая команда загрузит файл карты "andorra" в уже существующую базу данных.  
     <code> <code>
     cd ~/data cd ~/data
    Строка 626: Строка 647:
     {{:software:linux_server:tile_map_server_wold_20.04.4_113.png?|}} {{:software:linux_server:tile_map_server_wold_20.04.4_113.png?|}}
      
     +  * Прошли почти сутки, мы видим данные, которые уже загрузились, в кансоле 
     +{{:software:linux_server:tile_map_server_wold_20.04.4_116.png?|}}
     +  * При этом заполнение SSD диска уже составило 811Gb при загрузке карты Евразии размером всего 40Gb
     +{{:software:linux_server:tile_map_server_wold_20.04.4_117.png?|}}
     +  * Прошли почти 2 сутки (48 часов), мы видим данные в кансоле об окончании загрузки 
     +{{:software:linux_server:tile_map_server_wold_20.04.4_121.png?|}}
     +  * И заполнение SSD диска на 1,3Tb при загрузке карты Евразии размером всего 40Gb
     +{{:software:linux_server:tile_map_server_wold_20.04.4_120.png?|}}
     +  * Вернемся в раздел [[software:linux_server:tile_map_server_worl_20.04.4#Создание индексов|создание индексов]] и запустим повторно создание индексов.
     +{{:software:linux_server:tile_map_server_wold_20.04.4_123.png?|}}
     +  * При приближении мы видим рендер участков карты которые ранее не были записаны в кэш, а те что уже записаны закрыты серыми плитками, т.к. при первых картах эти участки не были в базе данных.
     +{{:software:linux_server:tile_map_server_wold_20.04.4_124.png?|}}
     +  * Заходим в наш сервер в каталог /var/lib/mod_tile/ajt и удаляем все каталоги с кешем прошлого рендера
     +{{:software:linux_server:tile_map_server_wold_20.04.4_126.png?|}}
     +  * Возвращаемся в наш веб-браузер и обновляем страницу. Перед нами карта с названиями государств Европы и Азии, при этом видим, что Африка и Австралия просто белые и без названий, т.к. мы их не грузили в базу данных. Остается провести предварительный рендер, чтобы пользователи не ждали загрузки. 
     +{{:software:linux_server:tile_map_server_wold_20.04.4_125.png?|}}
     +  * Процесс рендера достаточно медленный, но мы можем наблюдать преобразование новых регионов, а те, что еще не попали в кэш имеют плитки серого цвета
     +{{:software:linux_server:tile_map_server_wold_20.04.4_128.png?|}}
     +  * При этом сервер нагружен на 40% по мониторингу процессора, и почти на максимум работает ssd, учитывая, что установлен AMD EPYC™ в 32 ядра/64 потока и 256gb оперативной памяти.
     +{{:software:linux_server:tile_map_server_wold_20.04.4_127.png?|}}
     +  * Следующуя команда запустит предварительный рендер всей карты с 0 до 10 уровня в 16 потоков, чтобы пользователи не ждали загрузки тайлов, а использовали уже готовые области карт
     +<code>
     +sudo -u eva render_list -a -n 16  --map=ajt --tile-dir=/var/lib/mod_tile/ajt --min-zoom=0 --max-zoom=10 --force
     +</code>
     +  * Ниже приведены параметры **render_list**
     +<file render_list>
     +Использование: render_list [ОПЦИЯ] ...
     +  -a, --all визуализировать все плитки в заданном диапазоне масштабирования вместо чтения из STDIN
     +  -f, --force отображать плитки, даже если они кажутся текущими
     +  -m, --map=MAP отображает тайлы на этой карте (по умолчанию «по умолчанию»)
     +  -l, --max-load=ЗАГРУЗИТЬ спящий режим, если нагрузка настолько высока (по умолчанию 16)
     +  -s, --socket=SOCKET имя доменного сокета unix для связи с renderd
     +  -n, --num-threads=N количество параллельных потоков запросов (по умолчанию 1)
     +  -t, --tile-dir Каталог тайлового кэша (по умолчанию «/var/lib/mod_tile»)
     +  -z, --min-zoom=Ввод фильтра ZOOM для рендеринга только тех фрагментов, которые больше или равны этому уровню масштабирования (по умолчанию – 0)
     +  -Z, --max-zoom=Ввод фильтра ZOOM для рендеринга только плиток, меньших или равных этому уровню масштабирования (по умолчанию — 20)
     +Если вы используете --all, вы можете ограничить диапазон плиток, добавив следующие параметры:
     +  -x, --min-x=X минимальная координата X плитки
     +  -X, --max-x=X максимальная координата X тайла
     +  -y, --min-y=Y минимальная координата Y тайла
     +  -Y, --max-y=Y максимальная координата тайла Y
     +Без --all отправить список тайлов для рендеринга из STDIN в формате:
     +  Х Y Я
     +например
     +  0 0 1
     +  0 1 1
     +  1 0 1
     +  1 1 1
     +Вышеупомянутое приведет к отображению всех 4 плиток при масштабировании 1.
     +</file>
     +{{:software:linux_server:tile_map_server_wold_20.04.4_129.png?|}}
     =====Дополнения и Файлы===== =====Дополнения и Файлы=====
       * {{ :software:linux_server:ubuntu-22.04.4-live-server-amd64.iso |ОС Ubuntu Server 20.04 LTS}}   * {{ :software:linux_server:ubuntu-22.04.4-live-server-amd64.iso |ОС Ubuntu Server 20.04 LTS}}
       * {{ :software:linux_server:index.zip |Файл для просмотра плиток и проверки render}}   * {{ :software:linux_server:index.zip |Файл для просмотра плиток и проверки render}}
     +  * {{ https://osm2pgsql.org/doc/manual.html#expert-tuning |Настройка сервера PostgreSQL}}
     +  * {{ https://habr.com/ru/companies/lsfusion/articles/590599/ |Настройка PostgreSQL под Linux}}
      
    software/linux_server/tile_map_server_worl_20.04.4.1724044057.txt.gz · Последнее изменение: 2024/08/19 08:07 — vladpolskiy