Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥3👎1
Secure Copy больших файлов: rsync vs scp
При работе с десятками гигабайт через SSH обычный scp начинает тормозить.
Почему?
Потому что он копирует файл целиком, без возможности возобновления, и каждый раз создаёт новое TCP-соединение.
Rsync через SSH решает это:
⏺ Передача только изменений (--partial и --inplace)
⏺ Можно включить сжатие (-z)
⏺ Поддерживает батчевую передачу и возобновление
Примеры:
Копирование одного большого файла с rsync:
Если соединение обрывается, можно повторно выполнить команду — rsync продолжит с места прерывания.
Копирование каталога с контрольным мультиплексированием SSH:
А затем:
Все повторные подключения будут идти через уже открытое TCP-соединение, экономя время.
scp с мультиплексом и сжатием:
Но для больших директорий rsync остаётся более гибким и надёжным, особенно если нужно резервное копирование или синхронизация.
При работе с десятками гигабайт через SSH обычный scp начинает тормозить.
Почему?
Потому что он копирует файл целиком, без возможности возобновления, и каждый раз создаёт новое TCP-соединение.
Rsync через SSH решает это:
Примеры:
Копирование одного большого файла с rsync:
rsync -avz --progress /local/largefile user@remote:/backup/
Если соединение обрывается, можно повторно выполнить команду — rsync продолжит с места прерывания.
Копирование каталога с контрольным мультиплексированием SSH:
Host remote
HostName 203.0.113.10
User admin
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m
А затем:
rsync -avz /local/dir remote:/backup/dir
Все повторные подключения будут идти через уже открытое TCP-соединение, экономя время.
scp с мультиплексом и сжатием:
scp -o ControlMaster=auto -o ControlPath=~/.ssh/cm-%r@%h:%p -C /local/largefile remote:/backup/
Но для больших директорий rsync остаётся более гибким и надёжным, особенно если нужно резервное копирование или синхронизация.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍8❤3
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 — размер очереди пакетов в драйвере сети. Увеличение помогает при пиках входящего трафика.
Измеряем эффект
➖ До изменений:
➖ Применяем sysctl:
➖ После изменений: повторяем измерения TPS (запросов в секунду) и TIME_WAIT.
➖ Вывод: больше соединений проходит без ошибок, очередь пакетов меньше переполняется, нагрузка на сервер равномернее.
Когда сервер обслуживает сотни тысяч TCP-сессий, стандартные настройки ядра Linux могут стать узким местом.
TIME_WAIT, переполнение очередей сокетов и медленный отклик — типичные признаки. Тут на помощь приходят параметры sysctl.
Основные настройки
Измеряем эффект
ss -s | grep TIME-WAIT
cat /proc/sys/net/core/netdev_max_backlog
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3
Bcachefs теперь «внешне поддерживаемая»
Это значит, что ядро больше не принимает её изменения, а дальнейшая разработка ведётся вне основной кодовой базы.
⏺ Причина — конфликты с автором проекта Кентом Оверстритом: он присылает крупные изменения в неподходящее время, нарушая процесс ядра.
Торвальдс считает, что поздние релизы должны лишь исправлять ошибки, а Оверстрит настаивает на срочном исправлении багов для сохранности данных. Bcachefs остаётся экспериментальной ФС.
28 августа 2025 года Линус Торвальдс перевёл файловую систему Bcachefs в режим Externally maintained.
Это значит, что ядро больше не принимает её изменения, а дальнейшая разработка ведётся вне основной кодовой базы.
Торвальдс считает, что поздние релизы должны лишь исправлять ошибки, а Оверстрит настаивает на срочном исправлении багов для сохранности данных. Bcachefs остаётся экспериментальной ФС.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2