Тулкит для графической утилитки
На чём сейчас можно написать небольшой настольны фронт для приложения в стеке Linux и C?
На фронте будет пара табличек и формочки редактирования, управления, отображения состояния бакенда
На чём сейчас можно написать небольшой настольны фронт для приложения в стеке Linux и C?
На фронте будет пара табличек и формочки редактирования, управления, отображения состояния бакенда
Имеется набор сложных данных, объединённых в группы
Все группы имеют TTL
Есть функция доступа к данным через связи с группами FIND
Протокол доступа предусматривает три реакции в случае истечения TTL
тип реакции хранится в свойствах групп
При этом, после обнаружения истечения TTL группы запускается поток обновления данных всей группы
Обновление может растянуться на 4 байта секунд в случае проблем связи
Метод обновления так же описан в свойствах группы
Нужно исключить параллельный запуск обновления одной группы и перестать учитывать TTL группы просроченных данных в кеше
Группы и данные хранятся в uthash таблицах groups и records для хранения данных для кеша для групп с 3 типом реакции реализовал параллельную таблицу cache_groups
FIND в поисках группы оббегает сначала groups и при неуспехе ищет в cache_groups
в случает обнаружения истечения TTL ==> меняю в группе свойство active=0
и отправляю указатель на группу в очередь для обновлений
обновление подразумевает получение набора данных для генерации новых значений records для groups (разными методами)
если использовать метод первоначальной инциализации данных, а он длинный и не линейный, то получается, что FIND начнёт видеть перед кешем ещё не полностью восстановленные данные группы
как восстановить данные после обновления?
в обновлении генерировать в GROUPS скрытый для FIND набор данных для группы
или как то другому можно управлять кешированием?
Имеется микротик с белым адресом через PPPoE (pppot-out1)
Как настроить маршрутизацию так, чтобы заходящие на белый адрес пакеты на 53 порт передавались локальному сервер 192.168.10.2 на порт 1053 (и ответы уходили обратно)
так чтобы сервер 192.168.10.2 видел реальные IP клиентом, а не IP роутера (сейчас настроен NAT проброс порта 53<>1053)
Последние два дня с серверов
inetnum: 217.12.105.0 - 217.12.105.255 netname: ALFA-BANK-COMMON2
идёт большой трафик на 53 порт, в запросе qtype=255 и QNAME=(sl) d в количество 1500 запросов в секунду, я насчитал 2794 сервера с которых льётся этот трафик
зачем они это далают?
Попробовал свои плейбуки на серверах с новой Ubuntu24, там где Python 3.12 и поймал несовместимость на уровне requests/urllib3
То-есть, скрипт плейбука сгенерированный ансамблем на более раннем Python 3.10 не работает в среде Python 3.12, скорее всего и в обратную сторону тоже не будет работать
И как теперь запускать плейбуки на разных машинах?
Как можно лучше организовать проброс канала с шифрованием в докер контейнеры?
Имеют сервер с базой, к которой можно подключить через stunnel4
Ansible разворачивает сервера с докерами, на серверах Ansible настраивает stunnel4 в качестве клиента и настраиваю accept на интерфейс docker0 у которого адрес плавающий (accept = 172.17.0.1:65432)
А затем подключаюсь внутри контейнеров docker-compose exec db psql postgresql://user:passw@172.17.0.1:65432/dbname
Причём это соединение с главной базой может использоваться между разными пользователями хоста, то-есть изолировать его не имеет особого смысла
Но это такое временное решение, нужно какое то стационарное, но вот какое? (открывать stunnel наружу не нужно)
Имеется сетка на несколько доменов в интернете, с несколькими локальными сетями
Имеется, своя DNS инфраструктура, где bind9+DNSSEC как мастер на VDS в рунете, и несколько slave серверов так же на различных VDS
Хочу перенести bind master внутрь DMZ, прокинуть 53 порты и перенастроить Slave на работу с новым мастером, а также настроить мастер для обслуживания локальной сетки и связанных витуальных
Так вот: имеет ли смысл заморачиваться с мастером внутри Docker контейнера или по классике?
ps: ещё бы какой то web редактор зон для админов
Имею следующую проблему:
есть API securepayments.sberbank, всё работало как обычно, но сегодня часть запросов стала ломаться (сапорт пытаются решить, но чтото долго)
видимо у них бакенд за двумя барансировщиками и один не принимает запросы
пробовал в /etc/hosts добавить securepayments.sberbank.ru только IP рабочий, но приложения (видимо из-за SSL) всё равно резольвят через DNS и часть запросов не проходит
есть ли какой то способ залочить чужой домен на рабочий IP без престройки приложения?
Заметил, что в последние две недели в vim перестала работать клавиша Esc, комбинация Ctrl+[ работает как положено
Сначала перестала работать в терминале MacOS (через ssh) но воспринял как должное
Теперь отвалилась на всех компьютерах где периодически обновляется Ubuntu
Сама кнопка работает в других приложения,
xev показывает
( читать дальше... )
эффект проявляется в терминалах типа mate tilix xterm как вернуть норльный Esc в vim ?
Есть такой проект coqui_stt они форкнули mozilla deepspeech, то-есть на выходе ожидается сетка способная парсить вафли в текст
собрал докер с поддержкой nvidia
взял у mozilla датасет для нашего языка, поставил на тренировку
скрипт тренировки висит, в nvtop видно что скрипт тренировки использует 60% памяти, нагрузка на GPU скачет с 20 до 50%
и так висит целый день
интересно это датасатанисты так и задумали или фича такая?
Обнаружил, что некоторые пользователи присылают различные варианты букв ЙйЁё, то-есть, вместо обычной букв ЙйЁё приходит комбинация ИиЕе и символов с кодам 774 и 776 и как следствие некоторые брОвзеры криво отображают эти символы
Соответственно нужно где то делать replace. И вот думаю в какой части стека (nginx/uwsgi/django/postgres) лучше проводить эту замену? Если добавлять мидлварь в Django то там ломается request.POST.getlist добавлять триггеры в постгрессе как то совсем дико получается Может на уровне uwsgi можно добавить какой то прокси?
Имеется ли у нас возможность сохранить динамически слинкованную программу в виде статически слинкованного бинарника, который затем можно запустить в системе где не установлены некоторые динамические библиотеке ?
Пробовал сохранить дамп с помощью gcore, а потом запускать через gdb и видимо это не совсем то что нужно
нужно иметь возможность сохранить работающую игру, чтобы затем иметь возможность запустить её на другом компьютере с linux без заморочки с установкой зависимостей
или может быть есть инструмент для пересборки динамического приложения в статическое?
Тестирую новенький NVME диск в связке с LVM/RAID0
для начала запускаю бенч на корневом разделе который размещён на NVME
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75 --size=4G --filename=testfile
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.28
Starting 1 process
Jobs: 1 (f=1): [m(1)][100.0%][r=475MiB/s,w=158MiB/s][r=122k,w=40.5k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=967354: Fri Jan 20 16:08:51 2023
read: IOPS=122k, BW=477MiB/s (500MB/s)(3070MiB/6433msec)
bw ( KiB/s): min=484400, max=494952, per=100.00%, avg=488777.33, stdev=2638.53, samples=12
iops : min=121100, max=123738, avg=122194.33, stdev=659.63, samples=12
write: IOPS=40.8k, BW=159MiB/s (167MB/s)(1026MiB/6433msec); 0 zone resets
bw ( KiB/s): min=160680, max=165056, per=100.00%, avg=163478.00, stdev=1347.77, samples=12
iops : min=40170, max=41264, avg=40869.50, stdev=336.94, samples=12
cpu : usr=21.74%, sys=43.69%, ctx=445460, majf=0, minf=6
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=477MiB/s (500MB/s), 477MiB/s-477MiB/s (500MB/s-500MB/s), io=3070MiB (3219MB), run=6433-6433msec
WRITE: bw=159MiB/s (167MB/s), 159MiB/s-159MiB/s (167MB/s-167MB/s), io=1026MiB (1076MB), run=6433-6433msec
Disk stats (read/write):
nvme0n1: ios=781546/261240, merge=0/11, ticks=395602/2057, in_queue=397662, util=98.54%
получаю вот такие скорости чтения/записи:
read: IOPS=122k, BW=477MiB/s (500MB/s)(3070MiB/6433msec)
write: IOPS=40.8k, BW=159MiB/s (167MB/s)(1026MiB/6433msec);
затем создаю 6 пустых балванок
dd if=/dev/zero bs=1500M count=1 of=raid/sda{1..6}.dd
затем монтирую как устройства /dev/loop{15..20} и уже из них делаю LVM/RAID0
lvs -a -o name,copy_percent,devices vgdata
LV Cpy%Sync Devices
lvmirror /dev/loop15(0),/dev/loop16(0),/dev/loop17(0),/dev/loop18(0),/dev/loop19(0),/dev/loop20(0)
losetup -l|grep sda
/dev/loop19 0 0 0 0 /root/raid/sda5.dd 0 512
/dev/loop17 0 0 0 0 /root/raid/sda3.dd 0 512
/dev/loop15 0 0 0 0 /root/raid/sda1.dd 0 512
/dev/loop18 0 0 0 0 /root/raid/sda4.dd 0 512
/dev/loop16 0 0 0 0 /root/raid/sda2.dd 0 512
/dev/loop20 0 0 0 0 /root/raid/sda6.dd 0 512
монтирую полученную FS в дирикторию raid
mount |grep raid
/dev/mapper/vgdata-lvmirror on /root/raid type ext4 (rw,relatime,stripe=96)
запускаю бенч уже на этой файловой систем и получаю удвоение производительности
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75 --size=4G --filename=testfile
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.28
Starting 1 process
Jobs: 1 (f=1): [m(1)][100.0%][r=738MiB/s,w=247MiB/s][r=189k,w=63.2k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=967394: Fri Jan 20 16:09:19 2023
read: IOPS=190k, BW=743MiB/s (779MB/s)(3070MiB/4130msec)
bw ( KiB/s): min=750888, max=775560, per=100.00%, avg=761323.00, stdev=7770.14, samples=8
iops : min=187722, max=193890, avg=190330.75, stdev=1942.54, samples=8
write: IOPS=63.6k, BW=248MiB/s (260MB/s)(1026MiB/4130msec); 0 zone resets
bw ( KiB/s): min=251480, max=259656, per=100.00%, avg=254520.00, stdev=2730.45, samples=8
iops : min=62870, max=64914, avg=63630.00, stdev=682.61, samples=8
cpu : usr=29.35%, sys=70.53%, ctx=197, majf=0, minf=8
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=743MiB/s (779MB/s), 743MiB/s-743MiB/s (779MB/s-779MB/s), io=3070MiB (3219MB), run=4130-4130msec
WRITE: bw=248MiB/s (260MB/s), 248MiB/s-248MiB/s (260MB/s-260MB/s), io=1026MiB (1076MB), run=4130-4130msec
Disk stats (read/write):
dm-0: ios=739484/247392, merge=0/0, ticks=3636/1212, in_queue=4848, util=97.59%, aggrios=130986/43776, aggrmerge=0/0, aggrticks=648/234, aggrin_queue=883, aggrutil=96.38%
loop19: ios=130874/43894, merge=0/0, ticks=646/233, in_queue=880, util=96.38%
loop17: ios=131194/43558, merge=0/0, ticks=654/234, in_queue=888, util=96.38%
loop15: ios=131019/43749, merge=0/0, ticks=651/235, in_queue=886, util=96.38%
loop18: ios=130916/43848, merge=0/0, ticks=649/240, in_queue=888, util=96.38%
loop16: ios=131062/43706, merge=0/0, ticks=648/232, in_queue=879, util=96.38%
loop20: ios=130856/43901, merge=0/0, ticks=644/232, in_queue=877, util=96.38%
получаю вот такие скорости чтения/записи:
read: IOPS=190k, BW=743MiB/s (779MB/s)(3070MiB/4130msec)
write: IOPS=63.6k, BW=248MiB/s (260MB/s)(1026MiB/4130msec);
действительно ли этот тест показывает повышение производительности и за счёт чего оно происходит?
Первые завёл дискретную карту GTX 1050 TI (БУ) (ради nvenc) и не имею опыта работы с такими девайсами
заметил что при включении ПК видеокарта запускат вертиляторы и выключает когда проходит тестирование биос
После загрузки ОС всё работает хорошо, но вызывает подозрение то, что вертилятор на карте не работает.
Когда запускаю Unigine_Valley-1.0, утилита NVIDIA Settings показывает что температура растёт до 62, а вертилятор работает на скорости 29% от максимума, там же можно вручную выставлять скорость вертиляции
на ощупь радиатор видеокарты горячее чем горчий кофе и рука едва держит несколько секунд
не ужели это нормальное поведение и биос карты при такой температуре сама выставляет такие обороты вертиляции и можно ли как то изменить такое поведение?
Ставлю сервер на антресоль, рядом с роутером (Huawei HG8245H) через провод, ожидал что роутер выдаст серверу что-то из диапазона 192.168.100.*, так же как роутер выдаёт Wifi клиентам и настольнику по проводу
но сервер через DHCP получает 10.44.163.41 и 0.0.0.0 10.44.160.1 0.0.0.0 UG 100 0 0 enp5s0f1
если на второй интерфейс сервера переключаю провод с роутера на настольник (с настроенным DHCPD) то сервер получает 192.168.0.101 и нормально взамодействует с настольником, если настроить статически то в локальке с настольником тоже работает
если статически настроить для сети с роутером, то роутер пингует но трафик ни какой не пропускает
netplan вот такой
network:
ethernets:
enp5s0f0: addresses: - 192.168.0.101/24 nameservers: addresses: [8.8.8.8, 8.8.4.4] enp5s0f1: dhcp4: true
version: 2
в чём может быть проблема?
UDP: проблема была в кабеле
Реализую архитектуру в которой мастер-сайт находится на локальных ресурсах и изменения контента и каталога происходят локально с последующей автоматической репликацией (логической) на зеркала в докер-контейнерах размещённых в разных местах (странах), файловый контент раздаётся через CDN, тут схема отточена и прекрасно работает
Но большой зуд вызывает обратный поток данных в виде заказов и запросах (из ЛК) поступающих на зеркальные ноды от клиентов. например, когда на российском и арабских сайтах создаётся заказ с совпадающим порядковым номером
логическая репликация не подходит по причине дублирования примарикей на зеркалах и пересечения на мастербазе
кастомные типы для примарикей доставляют проблемы на уровне django: миграции, тестирование и автоматическое развёртывание
замена примарикей на UUID тоже не самое приятное решение, так как придётся всё переделывать и точно так же не даст 100% гарантии от дублей, а мне не охота потом разруливать эти проблемы
пока вижу решения либо celery очереди выполнять на мастер сайте, но тогда возникает проблема в живучести этих сетевых очередей и потере запросов
либо обернуть всё входящее api врапером и пушить из зеркальной очереди на мастер апи-сервер со своей внутренней очередью с последующей уже написанной пост-обраткой на мастере
может быть ещё какой то вариант есть реализации обратной репликации?
На VPS работает сессия FluxBox+VNC чтобы была возможность запускать постоянно Firefox или Chromium через Selenium
и регулярно отваливается Firefox и Chromium
cmd_run.go:1053: WARNING: cannot start document portal: dial unix /run/user/0/bus: connect: permission denied
/user.slice/user-0.slice/session-17.scope is not a snap cgroup
лечится обновлением ядра и перезагрузкой, сейчас опять такое произошло, но в репозитарии нет новых ядре и процесс замер
это какая подстава с этим Snap
как можно выкрутиться?
странно, откуда /run/user/0/bus берётся
Раньше мы делали примерно так: transmission-create Server.vdi -t udp://tracker.openbittorrent.com:80
затем засовывали в трансмишен и отсылали магнет-ссылку на этот торрнет, а с той стороны скачивали. сейчас эта схема не работает, раздача висит, закачка ни не идёт, даже на соседнем компе
как сейчас раздать файл не несколько десяток гигов без регистрации и смс?
зы: с этими трекерами заработало спустя полчаса
Поставил на эту железку Ubuntu20.04 тормозит всё безобразно, дрова на видюшку не ставятся, даже удивтельно как можно тормозить на 32 гигах
как расшевелить? какую видюшку лучше поставить? сейчас пробовал geforce 210 и 9600GT и ещё какую то p345
Подскажите как отследить и исправить следующее странное поведение PostgreSQL
Иногда, теряются данные накопленные за день на dev сервере, то-есть в течении дня вносятся некоторые правки и иногда сервер откатывается к утреннему состоянию, когда был накачен бека
все записи в базе как будто только из бекапа, в логах тоже нет ничего свежего, как будто восстановился из снапшота
дев-сервер, железка, на которой работаю сам, откатываются базы с которыми работают через сеть другие сотрудники, откат происходит чаще всего когда я делаю чтото вызывающее sync, например git commit/push но коммит вообще ни как не связан в базой
возможно нужно как то включить логирование на какой то внешний сервер или PostgreSQL где то ведёт журналы
следующие → |