Обновить

Администрирование

Сначала показывать
Порог рейтинга
Уровень сложности

Новый «steal governor» в Linux нацелен на борьбу с конкуренцией за CPU в переподписанных виртуальных машинах

Время на прочтение9 мин
Охват и читатели6.7K

Что, если добавить виртуальной машине процессоров — и она станет работать медленнее? В сильно переподписанных серверах это не мысленный эксперимент, а повседневность. Новый механизм ядра Linux — steal governor — предлагает решать проблему с другого конца: не раздавать ВМ больше ресурсов, а научить её добровольно ужиматься.

Читать далее

FUSE простым языком: как обычные программы притворяются файловыми системами

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.3K

Вы наверняка сталкивались с этим эффектом: монтируете sshfs, rclone mount или gocryptfs — и после этого файловый менеджер, редактор, архиватор и бэкапилка работают с появившимся каталогом так, будто перед ними самая обычная файловая система. Хотя байты могут жить на сервере, в S3, внутри шифрованного каталога или вообще рождаться на лету.

Как программа из userspace умудряется встать между open() и данными так, чтобы остальная система ничего особенного не заметила? Сегодня разберёмся. Заваривайте чай покрепче (ядро любит крепкий), устраивайтесь поудобнее — поговорим про FUSE.

Сразу одна оговорка, чтобы не заложить мину в фундамент статьи: не всякая «сетевая папка» или подключённый телефон в файловом менеджере — это FUSE. GNOME GVfs, KDE KIO и MTP умеют показывать похожую картину на уровне приложений. FUSE идёт глубже: он подключается к файловому стеку ядра, поэтому смонтированное дерево видят обычные программы через привычные open(2), read(2), stat(2) и компанию.

Читать далее

Life Cycle: что остаётся после того, как тебя больше нет

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.7K

Две недели назад я ехал к отцу и не успел примерно на сорок минут.

Ему было 84 года, последние месяцы он был совсем плох, поэтому сама возможность такого исхода не была неожиданностью. Я девятый ребёнок в семье и самый младший. Я метис: отец был кумыком, мама русской. Маму я похоронил в 2016 году. Из всей большой семьи именно я жил в Ставропольском крае, и когда близкие сообщили, что отец совсем плох, я выехал к нему.

Когда приехал, его уже не было.

Я спокойно могу говорить об этом. Не потому, что мне всё равно, и не потому, что смерть близкого человека можно рационализировать несколькими красивыми фразами. Просто мне не хочется делать из этой истории просьбу о жалости. Отец прожил очень длинную жизнь. У меня была возможность знать его, разговаривать с ним, спорить с ним. Это уже огромное количество времени.

Но эти сорок минут почему-то заставили меня думать не столько о смерти, сколько о времени.

Меня зовут Артур Валиев. Я программист. Раньше я уже пытался разговаривать через Rust о совсем не технических вещах — например, о любви. И чем дольше я пишу код, тем чаще ловлю себя на довольно странной профессиональной деформации: я начинаю смотреть на собственную жизнь как на систему, которую желательно хотя бы не оставлять в заведомо некорректном состоянии.

На этот раз мне захотелось попробовать описать не любовь.

Мне захотелось описать конец жизненного цикла.

Читать далее

Как создать и настроить свой сервер Counter-Strike 2 на VPS

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели12K

Многие из нас когда-то проводили десятки, а то и сотни часов на публичных серверах Counter-Strike разных версий: от 1.6 до Global Offensive. Всех их объединяла атмосфера уникального хаоса, кастомных плагинов, новых знакомств и полуночных разговоров. Но с ростом киберспорта культура публичных серверов стала постепенно уходить на второй план. Молодёжь больше играет в соревновательные режимы — FaceIT или Premier.

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

В этой статье разберём, как создать собственный сервер Counter-Strike 2 на VPS, установить плагины, настроить карту и добавить на неё собственный контент.

Читать далее

Самое короткое руководство по базовой настройке производительности Microsoft SQL Server

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.3K

В этот краткий сборник рецептов входят советы, применимые к подавляющему большинству развертываний SQL Server без профилирования реальной нагрузки.

Читать далее

Как мы мигрировали 40 кластеров ClickHouse: стратегии, проверки и автоматизация

Уровень сложностиСложный
Время на прочтение22 мин
Охват и читатели4.8K

SRE‑инженер Mindbox Дима Рыбалка рассказывает, как команда за два месяца перенесла 40 кластеров ClickHouse в Yandex Cloud. Внутри — как выбирали стратегию миграции, связывали кластеры без VPN, переключали клиентов через cutover без даунтайма и с какими столкнулись проблемами после миграции. Материал будет полезен SRE‑, DevOps‑ и DBA‑инженерам, которые работают с ClickHouse в Kubernetes.

Читать далее

350 коммитов в неделю: как контрибьютить в проект, который меняется быстрее, чем ты пишешь

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели9.7K

Представьте: ночной алерт, приложение отдаёт пятисотки, но само оно живо. Понятно, что дальше начнётся знакомое — вкладки с графиками, поиски в логах и попытки понять, кто и что изменил. Сколько на это обычно уходит времени? А что, если вместе с вами в инциденте будет разбираться ИИ-агент?

