• Уважаемые пользователи! Сообщаем Вам, что у нашего форума появился официальный чат в Телеграм - https://t.me/forumtv_telegram в котором будут публиковаться все важные новости и изменения проекта
  • И так дорогие друзья, всем привет! Долгожданное свершилось! Не секрет, что многие плотно сидят на яблочных устройствах. И как мы знаем сторонние приложения - это до сегодняшнего дня было вообще под запретом. Но с начала 2004 года всё изменилось. И так, мы создали тему, как один из разработчиков, в данный момент, создаёт известные всем приложения для Apple tv И соответственно для поддержки и развития текущих и будущих приложений можно к нему обратиться. Найти тему можно ниже в разделе софта Всем удачи

HTTP прокси для Ace Stream

  • Автор темы Автор темы Dogerty
  • Дата начала Дата начала
67141011-f5226e00-f25f-11e9-8e51-890c8cb81313.png
67141032-17b48700-f260-11e9-94c9-658c6678ac1f.png
 
Осталась проблема с Питоном

Просто переключал каналы смотрел, что всё нормально работает, с утра такая фигня:

Код:
acehttp.py      [LINE:95  ]# INFO     [19.10 22:35:27] [192.168.100.6]: GET HTTP/1.1 request for: /pid/e95e00dd1127c22d4ac7e7c1f745711ea879c61d/stream.mp4
acehttp.py      [LINE:96  ]# DEBUG    [19.10 22:35:27] [192.168.100.6]: Request headers: {'Host': '192.168.100.3:8700', 'Accept': '*/*', 'User-Agent': 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.
ve'}
aceclient.py    [LINE:110 ]# DEBUG    [19.10 22:35:27] [idleAce]: >>> LOADASYNC 29 PID e95e00dd1127c22d4ac7e7c1f745711ea879c61d
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:27] [idleAce]: <<< STATUS main:loading
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:27] [idleAce]: <<< LOADRESP 29 {"status": 1, "files": [["Viasat Sport HD Россия", 0]], "infohash": "116b5697eeaa56ac3c7a42f9f509be7964d43a90", "ch
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:27] [idleAce]: <<< STATUS main:idle
aceclient.py    [LINE:110 ]# DEBUG    [19.10 22:35:27] [Viasat Sport HD Росс]: >>> START PID e95e00dd1127c22d4ac7e7c1f745711ea879c61d 0 output_format=http
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:27] [Viasat Sport HD Росс]: <<< STATE 1
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:27] [Viasat Sport HD Росс]: <<< STATUS main:starting
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:28] [Viasat Sport HD Росс]: <<< STATUS main:prebuf;0;0;0;0;0;0;0;1;0;0;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:28] [Viasat Sport HD Росс]: <<< EVENT livepos last=-1 live_first=-1 pos=-1 first_ts=0 last_ts=0 is_live=1 live_last=-1 buffer_pieces=3
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:28] [Viasat Sport HD Росс]: <<< START url=http://127.0.0.1:6878/content/116b5697eeaa56ac3c7a42f9f509be7964d43a90/0.656635956872 file_index=0 infoh
acehttp.py      [LINE:213 ]# DEBUG    [19.10 22:35:28] [Viasat Sport HD Россия]: Broadcast created
acehttp.py      [LINE:216 ]# INFO     [19.10 22:35:28] [Viasat Sport HD Россия]: Streaming to [192.168.100.6] started
acehttp.py      [LINE:234 ]# DEBUG    [19.10 22:35:28] [192.168.100.6]: Sending HTTPAceProxy headers: {'Connection': 'keep-alive', 'Keep-Alive': 'timeout=60, max=100', 'Accept-Ranges': 'none', 'Tra
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:28] [Viasat Sport HD Росс]: <<< STATE 2
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:29] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;1034;0;0;19;0;2780520;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:29] [Viasat Sport HD Росс]: <<< EVENT livepos last=978512 live_first=978329 pos=978512 first_ts=1571511918 last_ts=1571513728 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:30] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;746;0;0;19;0;2780520;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:30] [Viasat Sport HD Росс]: <<< EVENT livepos last=978512 live_first=978329 pos=978512 first_ts=1571511918 last_ts=1571513728 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:31] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;582;0;0;19;0;2780520;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:31] [Viasat Sport HD Росс]: <<< EVENT livepos last=978512 live_first=978329 pos=978512 first_ts=1571511918 last_ts=1571513728 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:32] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;477;0;0;19;0;2780520;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:32] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978512 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:33] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;470;0;0;19;0;3222888;0;0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:33] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978512 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:34] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;569;0;166;19;0;4499780;0;1996728
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:34] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:35] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;503;0;371;21;0;4499780;0;4829040
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:35] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:36] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;451;0;414;23;0;4499780;0;5825284
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:36] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:37] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;408;0;393;23;0;4499780;0;5939972
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:37] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:38] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;373;0;380;23;0;4499780;0;6136580
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:38] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:39] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;343;0;357;23;0;4499780;0;6136580
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:39] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:40] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;318;0;337;23;0;4499780;0;6136580
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:40] [Viasat Sport HD Росс]: <<< EVENT livepos last=978513 live_first=978330 pos=978513 first_ts=1571511922 last_ts=1571513732 is_live=1 live_last=
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:41] [Viasat Sport HD Росс]: <<< STATUS main:dl;0;0;298;0;318;23;0;4532548;0;6136580
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:41] [Viasat Sport HD Росс]: <<< EVENT livepos last=978514 live_first=978331 pos=978513 first_ts=1571511931 last_ts=1571513740 is_live=1 live_last=
aceclient.py    [LINE:110 ]# DEBUG    [19.10 22:35:42] [Viasat Sport HD Росс]: >>> STOP
acehttp.py      [LINE:246 ]# INFO     [19.10 22:35:42] [Viasat Sport HD Россия]: Streaming to [192.168.100.6] finished
acehttp.py      [LINE:67  ]# DEBUG    [19.10 22:35:42] [192.168.100.6]: Disconnected
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:42] [idleAce]: <<< STATE 0
aceclient.py    [LINE:101 ]# DEBUG    [19.10 22:35:42] [idleAce]: <<< STATUS main:idle
acehttp.py      [LINE:212 ]# DEBUG    [19.10 22:35:42] [Viasat Sport HD Россия]: Broadcast destroyed. Last client disconnected
torrenttelik_pl [LINE:42  ]# INFO     [20.10 00:19:38] [Torrenttelik]: playlist http://pomoyka.win/trash/ttv-list/as.json downloaded
torrenttelik_pl [LINE:63  ]# DEBUG    [20.10 00:19:38] [Torrenttelik]: plugin playlist generated
allfon_plugin.p [LINE:42  ]# INFO     [20.10 01:19:37] [Allfon]: playlist https://mir.allfon-tv.com/autogenplaylist/allfontv.m3u downloaded
allfon_plugin.p [LINE:59  ]# DEBUG    [20.10 01:19:37] [Allfon]: plugin playlist generated
torrenttelik_pl [LINE:42  ]# INFO     [20.10 02:19:38] [Torrenttelik]: playlist http://pomoyka.win/trash/ttv-list/as.json downloaded
torrenttelik_pl [LINE:63  ]# DEBUG    [20.10 02:19:38] [Torrenttelik]: plugin playlist generated
torrenttelik_pl [LINE:42  ]# INFO     [20.10 04:19:38] [Torrenttelik]: playlist http://pomoyka.win/trash/ttv-list/as.json downloaded
torrenttelik_pl [LINE:63  ]# DEBUG    [20.10 04:19:38] [Torrenttelik]: plugin playlist generated
allfon_plugin.p [LINE:42  ]# INFO     [20.10 04:19:38] [Allfon]: playlist https://mir.allfon-tv.com/autogenplaylist/allfontv.m3u downloaded
allfon_plugin.p [LINE:59  ]# DEBUG    [20.10 04:19:38] [Allfon]: plugin playlist generated

