Обновить
256K+

Linux *

Пишем под *nix

354,44
Рейтинг
Сначала показывать
Порог рейтинга

Лимиты CPU и памяти в cgroup v2: как это работает на самом деле

Лимиты CPU и памяти в cgroup v2 работают по-разному: cpu.max в cgroup v2 задаёт квоту, memory.high вызывает reclaim, а memory.max может привести к OOM. Результат зависит от ядра, дерева systemd, swap, OOM-политики и состава cgroup.

Чем cpu.max отличается от cpu.weight?

cpu.max задаёт квоту CPU на период, и после её исчерпания группа ждёт следующего периода. cpu.weight делит время между соседями, которые одновременно конкурируют за процессор. Без конкуренции высокий вес задачу не ускоряет, тогда как квота всё равно остаётся абсолютной границей для группы.

Где cgroup v2 действительно применяет контроллер

Одного файла cpu.max в cgroup v2 мало, путь процесса проверяют командами:

stat -fc %T /sys/fs/cgroup
 systemctl show -p ControlGroup app.service
 systemd-cgls --unit app.service

Контроллер должен входить в cgroup.controllers родителя и cgroup.subtree_control. Для доменных контроллеров действует no internal process: у родителя с дочерними cgroup не должно быть процессов.

cpu.max, cpu.weight и конкуренция за время процессора

cpu.max хранит квоту и период в микросекундах. cpu.weight (1–10000, по умолчанию 100) распределяет время между активными соседями одной ветви. Affinity и лимит родителя сужают доступный CPU. memory.max в cgroup v2 не ограничивает процессор.

Как увидеть исчерпание CPU-квоты в cpu.stat

Нагрузку создают через stress-ng в изолированном unit с неизменным cpuset, меняя между ступенями только cpu.max. Показатели usage_usec, nr_periods, nr_throttled и throttled_usec из cpu.stat сопоставляют с throughput и p99. memory.high против memory.max тестируют отдельно, чтобы reclaim не исказил результат.

Как memory.high и memory.max ведут себя под давлением?

memory.high замедляет процессы через reclaim, причём потребление может временно оставаться выше порога. memory.max задаёт жёсткую верхнюю границу, и если память освободить не удаётся, начинается cgroup OOM. Разницу видно по high, max, oom и oom_kill в memory.events.local, а также по memory PSI.

memory.low, memory.high и memory.max без смешения ролей

memory.low защищает рабочий набор в пределах бюджета родителя, memory.high усиливает reclaim, memory.max ставит жёсткую границу. При росте resident set пишут memory.current, anon, file и пределы родителя. В unit лимиты systemd cgroup v2 сверяют с эффективными значениями.

Замедление до OOM как отдельный режим

Память наращивают ступенями, записывая high в memory.events.local, pgscan, PSI memory и latency. Reclaim может нарушить SLO до OOM. CPU weight в cgroup при этом не трогают. anon и file разделяют анонимную и файловую память.

Что происходит при достижении memory.max

События max, oom и oom_kill сверяют с журналом ядра. memory.oom.group=1 убивает все задачи группы разом, кроме процессов с oom_score_adj=-1000. Проверять это можно только на изолированном стенде.

Как проверить, что лимиты cgroup v2 действительно работают?

1. systemd-cgls и ControlGroup подтверждают путь процесса.

2. Файлы содержат нужные значения, а счётчики растут под нагрузкой.

3. Throughput и latency меняются одновременно с throttling, PSI или OOM.

В отчёт идут дерево cgroup, лимиты, swap, ряды cpu.stat и memory.events, PSI, журнал OOM и версия ядра.

memory.swap.max, latency и ложное ощущение запаса

Для каждого прогона указывают swap, memory.swap.max, swap in/out и p99. Swap отодвигает OOM killer ценой задержки, поэтому прогоны со swap и без него не смешивают. Отсутствие OOM не означает выполнения SLO.

Как перенести измеренные границы в unit и мониторинг

В systemd slices CPUQuota, CPUWeight, MemoryHigh и MemoryMax задают параметры cgroup. Мониторинг берёт PSI, throttled_usec, high, oom и oom_kill. После изменения unit или ядра запускают canary-тест.

Лимиты CPU и памяти в cgroup v2 задают вместе с сигналами срабатывания: throttling в cpu.stat, pressure в PSI и события OOM. Проверяют их в той же systemd-иерархии, где работает служба. Настройка годится, когда приложение выполняет SLO при включённых лимитах.

Теги:
+3
Комментарии0