Привет! Я Антон Воронцов, CRE в Yandex Cloud. В конце июля я в очередной раз листал свежие репозитории на GitHub, чтобы посмотреть, что происходит в моих смежных дисциплинах: SRE, автоматизациях и, понятное дело, ИИ. Вдруг я наткнулся на один интересный репозиторий, который активно рос: количество звёзд, коммиты и заинтересованные люди из разных стран — всё это про OpenSRE.

Эта статья о том, как я впервые контрибьютил во внешний проект, что стало самым сложным и как вообще работает этот инструмент. 

Читать далее

Безопасная чистилка Temp: как удалять файлы и ничего не сломать

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.1K

У меня в %TEMP% тихо скопилось гигов пять, и я написал маленькую утилиту, которая чистит это — вручную кнопкой или само по расписанию.

Задача-то копеечная. Но пока писал, вылезла пара занятных вещей: почему «удалить всё из Temp» — так себе идея, как не провалиться по симлинку и не снести файлы за пределами папки, почему os.access на Windows врёт про права на запись, и как чистить по расписанию, вообще не оставляя процесс висеть в памяти.

Читать далее

Почему после ребрендинга я оставил старое имя Docker Compose — иначе поднялась бы пустая база

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели6.2K

Переименование проекта в Docker Compose может создать новые пустые volumes, пока старые данные спокойно остаются на диске. Разбираю, какие внутренние идентификаторы нельзя менять через Replace All и как провести ребрендинг с возможностью отката.

Читать далее

Как я восстанавливал WordPress после взлома и дважды ошибся

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.9K

Клиентский сайт на WordPress уже чистили в июле, но одну закладку пропустили. Через месяц в админку зашёл скрипт, посмотрел настройки оплаты WooCommerce и удалил дефолтного пользователя admin. Вместе с ним в корзину улетели 59 страниц, а 192 объекта медиатеки удалились вместе с файлами: корзина для вложений по умолчанию отключена.

Разбираю хронику по логам, механику каскадного удаления через wp_delete_user() без переназначения автора и восстановление по частям, когда полный откат бэкапа запрещён. И две ошибки, которые я допустил уже в процессе ремонта: подстановка файла по совпадению имени и прямой SQL, после которого Yoast продолжал отдавать canonical на момент аварии.

Читать далее

Выглядит как баг: что не так с консолидацией узлов в Karpenter?

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.8K

Объём неиспользуемых ресурсов не уменьшается (хотя вроде как должен), а узлы бесконечно ротируются. Это нормально для автоскейлера или пора что-то чинить?

В статье — детально о механизме консолидации в Karpenter, а главное — можно (и нужно) ли как-то его исправлять.

Читать далее

Почему это повторяется? Как мы расследуем Root Cause в чужой инфраструктуре

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.9K

Раз в неделю падает один и тот же сервис. Админ его перезапускает, пользователи возвращаются к работе, инцидент закрывают. Через несколько месяцев авария превращается рутину, и так продолжается годами. Управление проблемами — problem management — начинается в тот момент, когда кто-то все-таки спрашивает: «Почему это повторяется?». Для сервисного провайдера это логичное продолжение управления инцидентами. Обычно мы сами инициируем разбор, как только серия однотипных происшествий перестает выглядеть случайностью.  Но если ты аутсорсер, то найти root cause — это только полдела. Дальше нужно понять, что с ней делать. Причина может оказаться в продукте вендора, легаси заказчика или системе другого подрядчика — то есть там, где инженер внешней техподдержки не может просто взять и исправить ее. Но и тогда можно попробовать договориться и исправить ее. Об этом сегодня и пойдет речь. 

Меня зовут Наталия Сляднева и я руковожу Центром экспертизы по комплексному сервису К2Тех. Под катом — два расследования с разными финалами и третий случай, в котором проблему осознанно не стали решать. Иногда это самый рациональный вариант.

Читать далее

5 самых распространенных проблем сайтов на 1С-Битрикс

Время на прочтение9 мин
Охват и читатели8.7K

Сайт на 1С-Битрикс может месяцами работать вроде нормально, пока подключения к базе подбираются к 95%, диск незаметно заполняется логами, бэкап давно не запускался, а в логах копится одна и та же ошибка, на которую никто не смотрит.

Разбираем пять инфраструктурных причин, из-за которых Битрикс-проекты тормозят и падают: база данных, диск, PHP и веб-сервер, резервные копии, мониторинг. В каждом разделе есть простая проверка, которую можно провести у себя за 10 минут.

Читать далее

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

TLS PSK для Mamonsu: как мы добавили защищённую передачу PostgreSQL‑метрик в Zabbix

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.3K

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

У нас получилось немного иначе.

При подключении нового пилотного контура PostgreSQL к Zabbix выяснилось, что Mamonsu успешно работает с базой данных и собирает метрики, но не может передать их на сервер мониторинга, если тот принимает от узла только защищённые соединения с TLS PSK.