жрёт процессор ПИТОН

Pyton.jpg
 
36% процессорного времени вместо 0-1% это просто так нормально?
 
По моим наблюдениям пока днём активно используется прокси всё нормально, как только время не использования большое начинается эта ерунда и пока не перезапустишь только может расти в %.
 
жрёт процессор ПИТОН
Какя стоит частота "рефреша" плейлистов настройках плагинов ? Хотя там тоже не особо можно заставить "жрать" ... В логе - все "фельдиперсово" , Вы второй по счету , у кого жрет, причем под виндой .... у меня такого НИ РАЗУ ... на VPS-прокся уже неделю беспрерывно гоняется - НОЛЬ траблов. "Нагрузка" от прокси + движок = 1-1,2% в standby . Так что не знаю чем Вам помочь
 
Всем привет. Использовал долгое время от версию от апреля, нагрузки от python процесса почти не было. Обновил до последней версии, нагрузка действительно есть https://yadi.sk/i/xc1rZYV10daNiw (резкие обвалы - это перезапуск прокси, на iowait не обращайте внимание, это сервер под бэкапы). Сейчас процесс перезапускал, могу попробовать сделать strace процесса в простое, но с нагрузкой. Скорее всего это можно будет сделать завтра вечером. ОС Ubuntu 18.04, конфигурация прокси по умолчанию, каналы смотрю через /pid
 
Обновление плейлистов по умолчанию 3 и 2 часа. Перезапуск движка на процесс не влияет как жрал так и жрет. Вот у меня тоже мелькала мысль, что как-то завязано на обновления плейлистов. Попробую уменьшить время обновления, если будет быстрее нарастать нагрузка то это то что нужно.
 
Подтверждаю, последний апдейт ровным счётом ничего не поменял - жрёт проц.
Снимок.JPG
 

Но хоть убейте не могу повторить ....
 
Последнее редактирование:
На диске осталась ещё версия датированная 17 августом, сейчас проверил с ней такой проблемы нет, проц не утекает, вроде бы после этой версии начались эти чудеса.
 