Джастин Шрёдер показал любопытный образец того, как сегодня может вестись разработка. В твите Шрёдер выложил фотографию, на которой MacBook смотрит встроенной в крышку веб-камерой на собственный экран через зеркало. Как утверждает разработчик, таким способом он улучшает поддержку графики AMD Radeon в Omarchy.

@jpschroeder

Как объясняет в комментариях к твиту Шрёдер, зеркало как раз позволяет при отладке оценивать не скриншот, а изображение на физическом дисплее ноутбука. Что именно происходит на экране, разобрать тяжело из-за невысокого разрешения снимка и зеркального отражения. Если судить по его другому твиту, саму веб-камеру под Linux Шрёдер запускает с помощью T1Bridge — открытого проекта Standard Agents, добавляющего поддержку Apple T1 и iBridge, включая камеру FaceTime HD. Справа (слева на отражении в зеркале) открыт интерфейс приложения LocalSend: в папку /home/justin-schroeder/Downloads только что передали две фотографии в файловом формате HEIC. Слева, судя по характерным строкам Ran и Explored, работает Codex CLI компании OpenAI.

Сам Шрёдер — разработчик открытого программного обеспечения и создатель dmux, инструмента для параллельной работы с агентами программирования. Эта утилита запускает Codex, Claude Code и другие агенты в отдельных панелях tmux, создавая для каждой задачи отдельную ветку и рабочий каталог Git. Беглый поиск показывает, что к Omarchy Шрёдер имеет непосредственное отношение как контрибьютор: 9 сентября он отправил в проект патч, исправляющий работу адаптера Wi-Fi фирмы Broadcom на MacBookPro13,3. Судя по всему, сейчас он как раз занимается доводкой Omarchy на этой машине.

Теги:
+4
Комментарии1

Представлен открытый проект AI File Sorter. Решение раскладывает файлы по папкам и меняет названия. Приложение анализирует содержимое картинок и документов: test123.jpg превращается в фото_в_деревне.jpg, а файл PDF получает имя по тексту внутри. Перед сортировкой можно проверить и поправить предложения, а последний запуск с изменениями можно откатить. Проект работает на Windows, macOS и Linux, при этом бесплатно, если использовать локальную ИИ-модель.

Теги:
+1
Комментарии0

Хороший бэкап умеет не только сохранять, но и возвращать нужное

В большой инфраструктуре десятки тысяч машин, БД, контейнеров, платформ. И сценарии восстановления у всех свои: где-то нужно поднять всё с нуля, а где-то – вернуть один объект или несколько атрибутов. Российские вендоры последовательно движутся в сторону точности.

Свежий пример: в «Кибер Бэкапе Облачном» теперь можно выбирать отдельные объекты внутри Kubernetes. Резервируешь и восстанавливаешь только то, что действительно нужно, – не тащишь весь кластер ради одной ошибки.

Не просто «есть копия», а умение достать из неё именно то, что сломалось, и не трогать остальное.

Тот же принцип особенно важен для каталогов. В гетерогенных средах и особенно при миграции с AD на Linux инфраструктура становится сложнее: параллельные среды, скрипты, промежуточные состояния. И тут ошибка часто не убивает каталог целиком. Можно неверно изменить атрибуты пользователей, удалить группу, разорвать связи — система продолжит работать, но доступы поедут.

Восстанавливать весь каталог из полной копии — как из пушки по воробьям.

Нужно найти, что именно сломалось, и вернуть только это — один объект, один атрибут. Это и есть гранулярное восстановление. Оно не отменяет полное восстановление — это разные сценарии. Пожар в дата-центре и кривой скрипт, поменявший одну группу, лечатся по-разному.

Простая логика для каталога: перед миграцией сделал копию, потом сравнил состояния и точечно исправил последствия.

И здесь Kubernetes и каталог оказываются ближе, чем кажется: бэкап ценен не только фактом наличия, но и тем, насколько точно ты можешь им воспользоваться, когда что-то пошло не так.

Источники:

«Киберпротект» расширил возможности «Кибер Бэкапа Облачного» для крупных гетерогенных инфраструктур

Российские системы резервного копирования: из реестра

Теги:
0
Комментарии0

В ошалевшую от безделья голову пришла шальная мысль — может ли современный уважающий себя в меру упитанный человек прожить на голом ядре Linux, coreutils, пачке элементарных консольных мастхэв и нескольких консольных же баловст для приятственного времяпрепровождения?

