Перейти к содержимому
Калькуляторы

msd Lite - тестируем Замена udpxy если у кого оно ещё осталось

Уважаемый Иван! Напоролся на проблему сборки msd_lite в линухах на glibc версии 2.26. Поправил вот таким патчиком:

 

diff --git a/src/include/core_macro.h b/src/include/core_macro.h

index 8e8b3bb..a1c2bf6 100644
--- a/src/include/core_macro.h
+++ b/src/include/core_macro.h
@@ -45,7 +45,7 @@
 #ifndef IOV_MAX
 #include <limits.h>
 #include <bits/xopen_lim.h>
-#include <bits/stdio_lim.h>
+#include <stdio.h>
 #endif

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

6 часов назад, taf_321 сказал:

msd_lite в линухах на glibc версии 2.26. Поправил вот таким патчиком

спс, учту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Никто интереса ради не сравнивал с темже icecast?

Ато сунулся тут, а он оказывается просто берет и релеит спокойно поток с udpxy.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а должен не релеить ?

айскаст работает только с аудио стриминг потоками, как я помню

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 08.11.2017 в 16:28, Ivan_83 сказал:

В файле msd_lite/src/stream_sys.c

 

В функции str_hub_create_int()

заменить str_hub_destroy_int на free (в самом низу функции)

 

В функции str_hub_cli_destroy()

заменить содержимое условия на такое:

К сожалению, на _lite эти правки не подходят - нет определения функций mem_bzero, названия констант и другая работа с формированием заголовка ответа

 

Для себя поправил вот так: http://git.altlinux.org/gears/m/msd_lite.git?p=msd_lite.git;a=commitdiff;h=a2efca19dcb21f80f4d44695f0500ff42afa82a9 по крайней мере крашится перестало

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mem_bzero() - это у меня просто обёртка:

#define mem_bzero(__buf, __size)    memset((__buf), 0x00, (size_t)(__size))

 

Благодарю за поддержку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все равно время от времени перестает показывать.

sysctl.conf рекомендованный

 