Маленький отчёт.Запустил вечером прокси и пощелкал каналами минут пять было 3-5% и память не помню, к утру уже 50% и память 200 мегабайт.
С остановил и запустил прокси и не трогал её только плейлисты обновлялись(часа 2), всё нормально 0% и память 22-23 мегабайта(время обновления 10-12 минут).
стал переключать каналы и началось, рост памяти и рост процессорного времени, как будто при переключении не освобождается буфер от предыдущего канала (а должен?). Вечером надо через стоп попробовать.
вот прошло минут десять как всё остановлено, а память проц всё растут, тут вообще не понятно откуда это берётся.
 
Но хоть убейте не могу повторить ....
FIXED
для теста , чтобы убедиться, на компе где запущена прокся
Код:
netstat | grep --regexp="proxy_ip:tproxy" | grep CLOSE_WAIT

p.s. кино с "извинениями" смотреть тут - https://forumtv.org/threads/http-proksi-dlja-ace-stream.111/post-9265 , чтоб два раза не повторятся :D. Всем кто отловил "дырку" СПС !
 
Последнее редактирование:
FIXED
для теста , чтобы убедиться, на компе где запущена прокся
Код:
netstat | grep --regexp="proxy_ip:tproxy" | grep CLOSE_WAIT
...и нифига не увидеть, если ДНС работает правильно, даже если CLOSE_WAIT есть )
netstat -anp | grep --regexp="proxy_ip:tproxy"
так быстрее и информативнее, должен быть только LISTEN (и ESTABLISHED, если идёт трансляция)
 
Последнее редактирование:
Что-то я не поглядел на предыдущей версии были ли у меня эти висящие коннекты или нет, но сейчас их нет...
НО, ситуация не поменялась, проц прокся так и кушает...

UPD:
а хотя стопэ, есть но они на локалхосте все висят:
netstat -anp | grep --regexp="WAIT"
Код:
tcp        1      0 127.0.0.1:36190         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:35944         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:37242         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:34520         127.0.0.1:62062         CLOSE_WAIT  31046/python3

у меня на 3 питоне только прокся крутится так что сразу понятно + при выключении прокси эти коннекты пропали

666 коммит не помог :devilish:
 
Последнее редактирование:
..и нифига не увидеть, если ДНС работает правильно, даже если CLOSE_WAIT есть
Это сейчас о чем было и с кем Вы разговаривали? Кому нужен бред о ДНС ? Вы понимаете когда возникали CLOSE_WAIT? И суть команды
Код:
netstat | grep --regexp="192.168.1.100:tproxy" | grep CLOSE_WAIT
где 192.168.1.100 - это локальный адрес прокси
CLOSE_WAIT TCP соединений КЛИЕНТОВ с ПРОКСЕЙ - показывало тогда и ТОЛЬКО тогда когда Вы отключились клиентом от прокси , а не когда смотрите. Это и есть, точнее были, зависшие коннекты, о которых писали на гите и они висели вечно и копились и множились при переключении каналов. Это когда клиент отключился , а прокся - сокет его подключения НЕ закрыла ;)

ЭТО
Код:
tcp        1      0 127.0.0.1:36190         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:35944         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:37242         127.0.0.1:62062         CLOSE_WAIT  31046/python3
tcp        1      0 127.0.0.1:34520         127.0.0.1:62062         CLOSE_WAIT  31046/python3
коннекты ПРОКСИ по телнету к ДВИЖКУ и ЭТО будет висеть в netstat РОВНО столько, сколько у Вас задано в aceconfig.py в параметре videotilmeout= и по истечении этого времени, с момента отключения последнего клиента от какой-либо трансляции, - ИСЧЕЗНУТ ибо прокся ЗАКРОЕТ СОКЕТ соединения с движком и ЭТО - НИКАКОГО от слова ВООБЩЕ не имеет отношения к сокетам подключений КЛИЕНТОВ.....
Вместо БРЕД постить, надо было подождать 60 сек и еще раз глянуть как эти коннекты пропали из netstat без всякой перегрузки прокси ....

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

У меня их больше десятка и со временем не меняются (50% проц)

С утра было вот это

acehttp.py [LINE:81 ]# ERROR [22.10 06:52:32] Dying with error

и как то оно медленно отзывалось, говорит трансляция есть, а на экране шиш.

потом

acehttp.py [LINE:81 ]# ERROR [22.10 07:02:50] AceException('The are no alive AceStream Engines found!')
acehttp.py [LINE:81 ]# ERROR [22.10 07:04:00] AceException('START URL not received! Engine response time 60 seconds exceeded')

хотя напрямую с движком всё работает.
 
А сколько соединений с движком должно быть, когда всё остановлено?
Это сейчас о чем было ? Мне отсюда что у Вас там твориться - не видно. Лог в режиме DEBUG более чем информативен и позволяет мало-мальски сообразительному "буратино" понять суть происходящего. От чего у Вас ТАМ что-то жрет или "висит" и т.д. - МНЕ НЕ ВЕДОМО. По инфе в netstat можно элементарно идентифицировать кто и что и почему.
TCP CLOSE_WAIT - я "поймал" и исправил. При наличии вменяемой инфы , т.е. описания порядка действий для получения бага - он исправляется моментально. Рассказы из серии "пальцем в небо" - идентификации и исправлению не подлежат.
 
Назад
Сверху