Пораскинув в хорошем смысле мозгами, сделал такую подборку:

  • Основа — linux, linux-firmware, grub, runit, coreutils, util-linux, kmod, shadow, kbd

  • Сеть — iproute2, dhcpcd, ca-certificates

  • Окружение — kmscon/fbterm, tmux, nerd-fonts, mc

  • Мастхэв: sudo, file, procps-ng, neovim, git, wget, openssh, openssl, gcc, make, glibc, tar, zstd, unzip, less, grep, sed, awk, findutils, man-db, man-pages

Если немножко додать жиру, то — yazi, neomutt, lynx/w3m, newsboat, alsa-lib, alsa-utils, mpv.

Наверняка чего-то упустил / чего-то захочется ещё. Но такова природа человека… Иначе до пятидесятого гнома мы бы не дошли.

Вот. На следующих выходных попробую себе устроить GUI-детокс и геморрой на свою соскучившуюся пятую точку (см. начало про безделье). Посмотрю, чего реально не хватает современному в меру упитанному человеку для жизни.

И распивая чаи со спиртом (опционально), буду читать здесь холивары о гноме и кедах 😁

Теги:
+7
Комментарии11

Наболело… Куда катится мир, граждане-товарищи? Раньше был веб-дизайнером по профессии, теперь лишь подхалтуриваю, но…

Итак, дано. Стек: Linux, Wayland, Qt/GTK. Нужна программа для работы с цветом:

  • Живой проект

  • Linux/Wayland

  • GUI

  • Отдельная программа, а не GIMP/Figma/Krita/веееб-инструмееенты без регистрации и СМС

  • Палитры

  • Цветовые пространства

  • Гармонические схемы

  • Генерация вариаций

  • Математическое смешивание

  • Blend modes вроде Overlay

  • Интерполяция/шаги

  • Лёгкая и узкоспециализированная

  • Кофе варить не обязана

Очень много?

Нужен богатый функционал, но при этом чётко очерченная область тупо работы с цветом. Безо всех этих «а ещё мы вам прямо здесь трактор в фигме нарисуем», лёгкие, быстрые, с минимумом зависимостей, чистая математика, удобный интерфейс.

Есть pastel. Консольная.
Есть Gpick. Дохлый.
Есть Rickrack. Дохлый. Да ещё и на PyQt5. С кучей некродрузей за ручку.

Я не понимаю. Правда. Сейчас всем хватает только пипеток и инстаграмчиков на телефончиках?

Недавно запилил свою мерялку экрана на C++/GTK4 со всякими координатами, шириной-высотой, углами, диагоналями, соотношениями сторон, направляющими и пр. плюшками. Для Wayland. И даже умудрился туда прикрутить те же колорпикер со скриншотами, мать их… Просто потому что самому нужно. Теперь пилить ещё и это? Я один такой дурак в этом мире, которому всё это нужно?… Простите. Крик души.

Теги:
+9
Комментарии21

Сервис тормозит, а мониторинг ничего не показывает: разбираемся с eBPF

Сервис начал отвечать медленнее, пользователи жалуются на ошибки, а привычные дашборды показывают только рост задержек. Где искать причину, если приложение, сеть и инфраструктура выглядят «почти нормально»?

В таких ситуациях инженерам приходится спускаться глубже — к событиям внутри Linux-ядра. Один из инструментов для этого — eBPF: технология, которая позволяет получать данные о работе системы без остановки сервисов и точнее находить узкие места в продакшене.

На открытом уроке курса «DevOps практики и инструменты» вместе с преподавателем разберём, как eBPF помогает исследовать сетевые взаимодействия, производительность и безопасность современных систем. Посмотрим, какие задачи он решает в реальной эксплуатации и где его применение действительно оправдано. Когда: 23 сентября в 20:00. Присоединяйтесь

А пока можно посмотреть другие темы бесплатных уроков месяца в дайджесте.

Теги:
+6
Комментарии0

Самая опасная кнопка в КИИ — у человека за соседним столом


В новом исследовании «СёрчИнформ» ста судебных дел за последние годы по статье 274.1 УК РФ — «Неправомерное воздействие на критическую информационную инфраструктуру Российской Федерации» обнаружилась интересная закономерность.

95% нарушителей — сами сотрудники пострадавших организаций. 14% среди них — руководители подразделений. Но есть и хорошая новость, ИТ‑ и ИБ‑специалистов среди них всего 5%, а топ менеджмента и подавно 1%. Почти на уровне погрешности.

Внешних нарушителей — всего 5%. Но это не потому, что их мало. Просто раскрываемость компьютерных преступлений в России не превышает 21%. Большинство внешних атак остаются безнаказанными.

Что интересно, 67% проанализированных дел — не взлом и не уничтожение серверов, а внесение недостоверных данных в таких сферах, как связь и телеком 47%, здравоохранение 25% и финансовый сектор 10%.

