Lidar_Muxa/docker/fastdds_large.xml

77 lines
3.6 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Профиль Fast DDS для крупных сообщений.
Кадр Pandar128 весит 8-24 МБ, а умолчания Fast DDS рассчитаны на сотни
килобайт: сегмент разделяемой памяти 512 КБ, сокетные буферы ОС 208 КБ.
Кадр в них не помещается, транспорт разваливает его на десятки тысяч
фрагментов, и на 10 Гц часть теряется ещё до подписчика.
Здесь сегмент поднят до 128 МБ (пять-шесть кадров в полёте), буферы
сокетов - до 64 МБ, очередь портов увеличена. Разделяемая память идёт
первой: внутри одной машины кадр передаётся без копирования через сокет.
Сегмент заводит КАЖДЫЙ участник DDS, а их в сеансе обычно три: нода,
проигрыватель бэга и наблюдатель. Больше 128 МБ брать нельзя - при
--shm-size=1g третий участник уже не поместится, и Fast DDS откатится
на UDP, потеряв половину кадров.
Подключается переменной FASTRTPS_DEFAULT_PROFILES_FILE (см. entrypoint.sh).
Контейнеру нужен --shm-size не меньше сегмента, иначе /dev/shm в 64 МБ
обрежет его молча. -->
<dds xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">
<profiles>
<transport_descriptors>
<transport_descriptor>
<transport_id>shm_large</transport_id>
<type>SHM</type>
<segment_size>134217728</segment_size>
<maxMessageSize>4194304</maxMessageSize>
<port_queue_capacity>8192</port_queue_capacity>
<healthy_check_timeout_ms>2000</healthy_check_timeout_ms>
</transport_descriptor>
<transport_descriptor>
<transport_id>udp_large</transport_id>
<type>UDPv4</type>
<sendBufferSize>67108864</sendBufferSize>
<receiveBufferSize>67108864</receiveBufferSize>
<maxMessageSize>65000</maxMessageSize>
</transport_descriptor>
</transport_descriptors>
<participant profile_name="flyguard_large_data" is_default_profile="true">
<rtps>
<userTransports>
<transport_id>shm_large</transport_id>
<transport_id>udp_large</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
</rtps>
</participant>
<!-- Асинхронная запись обязательна: синхронная блокирует поток публикации
на время отправки всех фрагментов кадра. -->
<data_writer profile_name="flyguard_writer" is_default_profile="true">
<qos>
<publishMode>
<kind>ASYNCHRONOUS</kind>
</publishMode>
<reliability>
<kind>RELIABLE</kind>
</reliability>
</qos>
<historyMemoryPolicy>PREALLOCATED_WITH_REALLOC</historyMemoryPolicy>
</data_writer>
<data_reader profile_name="flyguard_reader" is_default_profile="true">
<qos>
<reliability>
<kind>RELIABLE</kind>
</reliability>
</qos>
<historyMemoryPolicy>PREALLOCATED_WITH_REALLOC</historyMemoryPolicy>
</data_reader>
</profiles>
</dds>