Можно было изменить настройки Zabbix или построить обходную схему вокруг штатного zabbix_sender. Вместо этого мы решили доработать сам Mamonsu. В результате появилась поддержка TLS PSK и сертификатов с сохранением совместимости как со старыми серверными версиями Python, так и с современными версиями Python, где PSK уже поддерживается стандартным модулем ssl.

Доработку проверили на пилотном контуре, после чего отправили разработчикам Mamonsu в upstream.

Читать далее

Почему ваш Wi‑Fi никогда не выдаст скорость из свойств подключения (и дело не в помехах)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.9K

Почему iperf никогда не покажет скорость из свойств подключения Wi‑Fi? Разбираем популярный миф о том, что максимальная Data Rate достижима в лаборатории. На конкретных примерах и формулах заглянем под капот физического уровня и докажем, почему канальная скорость математически недостижима для полезных данных ни при каких условиях.

Читать далее

Неожиданные проблемы с ceph tentacle на ubuntu 24.04

Время на прочтение5 мин
Охват и читатели5.4K

Добрый день коллеги, пишу первый раз, поэтому прошу не судить строго. Решил поделиться с вами проблемой, с которой столкнулся совсем недавно и потратил на то чтобы разобраться целый день. А в итоге оказалось, что косяк то не мой.

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

Читать далее

Две страницы под один запрос — это ещё не каннибализация: детектор на n8n с моделью риска [+воркфлоу]

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5.1K

Классический совет при каннибализации запросов - найти пересекающиеся страницы и склеить их редиректом. На практике это часто ломает рабочую структуру: пересечение может оказаться недельным шумом, естественной смешанной выдачей или временным перехватом карточкой товара.

Собрал воркфлоу на n8n для категорийного ядра магазина. Система сопоставляет 28 7 дневные срезы GSC и Метрики, считает детерминированный риск-скоринг 0-100 по шести факторам (доминирование, сдвиг позиций, клики, тренд, персистентность) и строит граф реальных конфликтов.

Внутри - математика скоринга, отделение категорий от карточек товаров и ссылки на репозиторий с воркфлоу.

Читать далее

Своя собственная Hysteria 2 ее развертка в терминальном режиме

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.8K

В сети есть множество гайдов об установке и настройке прокси-протокола Hysteria 2 с панелями и без. В данном пошаговом гайде мы пройдем путь от А до Я полностью своим путем без использования готовых скриптов автоустановки и веб-панелей.

Читать далее

Обзор курса «Контейнеризация в Linux: От chroot до Docker»

Время на прочтение5 мин
Охват и читатели6.6K

Продолжая поиски интересных курсов(в этот раз не авито), я наткнулся на необычный материал по контейнеризации. Обычно всё выглядит одинаково: Docker, команды, образы, и в конце внезапно появляются Ansible и Kubernetes. Как будто без них нельзя объяснить, что такое контейнер. Или авторы просто пытаются запихнуть побольше в один курс, чтобы казалось, будто его стоимость оправдана. Ну да ладно.

А мне хотелось чего-то другого. Помните книгу про внутреннее устройство Linux Кетова?
Ещё в 2022 году мне понравилось, как подавался материал про контейнеризацию — от самых её зачатков (chroot) до самого Docker. Вот именно такое я хотел увидеть у кого-нибудь, но с актуализированной информацией.

И такой курс нашёлся на Степике(не реклама если что). Автор как раз пошёл от самого начала: chroot, пространства имён, контрольные группы, ручной запуск контейнера без Docker, и только потом — сам Docker со всеми его фишками. По сути, это получилась современная версия той самой главы из книги Кетова про контейнеризацию.

Читать далее

200 OK от гейтвея ничего не значит

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели8.8K

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

Привет, Хабр! Меня зовут Михаил Шпаков, я развиваю Statuser — сервис мониторинга доступности сайтов. Раньше я рассказывал, как он появился и что я узнал за год, мониторя 6 500 сайтов.

Недавно мне написал пользователь Statuser. В его продукте модель разбирала обращения клиентов и готовила для операторов черновики ответов. В какой-то момент эта функция перестала работать, хотя обычный HTTP-монитор, настроенный на адрес ИИ-гейтвея, продолжал показывать зелёный статус. О проблеме сообщили операторы поддержки, а не мониторинг.

Причина оказалась простой: провайдер снял выбранную модель с обслуживания, но сам гейтвей продолжал работать. HTTP-монитор проверял его обычным GET-запросом и получал успешный ответ. Запрос на генерацию он не отправлял, поэтому состояние конкретной модели не видел.

Диагностировать такой сбой нетрудно, если уже известно, куда смотреть. Заметить его начало сложнее: между доступным гейтвеем и работающей функцией продукта есть ещё один слой — сама модель, и до него обычная проверка не доходит. Когда модель перестаёт отвечать, сервис целиком обычно не падает. Пропадает одна функция: подсказки, разбор обращений, ответы в чате.

После этого случая я понял, что не хватает отдельного типа мониторинга. Он должен не просто обращаться к адресу гейтвея, а отправлять настоящий запрос выбранной модели и проверять её ответ. Так в Statuser появился мониторинг ИИ-моделей.

Читать далее