Причина — большое число сотрудников с легитимным доступом к системам и низкая цифровая грамотность.

Больше доступа — выше цена ошибки.

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

Для LDAP‑инфраструктуры это головная боль: система считает изменение легитимным (права‑то были!), а вы даже не знаете, что именно вернуть назад.

Классический бэкап здесь не выход. Откатывать всё из‑за одной сломанной группы — как стрелять из пушки по воробьям. Нужен другой подход:

  1. Сравнить текущее состояние каталога с резервной копией.

  2. Найти точечные расхождения.

  3. Восстановить только изменённые объекты, не трогая остальное.

Защищать нужно не только доступность каталога, но и целостность данных. Потому что легитимный доступ ≠ безопасное изменение. И это справедливо не только для КИИ.

Информацию взял отсюда и отсюда.

Теги:
+3
Комментарии4

io_uring против epoll в KVM: сервер с большим числом соединений

Тест io_uring против epoll в KVM проводят на одной кодовой базе. Бенчмарк io_uring при множестве соединений корректен, если меняется только бэкенд событий. Итог зависит от ядра, цикла событий, протокола, режима io_uring и offload.

Когда io_uring обгоняет epoll на сетевом сервере?

io_uring обгоняет epoll, когда сервер пакетно отправляет операции и обрабатывает завершения, сокращая число переходов в ядро. Такой выигрыш обычно виден при множестве одновременных соединений и малом объёме работы на запрос. Простая замена epoll-уведомлений на io_uring poll может не окупить сложность.

Что обязано остаться неизменным между epoll и io_uring

Чтобы бенчмарк io_uring при множестве соединений был честным, обе ветки используют общий парсер, обработчик, TLS-режим, keep-alive и формат ответа. Сверяют чтения, записи и аллокации на запрос. Поэтому демонстрационный пример не сравнивают со зрелым сервером.

Готовность fd против очередей submission и completion

epoll сообщает о готовности fd, а приложение выполняет I/O. В io_uring приложение отправляет SQE в submission queue, а ядро записывает CQE. Пакетная отправка сокращает переходы в ядро, но неудачный цикл событий сводит выигрыш к нулю. Поэтому масштабирование epoll в KVM проверяют на том же профиле нагрузки.

Где KVM и virtio могут скрыть разницу бэкендов

Пакет идёт через сетевой стек гостя, очереди vhost-net и тракт хоста. До теста фиксируют число очередей, offload, привязку vCPU и IRQ. Иначе задержка сетевого сервера io_uring объясняется хостом, а не бэкендом.

Какой тест позволяет честно сравнить эти модели?

Используйте один код сервера, протокол, объём работы на запрос и правила соединений, меняя только бэкенд событий. После прогрева запускайте серии с одинаковым CPU-бюджетом на каждой ступени concurrency. Публикуйте пропускную способность, p99, число системных вызовов, ошибки и загрузку гостя и хоста отдельно.

Соединения, запросы и backpressure без скрытых различий

Задайте размеры запросов и ответов, долю новых соединений и keep-alive. Повышайте concurrency до насыщения, следя за ошибками, таймаутами и очередью. Накладные расходы цикла событий оценивайте по CPU на запрос и числу системных вызовов, сопоставляя их с p99 и пропускной способностью.

Syscalls, переключения контекста и CPU на запрос

Счётчики cycles, instructions и context-switches делят на число запросов. Отдельно измеряют расход CPU рабочими и vhost-потоками. Многократный accept в io_uring снижает число постановок accept, но каждый CQE нужно обработать. К отчёту прикладывают коммит, конфиги бэкендов, генератор и сырой CSV.

Где преимущество появляется и где исчезает

Сравните низкую нагрузку, рабочую точку и перегрузку. Проверьте мелкие и крупные сообщения. Сохраняйте p50, p99, пропускную способность, соединения в секунду и разброс повторов. Если разбросы перекрываются, не выбирайте победителя.

Какие накладные расходы добавляет KVM?

  1. Часть ожидания vCPU отражается в %steal, остальные паузы видны только на хосте.

  2. Очереди гостя, vhost и NIC хоста могут накапливать пакеты независимо от бэкенда.

  3. IRQ, softirq и offload влияют на расход CPU, поэтому настройки фиксируют до теста.

Как найти источник p99 внутри ring или цикла событий

При росте p99 трассируют SQ/CQ, обработку CQE и паузы рабочих потоков. Проверяют переполнение ring, незавершённые операции и backpressure. Если хвостовая латентность растёт вместе с паузами vCPU, сначала проверяют хост.

