Squid 3.1.10 - 98% CPU при передаче видео.

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 19:05:02

Шлюз следующая конфа:

Код: Выделить всё

Version: Intel(R) Pentium(R) 4 CPU 3 GHz
Memory - 3 GB

Проксик не прозрачный. Все пользователи идут через Squid 3.1.10, нагрузка мизер, её можно сказать вообще нет. В сети появилась необходимость поставить камеру, которая отдает видео через прокси сервер (настройки прокси в камере, плюс в squid для IP камеры открыт нужный порт), кодек покадровый (не потоковый), 25 к/c в инет. Другой комп подрублен рядом имеет постоянный белый IP адрес из диапазона инет адресов этой же сетки. Видео передается, при этом на сквиде очень быстро растет нагрузка достигающая 98%. Пока еще подозрение на delay_pool, завтра исключу IP, который через прокси видео гонит.
Что еще указать, посчитали примерный поток от камеры 10 Мбит вроде в локалке, надо еще уточнить разрешение и другие параметры. Внешний инет канал 6 Мбит, ну и юзеру через прокси обрубается до 1Мбит. Вопрос касается нагрузки.
Сквид собран со следующими параметрами, отмечу что проблем падений и прочего нет, проблема заключается только в нагрузке от камеры.

Код: Выделить всё

 # squid -v
Squid Cache: Version 3.1.10
configure options:  '--with-default-user=squid' '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var/squid' '--sysconfdir=/usr/local/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid/squid.pid' '--enable-removal-policies=lru heap' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-epoll' '--disable-translation' '--enable-auth=basic digest negotiate ntlm' '--enable-basic-auth-helpers=DB NCSA PAM MSNT SMB squid_radius_auth' '--enable-digest-auth-helpers=password' '--enable-external-acl-helpers=ip_user session unix_group wbinfo_group' '--enable-ntlm-auth-helpers=smb_lm' '--enable-storeio=ufs diskd aufs' '--enable-disk-io=AIO Blocking DiskDaemon DiskThreads' '--disable-ipv6' '--enable-delay-pools' '--enable-ssl' '--with-openssl=/usr' '--enable-icmp' '--enable-cache-digests' '--enable-wccpv2' '--enable-referer-log' '--enable-useragent-log' '--enable-arp-acl' '--enable-ipfw-transparent' '--enable-ecap' '--enable-loadable-modules' '--enable-icap-client' '--enable-kqueue' '--with-large-files' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=i386-portbld-freebsd8.1' 'build_alias=i386-portbld-freebsd8.1' 'CC=cc' 'CFLAGS=-O2 -pipe  -I/usr/include -I/usr/local/include -fno-strict-aliasing' 'LDFLAGS= -rpath=/usr/lib:/usr/local/lib -L/usr/lib -L/usr/local/lib' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -I/usr/include -I/usr/local/include -fno-strict-aliasing' 'CPP=cpp' --with-squid=/usr/ports/www/squid31/work/squid-3.1.10

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 19:18:50

А обязательно использовать прокси при отдаче видео в сеть? можно ведь и через НАТ порт прокинуть.
Еще интересно про камеру: размер картинки? сжатие?
25 кадров многовато будет, если не секрет, для чего нужно такое качество?
Все гениальное - просто!

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 19:55:31

