Admin Guides | Сисадмин
11.4K subscribers
1.24K photos
19 videos
34 files
559 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
Sysctl для серверов с большим числом подключений

Когда сервер обслуживает сотни тысяч TCP-сессий, стандартные настройки ядра Linux могут стать узким местом.

TIME_WAIT, переполнение очередей сокетов и медленный отклик — типичные признаки. Тут на помощь приходят параметры sysctl.

Основные настройки

net.ipv4.ip_local_port_range — диапазон локальных портов для исходящих соединений. Увеличение диапазона помогает избежать исчерпания портов при массовых подключениях.
net.ipv4.tcp_tw_reuse — разрешает повторное использование сокетов в состоянии TIME_WAIT для новых исходящих соединений.
net.ipv4.tcp_tw_recycle — ускоряет очистку TIME_WAIT (не рекомендуется для NAT).
net.core.netdev_max_backlog — размер очереди пакетов в драйвере сети. Увеличение помогает при пиках входящего трафика.

Измеряем эффект

До изменений:

ss -s | grep TIME-WAIT
cat /proc/sys/net/core/netdev_max_backlog


Применяем sysctl:

sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.core.netdev_max_backlog=5000


После изменений: повторяем измерения TPS (запросов в секунду) и TIME_WAIT.

Вывод: больше соединений проходит без ошибок, очередь пакетов меньше переполняется, нагрузка на сервер равномернее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73
Bcachefs теперь «внешне поддерживаемая»

28 августа 2025 года Линус Торвальдс перевёл файловую систему Bcachefs в режим Externally maintained. 


Это значит, что ядро больше не принимает её изменения, а дальнейшая разработка ведётся вне основной кодовой базы.

Причина — конфликты с автором проекта Кентом Оверстритом: он присылает крупные изменения в неподходящее время, нарушая процесс ядра.

Торвальдс считает, что поздние релизы должны лишь исправлять ошибки, а Оверстрит настаивает на срочном исправлении багов для сохранности данных. Bcachefs остаётся экспериментальной ФС.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🤔1
Logrotate для нестандартных приложений

Стандартные сервисы вроде Nginx или syslog ротируются автоматически, а вот для нестандартных daemon или собственных приложений нужно использовать postrotate, sharedscripts и правильно обрабатывать сигнал HUP.

postrotate — команды после ротации (например, сигнал процессу перечитать лог).
sharedscripts — если несколько файлов ротируются, скрипт выполняется один раз.
HUP — заставляет daemon перечитать файл без перезапуска.

Пример для PostgreSQL:

/var/log/postgresql/*.log {
daily
rotate 7
compress
delaycompress
notifempty
missingok
sharedscripts
postrotate
systemctl reload postgresql > /dev/null 2>/dev/null || true
endscript
}


Здесь логи сжимаются и хранятся неделю, пустые файлы не ротируются, а PostgreSQL после ротации продолжает писать в новый файл.

Пример для Nginx:

/var/log/nginx/*.log {
daily
rotate 14
missingok
notifempty
sharedscripts
postrotate
[ -f /run/nginx.pid ] && kill -HUP `cat /run/nginx.pid`
endscript
}


Можно добавить уведомление админа через mail или Slack.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
Контейнер в Kubernetes постоянно перезапускается. Команда kubectl describe pod показывает:

Back-off restarting failed container Что это означает?
Anonymous Quiz
19%
kubelet не видит контейнер
58%
Pod зациклился в CrashLoopBackOff
7%
Подов слишком много в namespace
16%
Kubernetes перезапустил узел
6🔥3
DevOps, админы, разработчики, архитекторы — хватит закрывать глаза на «серого кардинала» кластера. 

9 сентября в 19:00 мы разберём все тонкости работы kubelet с ведущим DevOps-инженером и магистром Михаилом Чугуновым.

На вебинаре вы узнаете:
💡Как kubelet управляет жизненным циклом подов и почему без него кластер — как корабль без капитана 
💡Что происходит, когда kubelet падает, и как быстро возвращать систему в строй
💡Взаимодействие с API-сервером, CRI, CNI, CSI и kube-proxy — не только теория, но реальные практические советы
💡Как избежать катастроф из-за неправильной настройки kubelet и продумать архитектуру под микросервисы

🎁Бонусы для участников:
7% скидка на любой курс OTUS
Видео-урок: «Детальный разбор Kubernetes»
Видео-разбор: «строим конвейер поставки»

Не откладывай — количество мест ограничено, а кластер ждать не станет. 
Записывайся https://tglink.io/211848aff6ef

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFG9LYkG
2👎2
Мониторинг открытых файлов: lsof

В Linux всё — это файл. Сюда попадают не только документы на диске, но и сокеты, устройства, пайпы.

Иногда это приводит к странным ситуациям: файл вроде удалили, а место на диске не освободилось. Или порт висит занятым, хотя процесс уже остановлен. 


В таких случаях незаменим инструмент lsof (list open files).

Несколько базовых приёмов:
lsof /path/to/file — покажет, какой процесс держит файл открытым. Полезно, если удалённый лог «не освобождает» место.
lsof -i :8080 — кто слушает порт 8080 или держит соединение. Отлично работает при отладке сервисов.
lsof -u www-data — все открытые файлы конкретного пользователя, например, у веб-сервера.

Кроме поиска по файлам и портам, lsof помогает находить процессы с утечками дескрипторов. Иногда сервисы постепенно «съедают» лимит открытых файлов, и тогда lsof -p <PID> покажет, чем именно завален процесс.

🔥 В связке с df и du утилита позволяет быстро вычислить «невидимых пожирателей места», а при отладке сетей — вычленить подозрительные соединения.

Инструмент старый, но до сих пор один из самых надёжных для диагностики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Transparent Hugepage defrag и как это влияет на производительность системы?

Ответ: Transparent Hugepage (THP) defrag — это механизм в Linux, который пытается объединять мелкие страницы памяти в большие (HugePages) для оптимизации TLB и уменьшения накладных расходов на управление памятью.

Однако агрессивная дефрагментация может вызвать паузы в работе приложений из-за копирования страниц, поэтому в высоконагруженных системах её часто отключают или настраивают в режиме “madvise”, чтобы влияние на производительность было минимальным.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3
Поиск «тяжёлых» файлов: ncdu

Когда на сервере заканчивается место, команды вроде du и ls -lh не всегда помогают быстро понять, что именно съедает дисковое пространство. 


На помощь приходит ncdu — интерактивный аналог du, который показывает размер каталогов и файлов в удобной древовидной структуре и позволяет управлять ими прямо из интерфейса.

Например, чтобы проверить логи:

ncdu /var/log


Откроется текстовый интерфейс, где можно быстро сортировать файлы и папки по размеру, перемещать их или удалять.

Это помогает находить крупные логи, временные файлы и другие объекты, которые занимают место, без необходимости писать сложные скрипты.

Плюсы ncdu:
Видно, сколько реально занимает каждая папка.
Можно удалять или перемещать файлы прямо в интерфейсе.
Быстро ориентируетесь на серверах с ограниченным SSD.
Подходит для диагностики как пользовательских, так и системных директорий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥1
Первый альфа-выпуск дистрибутива KDE Linux

Команда KDE представила первый альфа-выпуск дистрибутива KDE Linux. 


Системные образы (~5 ГБ) работают в Live-режиме, основаны на Arch Linux, обновляются атомарно и поддерживают зашифрованные разделы для пользовательских данных.

Обновления идут на пассивный Btrfs-раздел с возможностью отката, а дополнительные приложения можно устанавливать через Flatpak, AppImage, Snap, Distrobox или Toolbox.

Альфа рассчитана на тестирование и контроль качества, поддерживает только UEFI, Wayland и новые GPU NVIDIA (Turing+).

В будущем появятся Stable и Enthusiast Edition с финальными и свежими релизами KDE Plasma.
9👍5🔥2👎1
Впервые на экранах! Онлайн-марафон «PT NGFW: исповедь инженеров» 😲

Пять дней инженерного хардкора: с 15 по 19 сентября, 11:00-13:00💪

Кажется, команда готова исповедоваться: за одну неделю расскажет не только, как работает PT NGFW, но и почему он работает именно так. Это будет не просто теория, а живой обмен опытом, разбор реальных кейсов и практические советы, которые можно сразу применить в работе.

В спикерах — вся команда PT NGFW.

🏆Головоломки от наших экспертов и шанс выиграть собственный PT NGFW*🏆

Регистрируйтесь на сайте

Информация о конкурсе
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1
Inotify и fsnotify для событий на файловой системе

Linux умеет уведомлять процессы о событиях на файловой системе.

С помощью inotify (и абстракции fsnotify в ядре) можно отслеживать создание, удаление, модификацию файлов и каталогов, что удобно для автоматизации.

Пример применения: нужно запускать скрипт каждый раз, когда появляются новые логи или выгружается дамп БД. 


Вместо регулярного опроса ls или find достаточно «подписаться» на события файловой системы — это экономит ресурсы и ускоряет реакцию.

Базовый пример с inotifywait (из пакета inotify-tools):

# следим за появлением новых файлов в каталоге /var/log/myapp
inotifywait -m /var/log/myapp -e create -e moved_to |
while read path action file; do
echo "Новый файл $file обнаружен в $path, запускаем скрипт..."
/usr/local/bin/process_new_log.sh "$path/$file"
done


Что можно отслеживать:
• create — создание файла
• delete — удаление
• modify — изменение содержимого
• moved_to / moved_from — перемещение файлов в/из каталога
10👍6
Почему так?
😁183🥴3
Быстрый поиск строк в логах: ripgrep

Когда на сервере гигабайты логов, а надо срочно найти конкретную ошибку, стандартный grep начинает тормозить.

Здесь помогает ripgrep (rg) — современный инструмент поиска по тексту. 


Он оптимизирован под большие объёмы данных и работает в разы быстрее.

Пример для поиска ошибок во всех логах:

rg "ERROR" /var/log


По умолчанию он рекурсивно обходит каталоги и выводит совпадения с путём к файлу и номером строки.

Если нужен контекст вокруг найденной строки:

rg -C 3 "FATAL" /var/log/postgresql


Так выводятся три строки до и после совпадения — удобно при анализе логов PostgreSQL, Nginx или системных журналов.

ripgrep поддерживает регулярные выражения, можно искать сразу несколько шаблонов и фильтровать файлы по расширениям. Например:

rg -t sql "SELECT.*FROM" /var/log


Вывод ограничится только SQL-логами.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм Copy-on-Write (CoW) в Linux и зачем он нужен?

Ответ: Copy-on-Write (CoW) — это оптимизационный механизм, который позволяет нескольким процессам совместно использовать одну и ту же область памяти до тех пор, пока один из них не попытается ее изменить.

При fork дочерний процесс получает копию страниц памяти родительского, но фактически обе копии указывают на одни и те же физические адреса. Только если один из процессов пытается записать в память, ядро создает новую копию изменяемой страницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
BGP PIC (Prefix Independent Convergence)

BGP PIC ускоряет failover, предустанавливая резервный next-hop. 


При падении primary hop трафик мгновенно переключается без полной перерасчётки маршрутов. Обычно обычный BGP failover занимает секунды, с PIC — миллисекунды.

Применяется в WAN и датацентрах с критическим SLA, ECMP-сценариях, L3VPN/EVPN.

Виды:

Core (по префиксу) — precomputed backup next-hop в FIB, переключение мгновенное.
Edge (по соседу) — резерв на уровне BGP-соседа, удобно для PE/CE.

Настройка на Cisco IOS-XR:

router bgp 65001
address-family ipv4 unicast
bgp bestpath pic
network 10.0.0.0 mask 255.255.255.0


Juniper JunOS:

protocols {
bgp {
group IBGP {
type internal;
local-address 192.168.0.1;
family inet { unicast; }
pic;
}
}
}


Для проверки failover включают BFD, пингуют primary hop и отключают линк. С BGP PIC потеря пакетов минимальна, трафик идёт на backup сразу.

⚡️Особенности: резервный next-hop должен быть в FIB, потребляет RAM/CPU для precompute, на больших таблицах BGP может потребоваться tuning.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1
CI/CD — это не больно! Разбираем 5 шагов к эффективности

Знакомо, когда пайплайн ломается в неподходящий момент, а поставка кода — полоса препятствий?

Приходите на бесплатный вебинар от учебного центра Слёрм и научитесь выстраивать эффективные процессы за 5 шагов:

⚫️ Осознание
Соберём запросы от разработчиков и поймём: «что нам нужно от пайплайна?»
⚫️ Создание
Обсудим, на чём строить и как избежать архитектурных костылей.
⚫️ Безопасность
«Зашьём» проверки на всех этапах, не создавая монстра.
⚫️ Шаблонизация
Научим создавать шаблоны для упрощения поддержки. Забудьте про рутину.
⚫️ Пайплайн как сервис
Вечный процесс улучшения, а не ваша головная боль.

📆 Когда: 17 сентября в 19:00 (мск)

Спикеры:
⚡️Вячеслав Федосеев, TeamLead DevOps в «Честном Знаке»
⚡️Евгений Федосеев, DevOps-инженер в «Пульс АЙТИМ»

Все детали в боте-помощнике. Занимайте места!
1