Когда выигрыш оправдывает новый бэкенд

До перехода фиксируют версию ядра, поддержку отмены, наблюдаемость и fallback. Настройки virtio не меняют, иначе выигрыш не отнести к бэкенду. Порог связывают с целевой метрикой и ценой сопровождения. Новый бэкенд включают поэтапно, с откатом на epoll.

io_uring против epoll в KVM выбирают не по новизне API. Переход оправдан, если серии дают выигрыш по p99, пропускной способности или CPU на запрос, а поведение при перегрузке и fallback предсказуемо. Иначе epoll остаётся более простым бэкендом.

Теги:
+5
Комментарии0

Я создала красивый GUI для Qemu для запуска древних MacOS начиная с версии 9.0 до 10.5 Leopard. Для удобной эмуляции для простых пользователей ПК. Доступен для всех Linux, в том числе Raspberry Pi, chromeOS, SteamDeck и Steam Machine. Программа создана на Qt6 и C++, из-за чего программа потребляет максимум полтора килобайта ОЗУ.

Я не просто создала программу и выложила на GitHub и всё, я настроила автоматическую сборку бинарного файла на сервере, поэтому вам не нужно компилировать. Бинарная сборка в одном файле AppImage доступна для всех. Работает как минимум на Debian 13 (я проверяла), так что программа будет работать и на Ubuntu, и на Fedora, и на ArchLinux

Теги:
+6
Комментарии1

Зачем ФСТЭК ограничивает права ИИ

ФСТЭК готовит новые правила для ИИ в государственных информационных системах. 24 августа ведомство опубликовало проект изменений в приказ №117. В нем предлагается ограничить модели ИИ в доступе и правах. Проект должен вступить в силу 1 марта 2027 года.

Что меняется, когда ИИ получает доступ к LDAP

ИИ сильно повзрослел. Это уже не просто собеседник, а полноценный агент, который может сам обращаться к компьютерам, серверам и выполнять операции.

Например, если ИИ-агенту дать доступ к корпоративному LDAP-каталогу, он сможет:

  • Добавить учетную запись в группу

  • Изменить атрибут пользователя

  • Изменить членство в группе

  • Массово изменить данные

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

Что может оказаться под угрозой?

В каталоге лежат не только логины и учётные записи, но и ФИО, должности, отделы, телефоны, почта, фото – целая база персональных и служебных данных.

Если агенту разрешено читать эти данные, то злоумышленникам не обязательно взламывать LDAP. Достаточно дать агенту команду – и он сам отдаст данные наружу или испортит их.

Локальная или внешняя модель?

С точки зрения рисков не принципиально, используете вы внешнюю или локальную модель. Если локальная модель имеет широкие права, она сольёт данные не хуже внешнего сервиса. Так что ФСТЭК смотрит не на место проживания модели, а на то, что она видит, к чему имеет доступ и что может делать.

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

Причем источник проблемы может находиться далеко от каталога. Например, вредоносная инструкция может попасть в ИИ через внешний ресурс или заражённый документ. Эксперты называют prompt injection одной из главных дыр, которые надо закрывать в защите ИИ.

ИИ становится еще одним участником системы доступа

Выходит, ИИ-агент, подключенный к каталогу, становится еще одним участником системы управления доступом. Если дать ему слишком много прав, мы откроем путь:
внешняя команда → ИИ-агент → LDAP → данные пользователей или права доступа.

Поэтому принцип минимальных прав критичен. Если агенту нужен только один атрибут – не даём ему весь каталог. Если нужно сделать одну операцию – не разрешаем править все учётки. Чем меньше прав, тем меньше ущерб от возможной атаки.

Что делать, если изменения уже произошли

Просто иметь бэкап каталога – мало. Если агент испортил сотни записей, полный откат вернёт старую версию, но заодно откатит все правильные изменения, которые появились после бэкапа.

Поэтому нужны два уровня защиты:

  1. Резервное копирование, чтобы сохранить состояние каталога;

  2. Гранулярное восстановление, чтобы найти и вернуть неправильно изменённые объекты или атрибуты.

Получается простая цепочка:

ограничить права ИИ → контролировать его действия → не дать слить данные наружу → не дать править лишнее → иметь бэкап → уметь точечно восстановить данные.

Новые требования ФСТЭК интересны не только для ИИ. Они показывают: если ИИ подключается к инфраструктуре, его безопасность становится частью безопасности всей системы – включая службу каталога.

Теги:
+7
Комментарии0

NUMA и топология CCD Ryzen 9 9950X: как размещение vCPU влияет на задержки.

