Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Почему epoll лучше:
• O(1) сложность — ядро уведомляет только о готовых дескрипторах, вместо линейного прохода по всем, как в select() или poll().
• Edge-triggered режим — уведомление приходит только при изменении состояния, что снижает нагрузку на ядро.
• Работает с тысячами соединений — критично для высоконагруженных сетевых приложений, серверов и прокси.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3
Как понять, что жрёт всю оперативку (и не тупо смотреть top)
top — хороший инструмент, но часто обманывает: считает shared-память по каждому процессу.
И кажется, будто у вас MySQL ест 6 ГБ, а nginx — ещё 4 (при том что всего 8 ГБ в системе).
Посмотреть реальную картину поможет:
Покажет, сколько памяти реально закреплено за каждым процессом.
Хочешь совсем наглядно — установи скрипт ps_mem:
Результат — короткий отчёт вроде:
И всё, без гадания на RES и SHR. Можно даже в cron добавить, чтобы присылало в Slack, когда какой-то сервис начинает разъедать память.
top — хороший инструмент, но часто обманывает: считает shared-память по каждому процессу.
И кажется, будто у вас MySQL ест 6 ГБ, а nginx — ещё 4 (при том что всего 8 ГБ в системе).
Посмотреть реальную картину поможет:
smem -r
Покажет, сколько памяти реально закреплено за каждым процессом.
Хочешь совсем наглядно — установи скрипт ps_mem:
sudo wget -O /usr/local/bin/ps_mem https://raw.githubusercontent.com/pixelb/ps_mem/master/ps_mem.py
sudo chmod +x /usr/local/bin/ps_mem
ps_mem
Результат — короткий отчёт вроде:
120.0 MiB + 10.0 MiB = 130.0 MiB nginx
350.0 MiB + 50.0 MiB = 400.0 MiB mysqld
И всё, без гадания на RES и SHR. Можно даже в cron добавить, чтобы присылало в Slack, когда какой-то сервис начинает разъедать память.
❤11👍10🔥1
Как грамотно обновлять пакеты без поломки зависимостей
Так ломаются зависимости, исчезают бинарники и перестают работать сервисы.
⏺ Сначала посмотреть, что вообще обновится:
или (для старых систем):
Это покажет, какие пакеты готовы к обновлению, и даст шанс заметить что-то подозрительное — например, обновление ядра или libc.
⏺ Сделать снепшот или бэкап, если есть LVM или Btrfs:
Так можно вернуть систему в прежнее состояние, если после апдейта что-то упадёт.
⏺ Обновлять выборочно:
только критические патчи безопасности
или
если нужно обновить конкретные пакеты.
⏺ Проверить зависимости заранее:
чтобы не обновить библиотеку, от которой зависят критичные сервисы.
⏺ Только после проверки — полное обновление:
Одна из классических ошибок начинающих — запускать yum update или apt upgrade “на удачу”, без понимания, что именно изменится.
Так ломаются зависимости, исчезают бинарники и перестают работать сервисы.
sudo dnf check-update
или (для старых систем):
sudo yum list updates
Это покажет, какие пакеты готовы к обновлению, и даст шанс заметить что-то подозрительное — например, обновление ядра или libc.
sudo lvcreate --size 2G --snapshot --name preupdate_snap /dev/vg0/root
Так можно вернуть систему в прежнее состояние, если после апдейта что-то упадёт.
sudo dnf update --security
только критические патчи безопасности
или
sudo dnf upgrade nginx openssl
если нужно обновить конкретные пакеты.
sudo dnf repoquery --whatrequires <package>
чтобы не обновить библиотеку, от которой зависят критичные сервисы.
sudo dnf upgrade --refresh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5😁4
Какое преимущество у systemd перед классическим init?
Anonymous Quiz
5%
Меньше потребление памяти
82%
Быстрее загрузка за счёт параллельного запуска сервисов
7%
Использует меньше конфигов
6%
Работает только с root
🤣6❤4👍2
Как откатить изменения в конфиге, если сервер не грузится
Классическая ситуация: правишь sshd_config или fstab, сохраняешь, перезапускаешь — и сервер уходит в тишину. Ни SSH, ни консоли.
Решение:
1️⃣ Зайди в rescue-режим (через панель провайдера или GRUB → Advanced options → Rescue mode).
2️⃣ Примонтируй системный раздел:
3️⃣ Откати изменения:
или аналогично для fstab.
4️⃣ Перезапусти систему:
Чтобы не попасть в такую ситуацию снова, добавь автоматическое резервирование в .bashrc:
Теперь при каждом редактировании через edit /etc/ssh/sshd_config создаётся бэкап с датой и временем.
Классическая ситуация: правишь sshd_config или fstab, сохраняешь, перезапускаешь — и сервер уходит в тишину. Ни SSH, ни консоли.
Решение:
mount /dev/sda1 /mnt
chroot /mnt
mv /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
или аналогично для fstab.
reboot
Чтобы не попасть в такую ситуацию снова, добавь автоматическое резервирование в .bashrc:
alias edit='cp "$1" "$1.bak.$(date +%F_%T)" && nano "$1"'
Теперь при каждом редактировании через edit /etc/ssh/sshd_config создаётся бэкап с датой и временем.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥5
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Зачем это нужно:
• Уменьшается количество записей в таблице страниц (page table),
• Снижается нагрузка на TLB (Translation Lookaside Buffer),
• Уменьшается overhead при управлении памятью, особенно в базах данных и JVM.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
Copilot научится видеть экран и выполнять действия на ПК
Microsoft представила новые функции ИИ-помощника Copilot для обычных ПК с Windows 11 — без Copilot+.
Теперь Copilot сможет:
⏺ Сканировать экран и понимать его содержимое (Copilot Vision).
⏺ Принимать голосовые команды через фразу «Hey, Copilot».
⏺ Выполнять действия на ПК (Copilot Actions) — например, редактировать папки с фото или бронировать столик. Actions работает в изолированной среде для безопасности.
Также Microsoft добавила Xbox Gaming Copilot — игровой помощник, который даёт советы и рекомендации во время игры.
Microsoft представила новые функции ИИ-помощника Copilot для обычных ПК с Windows 11 — без Copilot+.
Теперь Copilot сможет:
Также Microsoft добавила Xbox Gaming Copilot — игровой помощник, который даёт советы и рекомендации во время игры.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎10🤔9❤4👍1
Как вернуть сеть, если Netplan или NetworkManager всё поломали
Иногда после изменения netplan или профилей NetworkManager сервер внезапно «пропадает» из сети — SSH не отвечает, а виноват один неудачный apply.
Такая ситуация особенно часта после ручных правок IP, gateway или имен интерфейсов в YAML-файле.
Если есть доступ к консоли (через провайдера или локальный терминал), попробуй сначала безопасный режим:
Он применит изменения временно и даст 120 секунд, чтобы подтвердить — если не подтвердить, система откатится сама.
Если сеть уже упала — верни предыдущий конфиг:
Для NetworkManager можно просто перезагрузить соединения:
Чтобы не оказаться без связи в будущем, всегда делай резерв перед apply:
И по возможности тестируй сетевые изменения через netplan try или в отдельной VM — спасает часы отладки.
Иногда после изменения netplan или профилей NetworkManager сервер внезапно «пропадает» из сети — SSH не отвечает, а виноват один неудачный apply.
Такая ситуация особенно часта после ручных правок IP, gateway или имен интерфейсов в YAML-файле.
Если есть доступ к консоли (через провайдера или локальный терминал), попробуй сначала безопасный режим:
netplan try
Он применит изменения временно и даст 120 секунд, чтобы подтвердить — если не подтвердить, система откатится сама.
Если сеть уже упала — верни предыдущий конфиг:
mv /etc/netplan/01-netcfg.yaml.bak /etc/netplan/01-netcfg.yaml
netplan apply
Для NetworkManager можно просто перезагрузить соединения:
nmcli connection reload
systemctl restart NetworkManager
Чтобы не оказаться без связи в будущем, всегда делай резерв перед apply:
cp /etc/netplan/*.yaml /etc/netplan/*.yaml.bak
И по возможности тестируй сетевые изменения через netplan try или в отдельной VM — спасает часы отладки.
👍13❤4
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.Please open Telegram to view this post
VIEW IN TELEGRAM
😁7❤3
Как восстановить SSH, если после обновления пакетов сервер не пускает
Иногда после апдейта openssh-server или ключевых библиотек SSH перестаёт работать: SSH-клиент зависает или отказывается подключаться.
Часто виноваты несовместимые конфиги или устаревшие ключи.
Если есть доступ к консоли (через провайдера или локальный терминал), первым делом проверь статус сервиса:
Попробуй перезапустить сервер SSH:
Если перезапуск не помогает — верни старый конфиг:
Иногда после апдейта openssh-server или ключевых библиотек SSH перестаёт работать: SSH-клиент зависает или отказывается подключаться.
Часто виноваты несовместимые конфиги или устаревшие ключи.
Если есть доступ к консоли (через провайдера или локальный терминал), первым делом проверь статус сервиса:
systemctl status ssh
Попробуй перезапустить сервер SSH:
systemctl restart ssh
Если перезапуск не помогает — верни старый конфиг:
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
systemctl restart ssh
👎10👍8😁4❤2🫡1
Что делает команда ufw enable?
Anonymous Quiz
6%
Выводит статус firewall
89%
Включает uncomplicated firewall
4%
Отключает все правила
1%
Создаёт лог-файл
👍7😁5❤2
Сбой в AWS затронул множество сервисов по всему миру
Инженеры AWS продолжают устранять масштабный сетевой сбой в центре обработки данных US‑EAST-1.
AWS ограничивает запуск новых инстансов EC2 и снижает нагрузку на сетевые балансировщики, чтобы восстановить подключение и работу API.
В нескольких зонах уже наблюдаются первые признаки восстановления, остальные зоны постепенно приходят в норму.
⏺ Из-за сбоя пострадали Airtable, Canva, Signal, Snapchat, Fortnite, ChatGPT, Duolingo, Zoom, Ring, Hulu, Slack, Reddit, Roblox, Coinbase, Robinhood, приложения McDonald’s, United Airlines и Disney.
У пользователей Alexa колонки массово сообщали о недоступности интернета.
Инженеры AWS продолжают устранять масштабный сетевой сбой в центре обработки данных US‑EAST-1.
Проблема возникла во внутренней сети EC2 и затронула более 100 сервисов и тысячи клиентов.
AWS ограничивает запуск новых инстансов EC2 и снижает нагрузку на сетевые балансировщики, чтобы восстановить подключение и работу API.
В нескольких зонах уже наблюдаются первые признаки восстановления, остальные зоны постепенно приходят в норму.
У пользователей Alexa колонки массово сообщали о недоступности интернета.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4😁3
После изменения правил firewall или iptables сервер перестал отвечать по SSH?
Не паникуем👌
Сначала убедись, что есть доступ к консоли через провайдера или локальный терминал.
Временно откатить правила из бэкапа:
Протестировать новые правила перед применением:
Команда применяет изменения временно и даст 60 секунд на подтверждение. Если что-то пойдёт не так, правила откатятся автоматически.
Проверка текущих правил и соединений:
Так можно убедиться, что SSH и другие критичные сервисы доступны.
Не паникуем
Сначала убедись, что есть доступ к консоли через провайдера или локальный терминал.
Временно откатить правила из бэкапа:
iptables-restore < /etc/iptables/rules.v4.bak
Протестировать новые правила перед применением:
iptables-apply --test
Команда применяет изменения временно и даст 60 секунд на подтверждение. Если что-то пойдёт не так, правила откатятся автоматически.
Проверка текущих правил и соединений:
iptables -L -v -n
ss -tulnp
Так можно убедиться, что SSH и другие критичные сервисы доступны.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5😁2
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.С помощью kprobes можно логировать вход и выход из функций, изменять поведение отдельных вызовов и собирать статистику по производительности. Механизм безопасен, так как вставка точки трассировки не нарушает работу ядра и не требует перезагрузки системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Изменил настройки firewall или iptables, и вдруг сервер «пропал» из сети?
Решаем так👇
Если есть доступ к консоли через провайдера или локальный терминал, сначала проверь, какие правила сейчас активны:
Можно временно применить новые правила и убедиться, что SSH остаётся доступен:
Если что-то пошло не так — откат произойдёт автоматически.
Для более безопасной работы всегда держи резервную копию:
И проверяй соединения:
Так можно экспериментировать с firewall, не теряя доступ к серверу.
Решаем так
Если есть доступ к консоли через провайдера или локальный терминал, сначала проверь, какие правила сейчас активны:
iptables -L -v -n
Можно временно применить новые правила и убедиться, что SSH остаётся доступен:
iptables-apply --test
Если что-то пошло не так — откат произойдёт автоматически.
Для более безопасной работы всегда держи резервную копию:
iptables-save > ~/iptables-backup-$(date +%F).rules
И проверяй соединения:
ss -tulnp
Так можно экспериментировать с firewall, не теряя доступ к серверу.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6❤3🤡1
Чем отличается TCP-флаг RST от FIN?
Anonymous Quiz
10%
RST завершает соединение корректно
76%
FIN сообщает о конце передачи, RST — о сбое
5%
Оба выполняют «мягкое» завершение
9%
FIN используется только при SYN Flood
❤5👍1
Проверка, что реально грузит CPU
Когда сервер кажется «тормозным», top и htop часто показывают поверхностную картину.
Иногда виноваты shared библиотеки, а не сам процесс.
📝 smem — утилита, которая учитывает shared memory и показывает реальное потребление:
Выведет топ процессов по реальной памяти.
📝 pidstat — для мониторинга нагрузки в динамике:
Показывает, какие процессы жрут CPU каждые 2 секунды в течение 10 замеров.
Когда сервер кажется «тормозным», top и htop часто показывают поверхностную картину.
Иногда виноваты shared библиотеки, а не сам процесс.
smem -r | sort -nrk 4 | head -n 10
Выведет топ процессов по реальной памяти.
pidstat -u 2 10
Показывает, какие процессы жрут CPU каждые 2 секунды в течение 10 замеров.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥3
Rust Coreutils 0.3.0: быстрее, безопаснее и почти как GNU
24 октября 2025 вышел Rust Coreutils 0.3.0 (uutils) — аналог GNU Coreutils, но на Rust.
Это более сотни утилит вроде ls, cat, chmod, sort и cp, переписанных с упором на кроссплатформенность и безопасность (работает даже на Windows, Redox и Fuchsia).
Что нового:
⏺ sort стал быстрее GNU-версии в 3.7 раза, base64 — в 1.2, uniq -c — в 1.13;
⏺ добавлена инфраструктура для автоматического трекинга производительности (через CodSpeed);
⏺ улучшена работа с путями, безопасное обращение с rm, du, chmod, chgrp;
⏺ меньше unsafe, больше Rust-подхода через crate nix;
⏺ добавлены новые флаги (--progress, --reference=file, --base58 и др.);
⏺ совместимость с GNU-тестами — 83.9% (немного ниже из-за новых тестов).
Rust Coreutils распространяется по MIT-лицензии, в отличие от GPL у GNU, и уже движется к полной замене классических coreutils.
24 октября 2025 вышел Rust Coreutils 0.3.0 (uutils) — аналог GNU Coreutils, но на Rust.
Это более сотни утилит вроде ls, cat, chmod, sort и cp, переписанных с упором на кроссплатформенность и безопасность (работает даже на Windows, Redox и Fuchsia).
Что нового:
Любопытный факт: именно из-за отсутствия флага --reference в date на Ubuntu 25.10 сломалось автообновление. Теперь всё исправили.
Rust Coreutils распространяется по MIT-лицензии, в отличие от GPL у GNU, и уже движется к полной замене классических coreutils.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🥱1
OSPF Passive Interface: контроль анонсов маршрутов
В крупных сетях бывают интерфейсы, которые должны только получать маршруты OSPF, но не формировать соседства.
Passive Interface решает эту проблему.
С его помощью интерфейс продолжает принимать маршруты, но не инициирует соседские сессии.
⏺ Маршрутизатор знает всё, что нужно, при этом сеть становится «тише», а нагрузка на CPU снижается.
На Cisco IOS настройка выглядит так:
После применения этой команды интерфейс GigabitEthernet0/1 перестанет отправлять hello-пакеты, но маршруты через другие интерфейсы продолжают работать корректно.
На Juniper JunOS принцип аналогичен:
Passive Interface особенно нужен на VLAN-подсетях и внутренних сегментах, где соседей нет.
🔥 Если сочетать passive mode с аутентификацией OSPF, вы получаете дополнительный уровень безопасности. Маршруты продолжают приходить, сеть остаётся стабильной, а ненужные пакеты hello больше не «шумят» в топологии.
В крупных сетях бывают интерфейсы, которые должны только получать маршруты OSPF, но не формировать соседства.
Если оставить их активными, маршрутизатор рассылает hello-пакеты на все интерфейсы, создавая лишний трафик и раскрывая топологию сети.
Passive Interface решает эту проблему.
С его помощью интерфейс продолжает принимать маршруты, но не инициирует соседские сессии.
На Cisco IOS настройка выглядит так:
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
passive-interface GigabitEthernet0/1
После применения этой команды интерфейс GigabitEthernet0/1 перестанет отправлять hello-пакеты, но маршруты через другие интерфейсы продолжают работать корректно.
На Juniper JunOS принцип аналогичен:
protocols ospf {
interface ge-0/0/1.0 {
passive
}
}Passive Interface особенно нужен на VLAN-подсетях и внутренних сегментах, где соседей нет.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍4🔥1