root@msd:/var/log# ulimit -a
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  8499
open files                      (-n)  262144
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
socket buffer size       (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited
kqueues                         (-k)  unlimited
umtx shared locks               (-o)  unlimited

 

 

В логе:

[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Created. (fd: 18)^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39096: attached, cli_count = 1^M
[2018-01-26 12:44:37] str_src_r_buf_alloc, line 985: ... error 12: Cannot allocate memory^M
[2018-01-26 12:44:37] str_src_recv_mc_cb, line 873: on receive error 12: Cannot allocate memory^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39096: deattached, cli_count = 0^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Destroyed.^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Created. (fd: 18)^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39097: attached, cli_count = 1^M
[2018-01-26 12:44:37] str_src_r_buf_alloc, line 985: ... error 12: Cannot allocate memory^M
[2018-01-26 12:44:37] str_src_recv_mc_cb, line 873: on receive error 12: Cannot allocate memory^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39097: deattached, cli_count = 0^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Destroyed.^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Created. (fd: 18)^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39098: attached, cli_count = 1^M
[2018-01-26 12:44:37] str_src_r_buf_alloc, line 985: ... error 12: Cannot allocate memory^M
[2018-01-26 12:44:37] str_src_recv_mc_cb, line 873: on receive error 12: Cannot allocate memory^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0 - 127.0.0.1:39098: deattached, cli_count = 0^M
[2018-01-26 12:44:37]: /udp/224.200.240.1:1234@vmx0: Destroyed.^M
[2018-01-26 12:44:37]: /udp/224.200.201.4:1234@vmx0: Created. (fd: 18)^M
[2018-01-26 12:44:37]: /udp/224.200.201.4:1234@vmx0 - 127.0.0.1:39099: attached, cli_count = 1^M
[2018-01-26 12:44:37] str_src_r_buf_alloc, line 985: ... error 12: Cannot allocate memory^M
[2018-01-26 12:44:37] str_src_recv_mc_cb, line 873: on receive error 12: Cannot allocate memory^M

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оперативы видимо не хватает.

Смотрите где у вас кольцевой буфер размещается, и либо там тмпфс размер увеличивайте или в конфиге уменьшайте размер буфера, но ниже 16мб и тем более 8мб я бы не советовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 часов назад, Ivan_83 сказал:

Оперативы видимо не хватает.

Смотрите где у вас кольцевой буфер размещается, и либо там тмпфс размер увеличивайте или в конфиге уменьшайте размер буфера, но ниже 16мб и тем более 8мб я бы не советовал.

Так это не сразу, а примерно через 12 часов нормальной работы!

 

root@msd:/usr/home/alex# vmstat
procs  memory       page                    disks     faults         cpu
r b w  avm   fre   flt  re  pi  po    fr   sr da0 cd0   in    sy    cs us sy id
1 0 0 5.0G  3.2G  1532   0  98   3  1411   88   0   0   55  9571   572  0  1 99
root@msd:/usr/home/alex#

 

                        <fZeroCopyOnSend>no</fZeroCopyOnSend>
                        <ringBufStorePath>/tmp</ringBufStorePath>
                        <fDropSlowClients>no</fDropSlowClients>

                        <fSocketHalfClosed>no</fSocketHalfClosed>

                        <fSocketTCPNoDelay>yes</fSocketTCPNoDelay>

                        <fSocketTCPNoPush>yes</fSocketTCPNoPush>

                        <precache>4096</precache>

                        <sndBlockSize>1</sndBlockSize>
                        <ringBufSize>32768</ringBufSize>
                        <skt>
                                <sndBuf>512</sndBuf>

                                <congestionControl>htcp</congestionControl>

                        </skt>

 

 

root@msd:/usr/local/etc# mount
tmpfs on /tmp (tmpfs, local)

 

/etc/fstab

tmpfs  /tmp  tmpfs rw,mode=1777 0 0

 

/etc/devfs.conf

link /tmp shm

 

root@msd:/etc# df
Filesystem         1K-blocks    Used    Avail Capacity  Mounted on
tmpfs                5406836       4  5406832     0%    /tmp
zroot/tmp           33329888     128 33329760     0%    /tmp

 

 

Это снято с системы когда все работает

 

что еще можно глянуть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 минут назад, myth сказал:

А когда НЕ работает?

Будем ждать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Снова не работают!

 

# vmstat
procs  memory       page                    disks     faults         cpu
r b w  avm   fre   flt  re  pi  po    fr   sr da0 cd0   in    sy    cs us sy id
0 0 0 5.0G  1.2G   105   0  55   3   112   24   0   0  757  1310  3654  0  1 99

 

# mount

tmpfs on /tmp (tmpfs, local)

 

# df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
tmpfs                 2,0G    4,0K    2,0G     0%    /tmp

 

 

 

Рестарт демона не помогает! Где смотреть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Ivan_83 сказал:

ls -la /tmp

В данный момент - прокси работает, вывод команды:

# ls -la /tmp
total 17
drwxrwxrwt   6 root   wheel  320  2 февр. 12:23 .
drwxr-xr-x  20 root   wheel   27  2 февр. 10:30 ..
drwxrwxrwt   2 root   wheel    0  2 февр. 10:30 .font-unix
drwxrwxrwt   2 root   wheel    0  2 февр. 10:30 .ICE-unix
drwxrwxrwt   2 root   wheel    0  2 февр. 10:30 .X11-unix
drwxrwxrwt   2 root   wheel    0  2 февр. 10:30 .XIM-unix
srwxrwxrwx   1 mysql  wheel    0  2 февр. 10:31 mysql.sock

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Видимо вы пытаетесь прогнать через него больше ~64 каналов.

Учитывая что на каждый канал нужно 32мб при текущих настройках, то выходит как раз 2гб - размер tmpfs примонтированной к /tmp.

В 01.02.2018 в 09:46, oborot.bolta сказал:

<ringBufSize>32768</ringBufSize>

Можно уменьшить вот это, скажем до 16384 и получится примерно 120 каналов или сделать ещё меньше, но лучше дайте больше памяти для /tmp.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

27 минут назад, Ivan_83 сказал:

Видимо вы пытаетесь прогнать через него больше ~64 каналов.

Учитывая что на каждый канал нужно 32мб при текущих настройках, то выходит как раз 2гб - размер tmpfs примонтированной к /tmp.

Можно уменьшить вот это, скажем до 16384 и получится примерно 120 каналов или сделать ещё меньше, но лучше дайте больше памяти для /tmp.

 

Там всего 6 каналов было !!!!!!!!

 

поменял на 16384 и увеличил до 3G /tmp

 

<sndBlockSize>1</sndBlockSize> оставить таким же? И на что это влияет?

 

Изменено пользователем oborot.bolta

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

<sndBlockSize>64</sndBlockSize> по дефолту.

Это минимальный размер данный в кольцевом буфере прежде для отправки клиенту.

Те чтобы часто не дёргать sendfile() с 1кб или типа того ставится 64кб и когда будет чего отправлять на 64кб или более тогда оно за раз и поставится в очередь сокета на отправку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот это да!

Заметил что падало всегда при отработке скрипта ночью daily

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не могу собрать

root@ubnt:/home/msd_lite/msd_lite-1.08# make install
Making install in src
make[1]: Entering directory `/home/msd_lite/msd_lite-1.08/src'
depbase=`echo src/core_helpers.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc -DHAVE_CONFIG_H -I.    -I ./include/ -pipe -O2 -DNDEBUG -DHTTP_SRV_XML_CONFIG -fstack-protector -fomit-frame-pointer -fPIE -ffast-math  -M
T src/core_helpers.o -MD -MP -MF $depbase.Tpo -c -o src/core_helpers.o src/core_helpers.c &&\
        mv -f $depbase.Tpo $depbase.Po
src/core_helpers.c: In function 'mmalloc_fd':
src/core_helpers.c:96:6: error: 'MAP_HUGETLB' undeclared (first use in this function)
src/core_helpers.c:96:6: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [src/core_helpers.o] Error 1
make[1]: Leaving directory `/home/msd_lite/msd_lite-1.08/src'
make: *** [install-recursive] Error 1
root@ubnt:/home/msd_lite/msd_lite-1.08# 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 23.02.2018 в 08:13, nphs сказал:

Не могу собрать

Подозреваю что OS старовата.

Можно просто MAP_HUGETLB похерить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 2/5/2018 at 9:07 AM, oborot.bolta said:

Вот это да!

Заметил что падало всегда при отработке скрипта ночью daily

 

ага, это вообще подлый скрипт.  Он шерстит диски и умудряется занимать и память, и вымывать дисковый кеш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 03.02.2017 в 16:09, Ivan_83 сказал:

Мультикаст при этом есть?

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

Если мультикаст есть но отваливается позже - значит кверира нет в сети и снупинг включён... - крутить свичи.

Cитуация полностью аналогична. Тоже неожиданный ребут, после долгой работы. Возможно что-то не было сохранено.

 

Видим в tcpdump запросы

20:18:57.676753 IP 10.100.10.118 > 239.195.32.1: igmp v2 report 239.195.32.1
20:18:59.120759 IP 10.100.10.118 > 239.195.32.7: igmp v2 report 239.195.32.7
20:18:59.148744 IP 10.100.10.118 > 239.195.32.1: igmp v2 report 239.195.32.1
а затем 

20:19:03.081320 IP 10.100.10.118 > 224.0.0.2: igmp leave 239.195.32.8

20:19:03.081320 IP 10.100.10.118 > 224.0.0.2: igmp leave 239.195.32.7

 

Как и советовали, увеличил таймаут

<rcvTimeout>10</rcvTimeout>

 

Не вижу ни на одном коммутаторе запросов. Ни на Л3, на котором ПИМ есть, ни на L2 с которого пользователи благополучно могут смотреть мультикаст.

Коммутаторы скоре всего настроены верно. И с Л3 и с Л2 тестовый ноут получает мультикаст прямым запросом через VLC

 

Делал мирроринг на порт к которому подключен сервер. Вижу все то же самое, что в tcpdum на сервере.

 

Мультикаст на сервер не приходит.

 

Даже уже не знаю куда копать...

 

 

Изменено пользователем lacost

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. А оно через тот интерфейс уходит?

2. rp фильтр отключён?

3. Мультикаст в обратку прилетает после джойна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, на сервере 2 интерфейса. Один смотрит к пользователям, другой в сторону Л3 с Pim.

Маршрут на мультикаст сеть есть. 

По tcpdump вижу на правильном интерфейсе запросы. Вижу и на коммутаторе через мирроринг запросы, а вот мультикаст не льется.

rp_фильтр отключен

 

100% проблема была на стороне сервера а не сетевой части.

 

Не было возможности больше экспериментировать. Снесли систему и развернули все с нуля. Коммутаторы не трогали. Все взлетело с первого раза.

 

В чем была проблема - загадка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.