NUMA и топология CCD Ryzen 9 9950X не равнозначны: гость видит NUMA-схему, но не границы L3. Сравнивать нужно размещение vCPU на одной VM внутри CCD, между CCD и без pinning. Результат зависит от нагрузки, BIOS, ядра, QEMU и SMT.

Как определить, какие vCPU находятся на одном CCD?

Сопоставьте логические CPU с ядрами и SMT-сиблингами, затем найдите группы общего L3-кэша. Каждый CCD объединяет восемь ядер с общим L3, номера CPU зависят от хоста, поэтому проверяйте shared_cpu_list. Запишите BIOS, микрокод, ядро и governor.

lscpu -e=CPU,CORE,SOCKET,NODE,CACHE
grep -H . /sys/devices/system/cpu/cpu*/cache/index3/shared_cpu_list

Границы CCD измеримы: в открытом наборе для 9950X с AGESA 1.2.0.2 средняя задержка CAS через общую строку кэша составила 22,4 нс внутри CCD и 79,5 нс между CCD, тогда как numactl границу не покажет.

От физических ядер к vCPU, emulatorpin и vNUMA

vcpupin связывает vCPU с CPU хоста, но не трогает остальные потоки VM: эмулятор QEMU и IOThread закрепляются отдельно. NUMA node гостя должен отражать домен памяти, а не границу L3, иначе межчиплетная задержка смешается с доступом к удалённой RAM.

virsh vcpupin vm-latency
virsh emulatorpin vm-latency
virsh numatune vm-latency

Компактный CCD, разнесённые CCD и свободное планирование

Сравните одну VM в трёх конфигурациях: внутри одного L3, между CCD и без vcpupin. Число vCPU и RAM не меняйте, пиннинг задавайте по физическим ядрам, SMT проверяйте отдельно.

Насколько размещение между CCD увеличивает задержку?

Универсальной прибавки нет: результат зависит от общих данных, синхронизации, памяти и миграций. Сравнивайте одну нагрузку на одном хосте, сохраняя p50, p95, p99 и разброс. Core-to-core тест измеряет обмен между CCD, а не p99 приложения.

Как не принять boost, нагрев или соседнюю VM за эффект CCD

Прогрейте VM, фиксируйте частоту, температуру и %st: performance не удерживает частоту на Ryzen. Чередуйте схемы A–B–C–C–B–A и записывайте фоновые задачи. vNUMA должна совпадать с доменами памяти хоста.

Связь задержки с миграциями, кэш-промахами и удалённой памятью

Возьмите приложение с общей памятью или синхронизацией и микротест обмена. Перед серией проверьте pinning в libvirt и память QEMU, затем снимайте context switches, миграции и NUMA faults. Для cache-misses нужен vPMU. Нормируйте счётчики: рост вместе с p99 причину не доказывает.

perf stat -e context-switches,cpu-migrations,cache-misses \
   -- ./test
numastat -p "$(pgrep -fo 'guest=vm-latency')"

Когда пиннинг vCPU улучшает p99?

1. Рабочие потоки часто обращаются к общим данным.

2. Без pinning они мигрируют между группами L3.

3. p99 снижается без потери throughput и роста %st.

Где компактность помогает, а где ограничивает параллелизм

Сведите три схемы в таблицу: медиана p99 по повторам и доверительный интервал разницы. Если интервал пересекает ноль, результат в пределах погрешности. Задачам с независимыми потоками компактность ничего не даёт: обмена между ядрами почти нет, а привязка сужает выбор планировщика.

Как превратить топологию 9950X в правило эксплуатации

До теста задайте порог, например снижение p99 на 10% без потери ops/s. В XML подставьте cpuset и узел.

<vcpu>2</vcpu>
<iothreads>1</iothreads>
<cputune>
 <vcpupin vcpu='0' cpuset='0'/>
 <vcpupin vcpu='1' cpuset='1'/>
 <emulatorpin cpuset='2'/>
 <iothreadpin iothread='1' cpuset='3'/>
</cputune>
<numatune><memory mode='strict' nodeset='0'/></numatune>

Закрепляйте vCPU внутри CCD только если улучшение p99 воспроизводится в повторных прогонах. Если throughput падает или p99 не меняется, оставьте свободное планирование. Топология задаёт гипотезу, решение зависит от VM.

Теги:
+4
Комментарии0

RoutineOps upd. 17.08.2026
С момента последней статьи сделали много. Так как я условился, что теперь буду выпускать информацию об апдейтах в виде коротких постов, то вот:
- Отполирован macOs агент и функционал с FileVault блоком.
- Логирование действий под временной админкой.
- EN локализация.
- Процесс установки/удаления/преустановки агентов отполирован.
- Самое главное: удаленное подключение к устройству пользователя прям из WebUI.

