Возникла такая задача - запуск множества процессов ffmpeg с разными конфигами (транскодирование каналов), управление этими процессами, их мониторинг, чтение логов, ограничение ресурсов и тому подобное. Этакий недофлюссоник. Сейчас что-то подобное реализовано на monit, но там конфиги приходится пихать в шелл-скрипты, городить всякие обвязки и вообще всё как-то криво и неудобно. Хочется что-то вроде докера с веб-интерфейсом управления, но не докер. Возможно, что-то интегрированное с systemd/cgroup.
Заказал как-то давно сервер, поставил, настроил ну и забыл про него - там тестовые виртуалки крутились практически на автопилоте. Когда размечал диски, забыл про своп, но подумал, что 64 гигабайт оперативки хватит, и на всякий случай сделал своп-файл на два гига. Это всё прекрасно работало несколько лет, пока вдруг не начало подтормаживать. Оказалось, две трети памяти отъели дисковые кэши (интенсивный импорт дампов бд), их я сбросил, но забитый своп остался. Делаю:
Никакого эффекта. Это так и должно быть? В dmesg только сообщения от oom-killer, отстреливающего процессы явы. vmstat никакого обмена со свопом не показывает.
Есть один старенький сервер на базе Intel Xeon E5405, с двухпортовой гигабитной сетевой от броадкома, на котором крутится IPTV-трафик (не для клиентов, для резервирования между головными станциями). Суммарно 300 мбит/с на входе, столько же на выходе (astra, мультикаст в юникаст и наоборот, формирование/приём HLS). После тюнинга прерываний и кольцевых буферов с текущей нагрузкой он худо-бедно справляется. Но надо добавить ещё два раза по столько же, и он уже такое вряд ли потянет. Присматриваем на замену ему что-то на базе Xeon E5530 c четырёхпортовой Intel MT-i350-T4, но меня берут сомнения - сетевая-то потянет, а вот процессор? На новые сервера на базе какого-нибудь EPYC бюджета нет. По бенчмаркам E5530 почти вдвое быстрее, но это сферические тесты в вакууме. Есть вообще какие-либо методики расчёта нагрузки?
Захотел поднять сеть между парой нод проксмокса. Раньше всегда делал на tinc, а сейчас решил попробовать grelan, мол, прямо в ядре, минимум нагрузки. У обеих нод белые айпишники, туннель поднялся без проблем, скорость в самом деле выдал замечательную, под гигабит. Воткнул я его во внутренний бридж, чтобы контейнеры могли между нодами общаться напрямую, присвоил им адреса из одной подсети - замечательно, контейнеры с одной ноды пингуют на другой. Но вот незадача:
То есть трафик толком не ходит. Выкинул grelan из бриджа - всё стало нормально. В чём может быть дело? Маки везде разные. Конфиг сети:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp2s0f0
iface enp2s0f0 inet manual
auto vmbr0 # в этот бридж втыкаются виртуалки/контейнеры с белыми адресами
iface vmbr0 inet static
address x.x.x.x/29
gateway x.x.x.y
bridge_ports enp2s0f0
bridge_stp off
bridge_fd 0
post-up ifup tun0 #и тут же поднимается тоннель до второй ноды
pre-down ifdown tun0
iface tun0 inet manual
up ip link add tun0 type gretap local x.x.x.x remote y.y.y.y
up ip link set tun0 up
up ip link set tun0 multicast on
down ip link set tun0 down
auto vmbr1 #внутренний бридж
iface vmbr1 inet static
address 10.10.0.1/24
bridge_ports none #вот здесь был tun0
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.0.0/24' -o vmbr0 -j MASQUERADE
Выглядит как проблемы с MTU, но я не уверен. К тому же, почему тогда во внутренней сети были проблемы, а не только с коннектом к другой ноде?
9: tun0@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 9a:e9:f0:57:69:92 brd ff:ff:ff:ff:ff:ff
24: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether fe:71:56:36:22:bd brd ff:ff:ff:ff:ff:ff
inet 10.10.0.1/24 brd 10.10.0.255 scope global vmbr1
valid_lft forever preferred_lft forever
Решил воткнуть на сервер перкону, потыкать палочкой. Всё прекрасно, установилась быстро, заработала, локально летает. Но вот незадача - подключиться по сети к серверу невозможно. Соединение просто зависает. В show processlist при этом что-то вроде:
Беглое гугление показало, что в этот момент сервер ждёт результата обратного днс-запроса, а так как это локалка без днс-сервера, естественно, не дожидается. Добавил опцию skip-name-resolve в mysqld.cnf - никакой разницы. Подумал, что это я дурак, запустил рядом такой же контейнер, но с mariadb - к ней подключается без вопросов. Есть вообще вариант завести эту перкону без поднятия в локалке днс-сервера?
Так как сейчас использую служебный 15"-ноутбук с TN-матрицей 1366x768, сглаженные шрифты выглядят как говно, особенно мелкие. Отключил сглаживание для шрифтов меньше 10 точек, поставил интерфейсным тахому - стало лучше. Но Qt-приложения игнорируют настройки и всё равно рисуют мелкие шрифты сплошным мылом. Как это победить? Если отключить сглаживание целиком, крупные шрифты в том же браузере начинают выглядеть вырвиглазно.
А давно из nm-applet убрали возможность подключения к вланам? В настройках создать влан-интерфейс можно, а вот подключиться к нему - нет. Через nmtui подключиться можно, но там их редактировать неудобно.
Точно помню, что пару лет назад подключался без проблем. Но то был стабильный дебиан, а сейчас на ноуте манджаро.
В общем, устал я от дебиана на десктопе и захотел приключений. И нашёл. Поставил manjaro xfce - всё красиво, шустренько, куча пакетов, которые раньше приходилось самому собирать, а пакман после апта вообще реактивный. Но приключения не заставили себя долго ждать.
1) Неправильно выставлялся mtu на проводном интерфейсе:
$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 576 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether f0:79:59:66:59:20 brd ff:ff:ff:ff:ff:ff
В итоге TCP кое-как работал, а вот UDP никак. После указания 1500 вручную в network-manager заработало.
2) Не заработал dhcp на wi-fi интерфейсе. Почему - фиг его знает (mtu там, кстати, правильно выставило автоматически). Указал адрес вручную - заработало.
3) Самая раздражающая проблема - отваливаются openvpn-соединения через какое-то время. Конфиг точно такой же, как до этого был в дебиане/убунте, и там соединение держалось сутками. Игры с mssfix, mtu и ping interval не помогают. verb 5 ничего не поясняет: видно, что пакетики бегают, в логе есть RrWw даже при отсутствии сетевой активности, но через какое-то время просто отваливается по таймауту, если ничего не делать по сети. Очень бесит. Помогает запустить пинг до адреса внутри впн-сети, тогда соединение держится стабильно. Но это ведь костыль.
Так вот, кто виноват и что делать? Баги завёл, но bugs.manjaro.org какой-то мёртвенький, за три дня там даже никто не просмотрел их.
Было два компа, оба с UEFI. На одном стоял восьмой дебиан, в биосе включен uefi+legacy, судя по остутствию /sys/firmware/efi загружается в legacy. На второй поставил девятый в EFI-режиме, настроил софт, переткнул в первый комп и фигвам, в биосе винт виден, в меню загрузки его можно выбрать, но при выборе ничего не происходит и перекидывает на сетевую загрузку. EFI-разделы на обоих винтах есть. Бегло нагуглил некий Boot Repair, но выглядит он так, словно готов немедленно похерить жёсткий диск и сделать вид, что так и было. В какую сторону копать? Оба компа в работе, простой желателен минимальный, т.е. ставить на первый комп систему с нуля не вариант. Обновлять тоже, первый винт доживает последние дни, судя по смарту.
Достался мне тут двухпроцессорный HP DL180 gen6 в отрефабриченном состоянии, работает бодренько, дисковый массив через hpacucli собирается-разбирается. А вот чем сам сервер мониторить? На https://downloads.linux.hpe.com/SDR/index.html для debian 9 утилиты только для gen7 и выше, при попытке запуска hpasmcli говорит «This does not seem to be the HP Proliant Server that you are looking for.» Агенты для snmp, соответственно, тоже не работают, а обычный lm-sensors показывает какую-то ересь, не совпадающую с данными LO100.
Если поставить старую версию из jessie/9.40, то hp-health работает, но hp-snmp-agents не устанавливается - ему нужна старая версия libssl-1.0.0. Я ему подсунул репозиторий от джесси, но это как-то некрасиво.
Ситуация такая: есть один телеканал, на который по расписанию надо накладывать бегущую строку, которая в течение дня может меняться. Очень не хочется покупать Форвард-ТС для этих целей, но и жить на старой АльфаПро уже невозможно - оно под виндовс, не скриптуется, формат файлов с бегущей строкой закрыт, ничего нельзя изменить.
Идеальным решением были бы SSA-субтитры, но их невозможно изменить, не прерывая захват и трансляцию видео, что для телевещания неприемлемо. Захват видео идёт через тв-тюнер по низкочастотному входу, вывод - MPEG-2 TS через мультикаст.
OBS Studio не умеет субтитры, mpeg2 и мультикасты. Shotcut, основанный на MLT, умеет накладывать HTML5 оверлей, и я надеялся уже сделать проект в нём и зарядить в melt для работы в безголовом режиме, но увы, не получилось - melt html5-оверлей не умеет. Экспериментировал с v4l2loopback, но при наложении двух видео друг на друга они начинают дико мерцать, и это побороть никак не получилось.
Есть ли ещё какие-либо способы? Мне вообще посоветовали выводить видео на экран в фуллскрине через браузер, браузером накладывать бегучку (да и вообще любые объекты) и захватывать видео с экрана, но это костыль просто эпических масштабов. Да и не хотелось бы терять качество видео - оно и так не фонтан.
Поставил Xubuntu 16.04.3 потыкать, в .xsessionrc была прописана export TERM=xterm-256color, но после логина TERM в xfce-terminal принимает значение просто xterm. Остальные переменные из этого скрипта подхватываются нормально, в других эмуляторах терминала (sakura, например) эта переменная присутствует. В дебиане такой фигни не было. Это баг или фича?
Добрый день. Есть говнопринтер Canon LBP3010. Долгие пляски с бубном не дали результата. Испробовал всё из статьи http://help.ubuntu.ru/wiki/canon_capt, плюс ещё прошерстил местную тему и форумы (32-битные библиотеки для растера поставил, разные урлы для ccp:// пробовал). Плюнул, нашёл машинку с WinXP, воткнул в неё. Через самбу всё равно не печатает. Ошибок никаких, в логах «задание отправлено на печать» и всё. Нашёл, как на Windows включить IPP, вроде ему можно скармливать обычный PostScript. Но теперь непонятно, что пихать в урл купсу. Страница управления показывает
http://192.168.5.14/printers/Can_3010/.printer
но купс на него не реагирует. Может, у кого-нибудь есть какие-нибудь идеи? Ну кроме как выкинуть принтер.
Примерно года полтора назад этот принтер работал под линуксом, но крайне нестабильно. Сейчас вообще не заводится. Реверс-инженеринговый драйвер с первого раза собрать не удалось, пока оставил эту затею на самый крайний случай.
Возникла у меня задача сделать простую систему контроля выполнения заявок. Существующие хелпдески смотрел, все их под наши нужды надо существеннно допиливать либо покупать и тоже допиливать. Непросто даже сменить дизайн страницы с заявками, не говоря уж об импорте базы данных абонентов в формате dbf из древнего биллинга.
Чтобы велосипед не оказался с квадратными колёсами, хочется взять уже нечто готовое в качестве базы. Из требований: пользователи с ролями и правами доступа на основе этих ролей, авторизация, минимальный ORM, чтобы не пришлось потом ручками перепиливать запросы к базе при каких-то модификациях/совершенствованиях, RESTful-стиль, логирование действий. В качестве клиентской библитеки уже выбрал webix - в нём есть все необходимые компоненты.
Язык не столь принципиален. Из PHP вроде как подходят Silex и Lumen, правда, на пыхе я последний раз писал ещё во времена версии 4.3, и все эти неймспейсы с ООП меня смущают. Из питона слышал только про джангу и писал простейшие скрипты для uwsgi.
UPD. Продвинутые шаблоны и развесистый роутинг не нужны, сервер пускай отдаёт клиенту json/xml, а тот уже сам с ним развлекается.
Добрый день. Имеется тв-тюнер, который оцифровывает сигнал с S-Video. Затем этот сигнал кодируется в mpeg2 и отдаётся на станцию вещания. Есть небольшая проблема - тень под изображением, словно рассинхронизированы цветовые каналы: https://i.imgur.com/6nESu9n.png (один словно сдвинут вниз, видно по синему фону внизу на чёрной полосе). Можно ли это как-то откорректировать, неважно как: настройкой тюнера или параметрами кодирования ffmpeg?
v42l-ctl --all:
Driver Info (not using libv4l2):
Driver name : saa7134
Card type : AVerMedia Hybrid TV/Radio (A16D
Bus info : PCI:0000:04:00.0
Driver version: 4.9.30
Capabilities : 0x85250015
Video Capture
Video Overlay
VBI Capture
Tuner
Radio
Read/Write
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x05210005
Video Capture
Video Overlay
Tuner
Read/Write
Streaming
Extended Pix Format
Priority: 2
Frequency for tuner 0: 6400 (400.000000 MHz)
Tuner 0:
Name : Television
Type : Analog TV
Capabilities : 62.5 kHz multi-standard stereo lang1 lang2 freq-bands
Frequency range : 44.000 MHz - 958.000 MHz
Signal strength/AFC : 100%/0
Current audio mode : mono
Available subchannels: mono
Video input : 1 (S-Video: ok)
Video Standard = 0x000000ff
PAL-B/B1/G/H/I/D/D1/K
Format Video Capture:
Width/Height : 720/576
Pixel Format : 'YU12'
Field : Interlaced
Bytes per Line : 720
Size Image : 622080
Colorspace : SMPTE 170M
Transfer Function : Default
YCbCr/HSV Encoding: Default
Quantization : Default
Flags :
Format Video Overlay:
Left/Top : 0/0
Width/Height: 720/576
Field : Interlaced
Chroma Key : 0x00000000
Global Alpha: 0x00
Clip Count : 0
Clip Bitmap : No
Framebuffer Format:
Capability : Clipping List
Flags :
Width : 720
Height : 576
Pixel Format : 'BGR3'
Bytes per Line: 0
Size image : 0
Colorspace : SMPTE 170M
Crop Capability Video Capture:
Bounds : Left 0, Top 48, Width 720, Height 576
Default : Left 0, Top 48, Width 720, Height 576
Pixel Aspect: 54/59
Crop: Left 0, Top 48, Width 720, Height 576
Selection: crop, Left 0, Top 48, Width 720, Height 576
Selection: crop_default, Left 0, Top 48, Width 720, Height 576
Selection: crop_bounds, Left 0, Top 48, Width 720, Height 576
Streaming Parameters Video Capture:
Frames per second: 25.000 (25/1)
Read buffers : 2
User Controls
brightness (int) : min=0 max=255 step=1 default=128 value=128 flags=slider
contrast (int) : min=0 max=127 step=1 default=68 value=68 flags=slider
saturation (int) : min=0 max=127 step=1 default=64 value=64 flags=slider
hue (int) : min=-128 max=127 step=1 default=0 value=0 flags=slider
volume (int) : min=-15 max=15 step=1 default=0 value=0 flags=slider
mute (bool) : default=0 value=0
horizontal_flip (bool) : default=0 value=0
invert (bool) : default=0 value=0
y_offset_odd_field (int) : min=0 max=128 step=1 default=0 value=0
y_offset_even_field (int) : min=0 max=128 step=1 default=0 value=0
automute (bool) : default=1 value=1
Поставил я его и что-то не ощутил магии. Загрузка стала быстрее на пару секунд, но так как в целом вся система грузится больше минуты (потому что вместо SSD старый WD10EARS на 5400 оборотов), то особой разницы нет. В отзывчивости системы тоже разницы не вижу - поставил копирование файлов туда-сюда, плюс на внешний винт - и там и там одинаково начинает подтупливать, BFQ не спасает (да, он активен при этом). Зато вот потребление процессора очень заметно выросло - я так понимаю, из-за более высокой частоты таймера? В простое загрузка прыгает до 15-20% одного ядра. Никаких фоновых задач в это время не выполняется, процессор начинают потреблять иксы и тот же gkrellm, которые на дистрибутивном ядре ведут себя намного скромнее. Deadbeef вместе с pulseaudio вообще почти сто процентов одного ядра кушают. Мне как бы не жалко, в обмен на гипотетическую отзывчивость, но, может, я просто не умею готовить этот liquorix? Ставил из их репозитория, debian 9.
Собирать самому лень, к тому же там столько в него надобавляли, что это день займёт. Если с ядрами версий 2.4-2.6 ещё можно было самому разобраться, то в 4.12 уже чёрт ногу сломит.
root@host-88 ~ # service nginx reload
Error: Too many open files
?
То же самое выводит, если его остановливать или запускать. Но при этом нормально и останавливается, и запускается. Непонятно, откуда эта ошибка выползает и что ему не нравится. В error_log её нет. Подозреваю что-то дистрибутивно-специфичное: Debian 8 + Proxmox 4.3, nginx установлен на физическом хосте как прокси для виртуалок/контейнеров, из его репозитория, stable-версия.
Последнее значение слегка смущает, но lsof, похоже, показывает и значения внутри контейнеров, так что когда в одном из них начинает быковать дженкинс, и получаются дикие значения.
Непонятно, почему оно вдруг начинает пытаться открыть файл вместо обращения к апстриму? Апстрим живой, другие клиенты работают нормально. Всего таких клиентов примерно 500, но нагрузка на сервер совершенно смешная, LA физического хоста выше двух не поднимается, максимум RPS было около 80, средний в районе двух запросов в секунду.
Один раз что-то подобное было, когда не хватило лимита открытых файлов (тогда у каждого userdomain были прописаны отдельные лог-файлы), но это было на старой версии nginx, и пофиксилось переключением на общий лог-файл. Мониторинг каких-то аномалий не показывает.
//192.168.5.58/Reels on /media/irina/reels type cifs (rw,nosuid,nodev,noexec,relatime,vers=1.0,cache=strict,username=irina,domain=MONTASHKA,uid=1000,forceuid,gid=1000,noforcegid,addr=192.168.5.58,file_mode=0777,dir_mode=0777,nounix,serverino,noperm,rsize=61440,wsize=65536,actimeo=1,user=irina,_netdev)
Монтируется нормально при обращении через thunar, файлы открываются. А через некоторое время попытка открыть директорию приводит к зависанию файлового менеджера (и вообще любой программы, обращающейся к шаре, даже lsof). В логах ничего подозрительного нет. Помогает только жёсткая перезагрузка (ну или обычная, но там приходится долго ждать, пока инит поймёт, что пора бы уже плюнуть на попытки отмонтировать сетевой диск), lazy unmount не помогает. На другом конце Windows XP. В крон добавил периодическое обращение к шаре, не помогло.
Если монтировать через gvfs, без записи в fstab, smplayer не может открыть файлы прямо с шары, хотя скопировать файлы оттуда можно. Но там отснятые материалы, копировать туда-сюда гигабайты не вариант, да и неудобно.
А есть такие для управления инфраструктурой в виде аппаратных коммутаторов, роутеров и абонентских устройств? Ansible, например, из коробки умеет только всякие софтовые роутеры, всяких длинков и DCN'ов в модулях не видно.
Нужно, как минимум, уметь централизованно залить базовый конфиг и применить его, перед этим сохранив бэкап. Сейчас используется велосипед на базе parallel-ssh и expect, но хотелось бы более зрелого и универсального решения. Чтобы, например, описать конфигурацию, а конфиг для соответствующего оборудования сгенерировался автоматически, потому что поддерживать конфигурации для разных моделей вручную довольно затратно.