Через NAT можно, но тут такое дело, это программный продукт, у которого надо проверить работу через прокси. Завтра точно узнаю вес кадра, камера еще и цветная к тому же. Первое конечно буду говорить чтобы убрали цвет, т.к. поток с такое камеры больше в два раза нежели с ч/б, чтобы скорость снижали. Но интересен сам факт, что сквид так загружен. А на будущее, если им потребуется 4 камеры подключить или более.... :(

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 20:07:58

Может реализация поддержки прокси криво написана в данном программном продукте, в любом случае надо как то протестировать, но как?, кроме как брать что-то другое умеющее работать через прокси, но такого к сожалению нет под рукой.

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 20:18:55

Еще одна мысль, это кеш. Надо глянуть на предмет правила не кешировать запросы на проксе для одного порта (через который видео гоняется). Подозрение на то, что при таком потоке сквид очень активно работает с кешем.

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 20:42:45

daemon писал(а):Через NAT можно, но тут такое дело, это программный продукт, у которого надо проверить работу через прокси. Завтра точно узнаю вес кадра, камера еще и цветная к тому же. Первое конечно буду говорить чтобы убрали цвет, т.к. поток с такое камеры больше в два раза нежели с ч/б, чтобы скорость снижали. Но интересен сам факт, что сквид так загружен. А на будущее, если им потребуется 4 камеры подключить или более.... :(
Тогда еще совет: уменьшите количество кадров, оптимально число для передачи в инет от 5 до 15. Поверьте, этого вполне достаточно. На всех dvr (цифровых рекордерах) с выходом в инет именно так.
Еще хотелось бы увидеть squid.conf
это программный продукт, у которого надо проверить работу через прокси.
Что то мне подсказывает, что сервак с камерами будет вещать в инет напрямую, а клиент уже будет находиться за прокси. А вы для теста немного криво это реализовали? Или я не прав?
Еще одна мысль, это кеш. Надо глянуть на предмет правила не кешировать запросы на проксе для одного порта (через который видео гоняется). Подозрение на то, что при таком потоке сквид очень активно работает с кешем.
А смысл кешировать видео поток? он же динамический и, мало того, не повторяется. Смысла использования кеша вообще нет.
Все гениальное - просто!

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 20:59:52

Что то мне подсказывает, что сервак с камерами будет вещать в инет напрямую, а клиент уже будет находиться за прокси. А вы для теста немного криво это реализовали? Или я не прав?
Обычно так, согласен. Но по описанию на клиенте выделенный белый IP. Но лучше 1 раз увидеть, чем 100 раз услышать, по мне так тоже путают они. Завтра буду смотреть, что там наворотили. Для меня это не суть, суть загрузка проксика, а требования для этих всех проверок выдвигают те, кто делает эти гиморные проверки в моей сети :evil:

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 21:26:00

daemon писал(а):
Что то мне подсказывает, что сервак с камерами будет вещать в инет напрямую, а клиент уже будет находиться за прокси. А вы для теста немного криво это реализовали? Или я не прав?
Обычно так, согласен. Но по описанию на клиенте выделенный белый IP. Но лучше 1 раз увидеть, чем 100 раз услышать, по мне так тоже путают они. Завтра буду смотреть, что там наворотили. Для меня это не суть, суть загрузка проксика, а требования для этих всех проверок выдвигают те, кто делает эти гиморные проверки в моей сети :evil:
А в логах сквида что-то есть?
Глянул в ман сквида. У вас "accel" или "allow-direct" стоит в http_port? "allow-direct" было бы лучше в вашем случае.

Код: Выделить всё

	   accel	Accelerator mode. Also needs at least one of
			vhost / vport / defaultsite.

	   allow-direct	Allow direct forwarding in accelerator mode. Normally
			accelerated requests are denied direct forwarding as if
			never_direct was used.
линк на ман: http://www.squid-cache.org/Versions/v3/ ... _port.html
Все гениальное - просто!

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 21:31:35

Ни то ни другое, вот так разрешен порт:

Код: Выделить всё

acl VIDEO_PORT port 3133
http_access allow VIDEO_PORT ip1012
http_access deny VIDEO_PORT
...
http_access deny CONNECT !VIDEO_PORT
Видео покадровое, кодек свой, но тип MJPEG в целом, просто под именем аля своя разработка.

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 21:39:03

daemon писал(а):Ни то ни другое, вот так разрешен порт:

Код: Выделить всё

acl VIDEO_PORT port 3133
http_access allow VIDEO_PORT ip5172
http_access deny VIDEO_PORT
...
http_access deny CONNECT !VIDEO_PORT
Видео покадровое, кодек свой, но тип MJPEG в целом думаю.
комп подрублен рядом имеет постоянный белый IP адрес из диапазона инет адресов этой же сетки.
Поясните,пожалуйста, где находиться клиент? Изнутри или снаружи сети?
Если изнутри, то зачем использовать сквид? Можно же напрямую!
Если снаружи, то было бы правильно использовать функцию "accel".
Все гениальное - просто!

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 21:47:36

Так, имеем внешнюю инет сеть на 16 IP, прямой кабель от прова с одним IP идет прямо в тестовый комп. Далее уже из локалки через сквид (по сути еще через один белый IP наружу) комп (клиент это или сервер уточню не суть) подрубается к компу у которого белый ИП и кабель от прова. Таким мокаром они дальше шлюза прова не ходют, думаю пока так, дальше не буду пояснять что они там еще мудрить хотели, дабы не запутывать окончательно.

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 22:02:35

Схема такая:

Код: Выделить всё

камера->squid->}
               } провайдер
       клиент->}
Если так, то,как я уже писал выше, функция "accel" ваше решение. Поскольку вы хотите использовать обратное проксирование. Кстати, прямое (для пользователей за сквидом) тоже будет работать.
http://wiki.squid-cache.org/ConfigExamp ... ccelerator

IMHO, проще использовать нат и не мучатся.
Все гениальное - просто!

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 22:10:06

Надо будет завтра попробовать разные варианты, спасибо!
То что имею сейчас оно вроде как работает, видео передается, возможно действительно это реализовано как то не так. Тут еще один момент, сервер в НГ праздники новый строил на 8.1. До этого была Фря 4.10 сквид старый какой то, и видео они так же гоняли и так же с портами было. Насколько припоминаю проблем с загрузкой вроде не было, может внимание не обращал, а тут сразу заметил.

daemon
рядовой
Сообщения: 34
Зарегистрирован: 2009-12-21 11:49:15

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение daemon » 2011-01-17 22:18:34

Железо тоже мощнее, памяти 3Гб против 1Гб на старом, проц 3ГГц против Атлон XP 2100+ вроде. Может еще бага какая в самом сквиде 3.1?

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-17 22:25:32

daemon писал(а):Железо тоже мощнее, памяти 3Гб против 1Гб на старом, проц 3ГГц против Атлон XP 2100+ вроде. Может еще бага какая в самом сквиде 3.1?
Скорее не баг,а отличие версий. Ведь даже во второй ветке от релиза к релизу были изменения в конфигах,а тут вы на третью перешли. Могу только посоветовать, внимательно проверить все опции в squid.conf файле.
Все гениальное - просто!

hranitel_y2k
сержант
Сообщения: 154
Зарегистрирован: 2007-12-10 21:04:35

Re: Squid 3.1.10 - 98% CPU при передаче видео.

Непрочитанное сообщение hranitel_y2k » 2011-01-18 0:22:44

Пока домой ехал,в голову пришел еще такой вариант: камера сама подсоединяется к внешнему компу, т.е. он уже получается не клиент, а сервер. Вот почему все работало без ната и через прокси. Вообщем, камера может и не быть причиной нагрузки,она ведь больше передает, чем принимает. А прокси работает, в основном, с входящим трафиком.
Поэтому желательно видеть логи и конфиг сквида.
Все гениальное - просто!