Подробнее о проекте и функционале в доках репозитория на гитхабе и в постах: Пост про сам проект, первые шаги и финальный функционал первого Public Release! Пост про разработку enterprise версии.
В скором времени подготовлю статью про процесс разработки удаленного подключения, какие были архитектурные решения, сам процесс и финальный результат!
Если вам интересно подробнее узнать про какую то функцию или архитектурное решение, то пишите, рад буду пообщаться на тему проекта.

Подключение к устройству
Подключение к устройству
Теги:
+3
Комментарии0

Ближайшие события

Как поменять firewall на удалённом сервере и не отрезать себе SSH

Настраивать firewall по SSH всегда немного тревожнее, чем кажется в документации. Одно неудачное правило — и вместо аккуратно закрытых портов получаем сервер, до которого теперь нужно добираться через консоль провайдера или просить кого-то вернуть доступ.

26 августа в 19:00 на бесплатном демо-уроке будем разбираться, как работать с nftables на удалённом Linux-сервере так, чтобы изменения можно было вносить контролируемо и без неприятных сюрпризов. Заодно станет понятнее, чем nftables отличается от привычного iptables и что учитывать при постепенном переходе между ними.

Урок проведёт Николай Лавлинский — преподаватель-практик курса «Администратор Linux. Продвинутый уровень». Формат рассчитан на разбор реальной админской задачи, где цена ошибки вполне ощутима.

Больше бесплатных уроков на август собрали в дайджесте — там можно быстро посмотреть темы и выбрать нужную сейчас.

Теги:
Всего голосов 4: ↑4 и ↓0+8
Комментарии0

OpenAI объявила о доступности предварительной версии десктоп-приложения ChatGPT для платформы Linux, предоставляющего интерфейс для использования ChatGPT, ChatGPT Work и ИИ-агента Codex. Приложение доступно для загрузки в форматах deb и rpm в сборках для архитектур x64 и ARM64. Заявлена поддержка дистрибутивов Ubuntu 24.04/26.04, Debian 13 и Fedora 43/44.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии2

🤖 AI-агенты для Ansible: как делегировать рутину и не писать плейбуки руками — бесплатный стрим 12 августа

Я перестал писать Ansible-плейбуки руками. Вообще. Вместо этого у меня работает AI-агент, который знает лучшие паттерны, понимает мою инфраструктуру и сам пишет роли, модули, соединяет их и поднимает всё необходимое. Недавно он за вечер собрал связку Terraform + Ansible на новом сервере — и справился лучше, чем я ожидал.

На стриме покажу, как это устроено изнутри:

🔧 Архитектура AI-агента для Ansible: база знаний, инструментарий, что дёргать и как дёргать
📜 Как агент пишет роли и модули: промпты, валидация, итеративное исправление ошибок
🖥 Живой пример: поднимем инфраструктуру с нуля руками агента — в реальном времени
💡 Границы применимости: что агент делает хорошо, а что пока лучше делать самому

Андрей Чуян — основатель DebugSkills, автор AI-агента для работы с Ansible, спикер лабораторных по AI-оркестрации и Kubernetes.

📅 12.08.2026, 19:00 (МСК)
📡 ktalk
⏱️ 45 мин контент + 15 мин Q&A

> «Я ушёл из рутины, делегировал Ansible AI-агенту, который занимается этим.» — Андрей Чуян, из диалога с участником на лекции Jenkins

Это не вебинар и не лабораторная. Это живой разговор о том, как AI меняет работу DevOps-инженера уже сегодня. Без продаж, без подписок — просто приходите и смотрите.

Ссылка на регистрацию: https://debug-skills.timepad.ru/event/4127747/

Жду вас! 🤖

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Представлен первый релиз эмулятора терминала под необычным названием Shitty. Автор проекта считает его «серьёзным эмулятором терминала с глупым названием». Код решения написан с помощью ИИ-ассистента на C++23 (сbundled libstd, требующей -std=c++26) и распространяется под двойной лицензией MIT и GPL-3.0. Поддерживаются macOS и Linux.

