Присоединяйтесь к обзору «Нимбиуса» — решения класса Cloud Management Platform
«Нимбиус» — это российская разработка — аналог VMware vRealize и Red Hat CloudForms, которая помогает крупным компаниям создавать частные облака и управлять гибридной инфраструктурой по модели Infrastructure-as-a-Code.
На мероприятии вы узнаете, как платформа повышает эффективность работы команд разработки и эксплуатации ИТ-инфраструктуры, а также увидите последние достижения:
▪️Интеграции с платформами zVirt и SpaceVM
▪️Новые PaaS-сервисы в маркетплейсе — СУБД и Kubernetes
▪️Единый модуль биллинга и аллокации затрат
Что еще в программе?
▪️Обзор трендов на инфраструктурном рынке в РФ
▪️Live-demo функционала продукта, новых фишек
▪️Непридуманные истории внедрения в Enterprise
Когда: 30 мая, 14:00 мск
Формат: онлайн
🔗 Регистрация
«Нимбиус» — это российская разработка — аналог VMware vRealize и Red Hat CloudForms, которая помогает крупным компаниям создавать частные облака и управлять гибридной инфраструктурой по модели Infrastructure-as-a-Code.
На мероприятии вы узнаете, как платформа повышает эффективность работы команд разработки и эксплуатации ИТ-инфраструктуры, а также увидите последние достижения:
▪️Интеграции с платформами zVirt и SpaceVM
▪️Новые PaaS-сервисы в маркетплейсе — СУБД и Kubernetes
▪️Единый модуль биллинга и аллокации затрат
Что еще в программе?
▪️Обзор трендов на инфраструктурном рынке в РФ
▪️Live-demo функционала продукта, новых фишек
▪️Непридуманные истории внедрения в Enterprise
Когда: 30 мая, 14:00 мск
Формат: онлайн
🔗 Регистрация
👍4🔥1
zombie процессы
Иногда вы запускаете top или ps aux, и вдруг замечаете статус Z. Это зомби-процесс. Он уже умер, но остался в таблице процессов, потому что его родитель не вызвал wait().
Такое бывает из-за багов, утечек, криво написанных демонов или скриптов.
Диагностика
Показать все зомби в системе:
Пример вывода:
1234 — это PID зомби.
567 — это PPID — родитель, который должен был вызвать wait().
Посмотреть, кто этот родитель:
Если родитель всё ещё жив, но “не собирает” зомби — это потенциальная проблема.
Что делать?
⏺ Если это ваш сервис/скрипт — проверьте, обрабатываете ли вы SIGCHLD и вызываете ли wait() в родителе. В bash это можно сделать так:
⏺ Перезапустите родительский процесс, чтобы он корректно завершил своих детей:
⏺ Если родитель — PID 1 (init/systemd) — зомби обычно исчезают автоматически, как только systemd обрабатывает SIGCHLD.
Создаём зомби для отладки
Если хотите поэкспериментировать:
Компилируем и запускаем:
Иногда вы запускаете top или ps aux, и вдруг замечаете статус Z. Это зомби-процесс. Он уже умер, но остался в таблице процессов, потому что его родитель не вызвал wait().
Такое бывает из-за багов, утечек, криво написанных демонов или скриптов.
Диагностика
Показать все зомби в системе:
ps -eo pid,ppid,state,cmd | grep ' Z '
Пример вывода:
1234 567 Z [my-dead-child]
1234 — это PID зомби.
567 — это PPID — родитель, который должен был вызвать wait().
Посмотреть, кто этот родитель:
ps -p 567 -o pid,comm
Если родитель всё ещё жив, но “не собирает” зомби — это потенциальная проблема.
Что делать?
while true; do
./child &
wait $!
done
systemctl restart <service>
Создаём зомби для отладки
Если хотите поэкспериментировать:
// zombie.c
#include <stdlib.h>
#include <unistd.h>
int main() {
if (fork() > 0) {
sleep(60); // родитель спит, не вызывает wait
} else {
exit(0); // ребёнок умирает
}
}
Компилируем и запускаем:
gcc zombie.c -o zombie
./zombie
ps aux | grep Z
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎3❤1
Чем больше у вас данных, тем страшнее их потерять 👀
29 мая в 11:00 облачный провайдер Cloud․ru расскажет, как защитить бизнес от потери данных с помощью облачных технологий.
Что будет на вебинаре:
🤖 Непрерывность данных — почему без бэкапов бизнес в зоне риска.
🤖 Резервное копирование и аварийное восстановление — когда и зачем нужно.
🤖 Облако для защиты данных — как и зачем использовать.
🤖 Дополнительные методы защиты — что еще важно учитывать.
Будет live-демо — эксперт покажет настройку резервного копирования и восстановления в прямом эфире.
Зарегистрироваться на вебинар🖱
29 мая в 11:00 облачный провайдер Cloud․ru расскажет, как защитить бизнес от потери данных с помощью облачных технологий.
Что будет на вебинаре:
Будет live-демо — эксперт покажет настройку резервного копирования и восстановления в прямом эфире.
Зарегистрироваться на вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍12❤3🤗3
“Too many open files”: куда утекают дескрипторы
Сервисы начинают сыпать ошибками:
Но ulimit -n вроде нормальный. Что происходит?
⏺ Причина:
Открытые файлы — это не только обычные файлы, но и сокеты, пайпы, устройства.
У каждого процесса есть лимит на количество открытых дескрипторов (nofile). При его превышении начинаются ошибки.
Проверка лимитов
⏺ Поиск виновника
Показываем процессы с наибольшим числом открытых файлов:
Смотрим, что именно открыто у подозреваемого:
⏺ Что делать?
Если утекают дескрипторы — проверьте код, особенно вызовы open() и close().
Если активно растёт число сетевых соединений — проверьте, не остаются ли открытые сокеты:
Как увеличить лимит
Для systemd-сервисов:
Сервисы начинают сыпать ошибками:
EMFILE: Too many open files
Но ulimit -n вроде нормальный. Что происходит?
Открытые файлы — это не только обычные файлы, но и сокеты, пайпы, устройства.
У каждого процесса есть лимит на количество открытых дескрипторов (nofile). При его превышении начинаются ошибки.
Проверка лимитов
ulimit -n # лимит текущей сессии
cat /proc/$$/limits # все лимиты текущего процесса
Показываем процессы с наибольшим числом открытых файлов:
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
count=$(ls /proc/$pid/fd 2>/dev/null | wc -l)
echo "$count $pid"
done | sort -nr | head
Смотрим, что именно открыто у подозреваемого:
ls -l /proc/<PID>/fd
Если утекают дескрипторы — проверьте код, особенно вызовы open() и close().
Если активно растёт число сетевых соединений — проверьте, не остаются ли открытые сокеты:
netstat -anp | grep <PID>
Как увеличить лимит
# Временно
ulimit -n 65535
# Постоянно — /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
Для systemd-сервисов:
[Service]
LimitNOFILE=65535
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
Какой способ безопаснее всего передать root-доступ по SSH для администрирования?
Anonymous Quiz
3%
Открыть root-доступ по паролю
5%
Использовать PermitRootLogin yes
89%
Настроить PermitRootLogin prohibit-password и использовать ключ
2%
Разрешить root-доступ через Telnet
👍10🔥2
Когда sshd пускает всех: настройка ограничения доступа по IP и ключам
Пользователь жалуется, что к серверу могут подключаться нежелательные IP, а ключи не всегда работают.
Как быстро проверить и настроить безопасный доступ?
1️⃣ Проверяем текущие подключения и логи SSH
Смотрим, кто подключается и есть ли ошибки аутентификации.
2️⃣ Ограничиваем доступ по IP в sshd_config
Добавьте в /etc/ssh/sshd_config:
Или используйте AllowGroups с похожим синтаксисом.
3️⃣ Разрешаем доступ только по ключам, отключаем пароль
4️⃣ Проверяем разрешённые ключи в ~/.ssh/authorized_keys
Убедитесь, что ключи корректные и права на папку и файл строго выставлены:
5️⃣ Перезапускаем sshd
6️⃣ Тестируем подключение с нужных IP и с ключами
Если не работает — запускайте ssh с повышенной детализацией:
7️⃣ При подозрениях — включаем дополнительный лог в sshd_config:
Это поможет понять, почему соединение не проходит.
Пользователь жалуется, что к серверу могут подключаться нежелательные IP, а ключи не всегда работают.
Как быстро проверить и настроить безопасный доступ?
ss -tnpa | grep sshd
journalctl -u sshd -e
Смотрим, кто подключается и есть ли ошибки аутентификации.
Добавьте в /etc/ssh/sshd_config:
AllowUsers [email protected].*
DenyUsers user2@*
Или используйте AllowGroups с похожим синтаксисом.
PasswordAuthentication no
PubkeyAuthentication yes
Убедитесь, что ключи корректные и права на папку и файл строго выставлены:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
systemctl restart sshd
Если не работает — запускайте ssh с повышенной детализацией:
ssh -vvv user@server
LogLevel VERBOSE
Это поможет понять, почему соединение не проходит.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Как с ним работать:
— Поведение можно контролировать с помощью параметра oom_score_adj. Чем выше значение (макс. 1000), тем выше вероятность, что процесс будет убит.
— Можно настроить cgroups и ограничить память для отдельных групп процессов, чтобы сбои не затрагивали всю систему.
— Желательно использовать swap-файл/раздел, чтобы отложить момент срабатывания OOM, но не полагаться на это как на основную защиту.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Релиз Rust Coreutils 0.1.0
24 мая 2025 вышла версия 0.1.0 проекта Rust Coreutils (uutils) — кроссплатформенной альтернативы GNU Coreutils, написанной на Rust.
В набор входят популярные утилиты: ls, cp, cat, chmod, date и другие.
Rust Coreutils уже будет использоваться по умолчанию в Ubuntu 25.10.
Основные улучшения версии 0.1.0:
⏺ Поддержка SELinux в ключевых утилитах (cp, ls, mkdir, stat и др.).
⏺ Оптимизации производительности: uutils в ряде случаев быстрее GNU.
⏺ Улучшена совместимость с тестами GNU Coreutils (522 успешных теста).
⏺ Расширены функции и добавлены опции во многие утилиты.
Проект распространяется под MIT-лицензией — более либеральной, чем GPL у GNU Coreutils.
24 мая 2025 вышла версия 0.1.0 проекта Rust Coreutils (uutils) — кроссплатформенной альтернативы GNU Coreutils, написанной на Rust.
В набор входят популярные утилиты: ls, cp, cat, chmod, date и другие.
Цель — создать производительную и безопасную замену Coreutils, которая будет работать на Linux, Windows, Redox и Fuchsia.
Rust Coreutils уже будет использоваться по умолчанию в Ubuntu 25.10.
Основные улучшения версии 0.1.0:
Проект распространяется под MIT-лицензией — более либеральной, чем GPL у GNU Coreutils.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎3🤣1
Bonding интерфейсов в Linux: простая настройка для отказоустойчивости и скорости
Bonding - это объединение нескольких физических сетевых интерфейсов в один логический, чтобы увеличить пропускную способность или обеспечить резервирование.
Зачем нужно?
• Если один кабель или интерфейс упадёт, сеть не потеряется.
• Можно повысить скорость, суммируя каналы.
Как проверить, поддерживается ли bonding?
Простой пример конфигурации (mode=1 — active-backup):
⏺ Создаём файл /etc/sysconfig/network-scripts/ifcfg-bond0 (для RHEL/CentOS):
⏺ Настраиваем интерфейсы, которые в bonding, например /etc/sysconfig/network-scripts/ifcfg-eth0:
Аналогично для eth1.
⏺ Перезапускаем сеть:
Что важно знать:
1️⃣ Режим bonding влияет на логику работы: active-backup — резервирование, balance-rr — агрегация с балансировкой нагрузки, другие — для продвинутых сценариев.
2️⃣ На коммутаторе тоже нужно настроить LACP или соответствующий режим.
Bonding - это объединение нескольких физических сетевых интерфейсов в один логический, чтобы увеличить пропускную способность или обеспечить резервирование.
Зачем нужно?
• Если один кабель или интерфейс упадёт, сеть не потеряется.
• Можно повысить скорость, суммируя каналы.
Как проверить, поддерживается ли bonding?
modprobe bonding
lsmod | grep bonding
Простой пример конфигурации (mode=1 — active-backup):
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Аналогично для eth1.
ifdown eth0 eth1
ifup bond0
Что важно знать:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
Автопробуждение по Wake-on-LAN
Иногда сервер должен спать — например, ночью или в выходные.
Но нужно, чтобы он включался сам: для бэкапа, обновлений, задач по cron. Wake-on-LAN (WOL) решает это, если правильно настроить.
1️⃣ Включаем WOL в BIOS/UEFI
Ищем опции вроде Wake on LAN, Power On By PCI-E, Resume by LAN. Иногда нужно разрешить включение от сетевой карты.
2️⃣ Настраиваем интерфейс в системе
Проверяем, поддерживает ли интерфейс WOL:
В выводе ищем:
d — выключено. Включаем:
Тип g — классический “magic packet”.
Чтобы сохранялось после перезагрузки — добавьте в rc.local или systemd unit.
3️⃣ Отправляем magic packet с другого хоста
Узнаём MAC-адрес сервера:
Отправляем:
или
WOL работает только в одной подсети (обычно UDP broadcast).
4️⃣ Автоматический запуск по расписанию
Пример cron-задачи на другом хосте:
Или запускаем вручную скриптом, когда хотим включить сервер под задачу.
Проверим: включается ли сервер?
• Сервер должен быть выключен (но не полностью обесточен).
• Сетевая карта должна гореть (светодиоды).
• Wake-on-LAN должен быть разрешён и в BIOS, и в ОС.
Иногда сервер должен спать — например, ночью или в выходные.
Но нужно, чтобы он включался сам: для бэкапа, обновлений, задач по cron. Wake-on-LAN (WOL) решает это, если правильно настроить.
Ищем опции вроде Wake on LAN, Power On By PCI-E, Resume by LAN. Иногда нужно разрешить включение от сетевой карты.
Проверяем, поддерживает ли интерфейс WOL:
ethtool eth0
В выводе ищем:
Wake-on: d
d — выключено. Включаем:
ethtool -s eth0 wol g
Тип g — классический “magic packet”.
Чтобы сохранялось после перезагрузки — добавьте в rc.local или systemd unit.
Узнаём MAC-адрес сервера:
ip link show eth0
Отправляем:
wakeonlan 00:11:22:33:44:55
или
etherwake -i eth0 00:11:22:33:44:55
WOL работает только в одной подсети (обычно UDP broadcast).
Пример cron-задачи на другом хосте:
0 3 * * * /usr/bin/wakeonlan 00:11:22:33:44:55
Или запускаем вручную скриптом, когда хотим включить сервер под задачу.
Проверим: включается ли сервер?
• Сервер должен быть выключен (но не полностью обесточен).
• Сетевая карта должна гореть (светодиоды).
• Wake-on-LAN должен быть разрешён и в BIOS, и в ОС.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4❤3
🧑💻Как тестировать производительность 1С?
5 июня в 12:00 Selectel проведет вебинар для разработчиков и администраторов 1С, системных администраторов и руководителей IT-отделов.
Подключайтесь, чтобы узнать, как читать и интерпретировать результаты тестирования производительности 1С, и получить практические рекомендации.
➡️Вебинар бесплатный. Посмотреть программу и зарегистрироваться можно по ссылке: https://slc.tl/66b55
Чтобы не пропустить вебинар и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events 🦖
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqx22mPB
5 июня в 12:00 Selectel проведет вебинар для разработчиков и администраторов 1С, системных администраторов и руководителей IT-отделов.
Подключайтесь, чтобы узнать, как читать и интерпретировать результаты тестирования производительности 1С, и получить практические рекомендации.
➡️Вебинар бесплатный. Посмотреть программу и зарегистрироваться можно по ссылке: https://slc.tl/66b55
Чтобы не пропустить вебинар и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events 🦖
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqx22mPB
❤1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Проверить текущее состояние THP можно командой:
cat /sys/kernel/mm/transparent_hugepage/enabled
Отключить, если они мешают:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
Переход на российское ПО и защита КИИ — что изменится осенью 2025 года?
6 июня | 12:00–13:00 (МСК)
С 2014 года тема импортозамещения в ИТ только набирает обороты, а за нарушения в сфере КИИ теперь грозит не только административная, но и уголовная ответственность.
Для кого: руководители, ИБ-специалисты и все, кто работает с объектами КИИ.
На вебинаре разберём:
🔹 Как развивалось импортозамещение в ИТ — ключевые этапы
🔹 Актуальные законы и грядущие с 1 сентября 2025 года изменения
🔹 Ответственность за нарушения: на что обратить внимание
🔹 Почему Deckhouse Kubernetes Platform Certified Security Edition (DKP CSE) — лучшее решение для задач КИИ (и реальные примеры внедрения)
Бонус: чек-лист для предварительной проверки ПО на соответствие требованиям ФСТЭК России — каждому участнику!
📅 6 июня, 12:00–13:00 (МСК)
🔗 Зарегистрироваться на вебинар
6 июня | 12:00–13:00 (МСК)
С 2014 года тема импортозамещения в ИТ только набирает обороты, а за нарушения в сфере КИИ теперь грозит не только административная, но и уголовная ответственность.
Для кого: руководители, ИБ-специалисты и все, кто работает с объектами КИИ.
На вебинаре разберём:
🔹 Как развивалось импортозамещение в ИТ — ключевые этапы
🔹 Актуальные законы и грядущие с 1 сентября 2025 года изменения
🔹 Ответственность за нарушения: на что обратить внимание
🔹 Почему Deckhouse Kubernetes Platform Certified Security Edition (DKP CSE) — лучшее решение для задач КИИ (и реальные примеры внедрения)
Бонус: чек-лист для предварительной проверки ПО на соответствие требованиям ФСТЭК России — каждому участнику!
📅 6 июня, 12:00–13:00 (МСК)
🔗 Зарегистрироваться на вебинар
👍3❤2
Бэкапы без rsync: моментальные снапшоты с Btrfs
Если у вас раздел на Btrfs — можно делать моментальные резервные копии за секунду, без копирования данных.
1️⃣ Создаём снапшот
Мгновенно создаётся снимок текущего состояния. Это не копия файлов — это ссылка на те же блоки.
2️⃣ Откат к снапшоту
Можно быстро откатиться без rsync и без восстановления из архива.
3️⃣ Монтируем снапшот отдельно
Открываем снапшот как read-only и вытаскиваем нужные файлы.
4️⃣ Удаление старых снапшотов
Удаляется мгновенно, освобождая место.
5️⃣ Автоматизация через cron
Добавьте в crontab -e:
Снапшоты будут создаваться каждый день в 2:00.
Если у вас раздел на Btrfs — можно делать моментальные резервные копии за секунду, без копирования данных.
btrfs subvolume snapshot /home /btrfs-backups/home-$(date +%F)
Мгновенно создаётся снимок текущего состояния. Это не копия файлов — это ссылка на те же блоки.
mv /home /home-old
btrfs subvolume snapshot /btrfs-backups/home-2025-05-28 /home
Можно быстро откатиться без rsync и без восстановления из архива.
mount -o ro,subvol=home-2025-05-28 /dev/sdX /mnt/snapshot
Открываем снапшот как read-only и вытаскиваем нужные файлы.
btrfs subvolume delete /btrfs-backups/home-2025-04-01
Удаляется мгновенно, освобождая место.
Добавьте в crontab -e:
0 2 * * * btrfs subvolume snapshot /home /btrfs-backups/home-$(date +\%F)
Снапшоты будут создаваться каждый день в 2:00.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
Что делает параметр Delegate=yes в unit-файле systemd?
Anonymous Quiz
34%
Передаёт права на управление процессом другому пользователю
15%
Разрешает дочерним процессам изменять cgroups
47%
Делегирует создание systemd-сервисов
4%
Отключает cgroup-ограничения
👍7👎1
Sudo под контролем: аудит и ограничения для продакшена
Иногда sudo — это дыра в безопасности. Особенно, если все команды идут в лог просто как sudo bash.
Вот как сделать использование sudo прозрачным и контролируемым.
⏺ Включаем логирование команд с точностью до аргументов
Добавьте в /etc/sudoers:
Теперь всё, что делает пользователь с sudo, пишется в лог.
⏺ Ограничиваем команды
Разрешаем user1 только перезапуск nginx и просмотр логов:
Никаких sudo bash — только строго определённые команды.
⏺ Проверяем логи sudo
Анализируем, кто запускал sudo, когда, и что именно делал.
⏺ Используем sudoreplay
Для продвинутого аудита:
Показывает ввод и вывод команды из лога log_input, log_output.
⏺ Пример защиты от “sudo su”
В sudoers:
Теперь нельзя поднять shell с sudo, только конкретные команды.
Иногда sudo — это дыра в безопасности. Особенно, если все команды идут в лог просто как sudo bash.
Вот как сделать использование sudo прозрачным и контролируемым.
Добавьте в /etc/sudoers:
Defaults log_input, log_output
Defaults logfile="/var/log/sudo.log"
Теперь всё, что делает пользователь с sudo, пишется в лог.
Разрешаем user1 только перезапуск nginx и просмотр логов:
user1 ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx, /bin/journalctl -u nginx
Никаких sudo bash — только строго определённые команды.
cat /var/log/sudo.log | less
ausearch -k sudo
Анализируем, кто запускал sudo, когда, и что именно делал.
Для продвинутого аудита:
sudo sudoreplay <ID>
Показывает ввод и вывод команды из лога log_input, log_output.
В sudoers:
Cmnd_Alias BLOCKED = /bin/su, /bin/bash
user1 ALL=(ALL) !BLOCKED
Теперь нельзя поднять shell с sudo, только конкретные команды.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤5
Оптимизируем операции через tmpfs
tmpfs — это не просто «/tmp в RAM». Это инструмент для сокращения I/O, минимизации wear-out на SSD и ускорения CI, кэширования и даже временного хранения IPC-артефактов.
Но при неправильной настройке — источник OOM и нестабильной производительности.
Зачем использовать tmpfs?
• Изоляция чувствительных к IOPS операций (например, /var/cache, /run, компиляции, unit-тестов).
• Уменьшение latency в пайплайнах CI/CD и dev-окружениях.
• Кратковременное хранение промежуточных артефактов без обращения к диску.
Настройка через systemd mount units
Вместо /etc/fstab можно использовать systemd для более гибкой логики:
Активируем:
Учет ограничения RAM: tmpfs в cgroups
Если tmpfs монтируется внутри systemd-сервиса, лучше ограничить память через MemoryMax, иначе может съесть всю RAM:
Продвинутые use-case’ы
1️⃣ /tmpfs + overlayfs = изолированная среда
Подменяем часть rootfs без записи на диск, например, для временных hotfix-тестов:
2️⃣ Сборка пакетов в RAM в CI
Ускоряет сборку deb/rpm, кэш и распаковка исходников не используют диск.
3️⃣ Безопасный IPC
Храним сокеты и FIFO в tmpfs — данные исчезают при ребуте, не остаётся следов на диске.
tmpfs — это не просто «/tmp в RAM». Это инструмент для сокращения I/O, минимизации wear-out на SSD и ускорения CI, кэширования и даже временного хранения IPC-артефактов.
Но при неправильной настройке — источник OOM и нестабильной производительности.
Зачем использовать tmpfs?
• Изоляция чувствительных к IOPS операций (например, /var/cache, /run, компиляции, unit-тестов).
• Уменьшение latency в пайплайнах CI/CD и dev-окружениях.
• Кратковременное хранение промежуточных артефактов без обращения к диску.
Настройка через systemd mount units
Вместо /etc/fstab можно использовать systemd для более гибкой логики:
# /etc/systemd/system/tmp-build.mount
[Unit]
Description=Build cache in RAM
Before=local-fs.target
[Mount]
What=tmpfs
Where=/mnt/buildcache
Type=tmpfs
Options=mode=1777,size=2G,noatime
[Install]
WantedBy=multi-user.target
Активируем:
systemctl enable --now tmp-build.mount
Учет ограничения RAM: tmpfs в cgroups
Если tmpfs монтируется внутри systemd-сервиса, лучше ограничить память через MemoryMax, иначе может съесть всю RAM:
[Service]
MemoryMax=3G
TemporaryFileSystem=/tmp:rw,size=1G
Продвинутые use-case’ы
Подменяем часть rootfs без записи на диск, например, для временных hotfix-тестов:
mount -t tmpfs tmpfs /mnt/tmpfs
cp -a /etc /mnt/tmpfs/etc
mount -t overlay overlay -o lowerdir=/etc,upperdir=/mnt/tmpfs/etc,workdir=/mnt/tmpfs/work /etc
Ускоряет сборку deb/rpm, кэш и распаковка исходников не используют диск.
Храним сокеты и FIFO в tmpfs — данные исчезают при ребуте, не остаётся следов на диске.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Вышла SQLite 3.50
Состоялся релиз легковесной СУБД SQLite 3.50. Проект написан на C, распространяется без лицензий и бесплатно.
Поддержку разработчикам оказывает отдельный консорциум.
Основные изменения:
⏺ Новая функция sqlite3_setlk_timeout() для управления блокировками.
⏺ Ослаблены ограничения на SQL-комментарии.
⏺ Добавлены SQL-функции unistr() и unistr_quote().
⏺ Улучшена работа printf(), .dump, .schema --indent.
⏺ Оптимизация JSON-функций и улучшение sqlite3_rsync.
⏺ Поддержка сборки под Cygwin, MinGW, Termux.
⏺ Исправления и улучшения производительности.
⏺ WASM/JavaScript: важное обновление VFS OPFS SAHPool — новые базы несовместимы со старыми VFS, но обратно совместимость сохранена.
Состоялся релиз легковесной СУБД SQLite 3.50. Проект написан на C, распространяется без лицензий и бесплатно.
Поддержку разработчикам оказывает отдельный консорциум.
Основные изменения:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3👻1