Satont.
299 subscribers
320 photos
52 videos
1 file
201 links
Download Telegram
💯83🤗1
This media is not supported in your browser
VIEW IN TELEGRAM
2❤‍🔥21
🌚5
Ребят, кто с России — проверьте пожалуйста без впн открывается ли у вас https://twir.app

👍 - да
👎 - нет
👍27👎1
Оказывается у меня Twir всё же имеет какой-то кастомный статус на твиче.

На него нельзя warning накинуть, и он может писать в followers-only чат.

Хммм, получается всё таки какие-то скрытые фильтры у них есть, которые бог есть как работают.
Может и банов больше не будет акка бота?
🙏3
Так как вы донатите чутка больше, чем надо на сервера — включил acrcloud для определения музыки в твире, чтобы лучше детектил музыку со стрима без подключения сторонних интеграций по типу vk, last.fm, spotify.

Посмотрим сколько за месяц накапает в биллинг.
4
🤨5😁3🔥1
Хайлоад. 😄

Это я попросил человека нафлудить 60к сообщений в чате твича, и у меня 1.7кк запросов к редису на это тригерится, и 60к+ к постгресу.

Нагрузка серверов сильно возврастает в этот момент, но при этом сервера справляются, бот в этот момент продолжает отвечать на сообщения в чате.

Оч доволен тем, как побустил перформанс. Это всё происходит на shared vcpu виртуалках от хетзнера с 4мя ядрами. Думаю с dedicated или просто большим кол-вом ядер — было бы ещё больше по запасу ресурсов.
🔥62
Forwarded from Amado 👻
😭31😁1
Satont.
Хайлоад. 😄 Это я попросил человека нафлудить 60к сообщений в чате твича, и у меня 1.7кк запросов к редису на это тригерится, и 60к+ к постгресу. Нагрузка серверов сильно возврастает в этот момент, но при этом сервера справляются, бот в этот момент продолжает…
А теперь чутка детальнее.

У меня в боте используется куча систем — сборная солянка из разных ботов.
Из-за этого на каждое событие (фоллоу, сообщение и т.п.) происходит на порядок больше действий и, как следствие, — запросов к базе.

🤯 Проблема

Есть такие ребята, которые просто флудят смайликами, сообщениями, наградами — чтобы накручивать активность в сторонних сервисах (типа StreamElements).

Один из таких товарищей недавно отправил ~3 млн запросов. В итоге:

- traefik лёг
- postgres задохнулся
- система трижды падала

🛠 Что сделал для улучшения:

- Свап traefikhaproxy в критичных местах (EventSub webhooks)
Почему Haproxy?
1. без GC
2. без компрессии
3. стабилен под нагрузкой (написан на C)


- Добавил batch-сохранения в базу
1. Раньше: один INSERT на каждое сообщение.
2. Теперь: всё уходит в очередь и раз в X мс заливается в базу одной пачкой через COPY.

Своя либка под это:
👉 https://github.com/twirapp/batch-processor

- Кэширование READ-запросов через Redis
Написал обёртку GenericCacher, которая кэширует по ключу, TTL и умеет делать invalidate. Если в кэше данных нет — вызывается LoadFn, и данные записываются в кэш.
🧱 Пример использования:
c.channelsCache.Get(ctx, channelId)
c.channelsCache.Invalidate(ctx, channelId)

Создания:
go
c.channelsCache = generic_cacher.New[channelmodel.Channel](
generic_cacher.Opts[channelmodel.Channel]{
Redis: redis,
KeyPrefix: "cache:twir:channel:",
LoadFn: repo.GetByID,
Ttl: 24 * time.Hour,
},
)


Результат:

Теперь даже при диком флуде — система не ложится.
Нагрузка снижена, всё живёт.
Да, редис стал принимать на себя на порядок больше, но за-то теперь нагрузки более правильные что-ли, бот даже не теряет во времени ответа на команды в моменте оверлоада системы.

И в целом мы теперь лучше готовы к подключению бота на крупных каналах, где чат летит с такой скоростью, что даже сервер сообщений твича пролагивает из-за этого.
❤‍🔥14👍3🆒21
Есть тут кто по ИП работал?

Хочу вас вопросами подоставать.
👀5
Please open Telegram to view this post
VIEW IN TELEGRAM
https://t.iss.one/savdevops

Канал моего друга, червечка-девопсера.

Подписывайтесь, будет рассказывать вам за реалии современного менеджмента всей той фигнёй что мы пишем.

Пока постов не много, но человек дал кровную клятву развиваться.

На правах антирекламы ерид 133722888005553535.
6
Satont.
Планирую расширять ресурсы твира, и перекинуть всё на hetzner. Напоминаю, сейчас меня хостят бесплатно, один сервак всего. Докинуть ресурсов не могу. А ресурсы порой кончаются, например сейчас в пике может 12гб оперативки потребляться из 16ти. В какой-то скорый…
Сегодня оплатил сервера.

Напоминаю, что по желанию вы можете поддержать твир и мою работу.
Всем спасибо, кто продолжает быть подписаным на бусти. 🥹
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8😘4🍾2😁1
Forwarded from suhodolskiy
Делюсь простым инструментом для бэкапа, которым пользуюсь сам на всех своих проектах.

Основной функционал:
1. Позволяет настраивать регулярные дампы и может сохранять их локально или отправлять в облачные хранилища (S3, Google Drive, Azure, Nextcloud и другие).
2. Поддерживает множество популярных СУБД из одного контейнера.
3. Есть интеграции с Email, Slack, Telegram и другими сервисами для отправки уведомлений о статусе бэкапа.
4. Поддерживает сжатие, шифрование и автоматическое удаление старых резервных копий.

Рекомендую, детальнее тут: https://github.com/tiredofit/docker-db-backup
4❤‍🔥1👍1