Проект делает ставку на обеспечение низких задержек, быстрого запуска и предсказуемого потребления ресурсов: состояние терминала обрабатывается на CPU, а отрисовка выполняется через бэкенды на базе Vulkan в Linux и Metal в macOS, без использования стороннего графического тулкита. При тестировании производительности вывод 100 МБ ASCII через терминал Shitty показывает ~118 МБ/с, обгоняя alacritty (0.81 с против 0.96 секунд), kitty и ghostty. На «случайных байтах» с некорректным UTF-8 отрыв от alacritty ещё заметнее (~51 МБ/с против ~31 МБ/с). Корректность работы Shitty обеспечивается более чем 5000 тестами, собранными из десятка с лишним внешних наборов — kitty, esctest, vttests из xterm, vttest, tack, libvterm, libtsm, alacritty, ghostty, contour, konsole, mosh. Тесты выполняются с проверкой работы на реальном PTY.

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии1

Первые шаги на сервере: что быстрее освоить — консоль или ispmanager

У новичка на сервере обычно два пути: открыть панель управления в браузере или подключиться по SSH и разбираться с командами. Панель дает готовые формы под типовые операции, консоль — прямой доступ к системе. Освоить панель получится быстрее, но Linux под ней никуда не денется.

В статье сравнили оба подхода по сильным и слабым сторонам, разобрали сценарии для разработчика, владельца сайта и системного администратора и собрали минимум знаний Linux, который понадобится даже при работе через панель.

Подробности — в блоге Рег.облака.

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Друзья, я просто обязан сказать огромное спасибо всему сообществу Хабра за вашу поддержку и активность под статьей о моем проекте Kakehashi!

Вдохновившись вашими отзывами, вчера вечером я опубликовал проект на Hacker News. Результат превзошел все ожидания: прямо сейчас тред держит 204 поинта, а репозиторий набрал более 220 звезд на GitHub.

Проект попал в радар к хардкорным системщикам со всего мира. Среди тех, кто дал звезду, оказались инженеры из команд Cursor, Fly.io, Astro, создатель пакетного менеджера Pixi, разработчик Redox OS и в дискуссии на HN был легендарный автор утилиты Cydia @saurik.

Но мне особенно приятно и дорого то, что самый первый импульс, первые звезды и конструктивный фидбэк проект получил именно здесь. Вы дали Kakehashi тот самый стартовый заряд, благодаря которому он смог громко заявить о себе на международной арене.

Огромное вам спасибо! 

P.S. Хотел опубликовать в хаб «Я пиарюсь», но интерфейс не пропустил из-за нехватки кармы (нужно 30). Поэтому публикую в профильные хабы как апдейт к прошлой статье. Надеюсь на понимание!

Спасибо всем!
Спасибо всем!

Проект: https://github.com/wie-project/kakehashi

Статья на Хабре: https://habr.com/ru/articles/1065502/

Пост на Hacker News: https://news.ycombinator.com/item?id=49145937

Теги:
Всего голосов 8: ↑8 и ↓0+12
Комментарии0

Антипаттерн при работе с VPS: почему не стоит постоянно работать под root?
Работать под root на VPS удобно: перед командами не нужно вводить sudo. Но ошибка может затронуть весь сервер, а безопасность VPS требует разделять обычные и административные действия.

Почему работа под root удобна и опасна? В Unix доступ к файлам и управление процессами зависят от пользователя и его групп. Root может изменять системные файлы, управлять службами, пакетами и сетью. При постоянной работе под root ошибка в команде способна затронуть системные файлы и службы. Опечатка в пути команды удаления или ошибка в скрипте, запущенном от root, может стереть системные файлы, изменить права на каталоги и остановить сервисы. При запуске от обычного пользователя ущерб чаще ограничен его правами. Украденный ключ, разрешающий вход под root, или пароль этой учётной записи сразу дают административные права. Ключ обычного пользователя даёт доступ только с его правами. Получение root-прав зависит от настроек sudo, пароля, уязвимостей и ошибок конфигурации.

Как правильно: отдельный пользователь и sudo.

В Ubuntu или Debian создайте пользователя и добавьте его в группу sudo:

adduser operator
 usermod -aG sudo operator

Добавьте публичный ключ в файл .ssh/authorized_keys в домашнем каталоге нового пользователя и проверьте вход по SSH. Затем задайте параметр в

/etc/ssh/sshd_config:
PermitRootLogin no

Проверьте конфигурацию и примените изменения без разрыва текущих подключений:

sshd -t && systemctl reload ssh

Мини-чек-лист безопасного старта на VPS

•        Отдельный пользователь создан, команды запускаются через sudo.

•        Публичный ключ добавлен, приватный защищён парольной фразой.

•        Вход по SSH под root отключён.

•        Обновления системы устанавливаются регулярно.

Проверьте настройки доступа к VPS: создайте отдельного пользователя с sudo, протестируйте вход по SSH и только после этого отключите вход под root.

Теги:
Всего голосов 10: ↑9 и ↓1+11
Комментарии25
1
23 ...