Обновить
128K+

Серверное администрирование *

Установка, настройка, обслуживание

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

Выделенный сервер на Xeon E3: разбираем варианты переезда 

Часто при выборе выделенного сервера, многие сразу смотрят на топовые мощные конфигурации. Но на практике веб-проекту редко нужен последний Xeon, а чаще важнее предсказуемость и правильный баланс ресурсов. 

В SpaceWeb мы держим линейку на Xeon E3-1270 v3 — процессоре не новом, но зато проверенном годами. Варьируя лишь объем RAM и тип накопителей, можно решить почти любую задачу: от легкого сайта до файлового хранилища на терабайты.

Какую выбрать конфигурацию:

  • Сайт или несколько веб-проектов. 16 ГБ RAM и пара SSD — база для Битрикса, WordPress или интернет-магазина. Если проектов больше, тогда берем 32 ГБ.

  • Интернет-магазин или портал с контентом. Тот же процессор, но диски побольше: под базы, картинки и логи.

  • Бэкапы, архивы, почта. Здесь скорость SSD не нужна, поэтому ставим HDD на терабайты. Дешевле, а задачу решает.

  • Сайт и файлы на одном сервере. Гибрид: SSD под приложение, HDD под документы. Удобно для корпоративных порталов и Bitrix24.

Посмотреть полные характеристики и заказать нужную конфигурацию можно на сайте SpaceWeb. А если не нашли подходящий вариант — просто напишите нам на почту dedic@sweb.ru, мы поможем подобрать решение вручную.

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

Настраиваем S3-доступы так, как нужно проекту

Добавили редактор политик для пользователей S3. Теперь в панели можно как выдать готовую роль, так и настроить собственную политику — редактируете ее в интерфейсе или загружаете готовый JSON.

Когда пригодится:

1️⃣ Открыть разработчику только чтение логов — без возможности изменить или удалить данные.

2️⃣ Выдать клиенту доступ к нужной папке в бакете — остальные объекты останутся недоступны.

3️⃣ Разрешить скрипту бэкапов запись без права удаления — старые копии останутся целы.

Права можно задать как для новых пользователей при создании, так и для уже существующих в S3 → «Пользователи». Еще политика доступна в настройках конкретного бакета.

Раздать персональные права →

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

22 → 187 сборок выделенных серверов в Москве ⚡️

Расширили линейку выделенных серверов в Москве с 22 до 187 конфигураций. Теперь подобрать сервер под нужную задачу можно еще точнее.

➖ Ходовые Intel Xeon E3, E5 и E-серии, Intel Core i7 и i9, AMD Ryzen 9 на DDR5. Под сайты, приложения, dev-стенды и 1С, где важна высокая частота ядер.

➖ Двухсокетные Intel Xeon Scalable Silver. Под виртуализацию, средние базы и все, где нужно много памяти и потоков.

➖ Мощные двух- и четырехсокетные Intel Xeon Gold 6230R, 6240 и 6330. Под тяжелые базы, большую аналитику и крупные проекты.

Посмотреть все конфигурации →

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

Лимиты 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

Сайты в S3 теперь доступны на вашем домене

Технический адрес имя_бакета.website.twcstorage.ru больше не единственный вариант. В S3 появилась возможность разместить статический сайт и открыть его на собственном домене — например, blog.example.ru или docs.example.ru.

Работает так: вы собрали лендинг или портфолио — загружаете файлы в бакет, привязываете свой домен и отправляете ссылку в соцсети.

Что это дает:

1️⃣ Сайт работает на вашем домене, а не на техническом.

2️⃣ Не нужен отдельный веб-сервер, то есть обходитесь без аренды и настройки.

3️⃣ Контент раздается через CDN, и сайт грузится быстрее.

Как подключить: в настройках бакета выберите «Веб-сайт» → «Привязать собственный домен» → «Создать CDN-ресурс» → добавьте свой домен.

Подробнее о настройке → в доке

Разместить сайт на своем домене →

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

Погонял llama.cpp на пяти NVIDIA CMP 90HX и сравнил layer split с tensor split.

Конфигурация:

  • 5 × NVIDIA CMP 90HX по 10 ГБ

  • суммарно llama.cpp видит 49 383 MiB VRAM

  • 4 карты подключены по PCIe x8

  • 1 карта подключена по PCIe x4

  • применен rejoin15

  • модель - Qwen3.8-27B-Heretic

  • квант - Q8_0

  • размер GGUF - 26.62 GiB

  • параметров - 26.90B

  • llama.cpp build e107984

  • распределение по GPU - 1/1/1/1/1

  • все слои загружены на GPU

  • KV cache - F16, тоже на GPU

  • Flash Attention - auto

С tensor split картина получилась довольно интересная.

На пустом контексте генерация выросла с 23.76 до 31.93 tok/s. Это примерно +34%.

На 32K контекста - с 22.15 до 31.06 tok/s, то есть уже около +40%.

Для чистой генерации tensor split реально быстрее.

Но есть обратная сторона - prompt processing просел очень сильно.

На пустом контексте:

  • Layer - 1992.67 tok/s

  • Tensor - 268.46 tok/s

На 32K:

  • Layer - 1457.97 tok/s

  • Tensor - 246.84 tok/s

То есть обработка входного контекста в tensor split получилась примерно в 6-7 раз медленнее.

На 64K tensor-тест дальше не пошел - модель выгрузилась из памяти. Причину пока отдельно не разбирал, поэтому данные для tensor на 64K, 96K и 128K не привожу.

Layer split при этом нормально прошел весь тест до 128K.

Скорость генерации по мере заполнения контекста:

  • 0K - 23.76 tok/s

  • 32K - 22.15 tok/s

  • 64K - 20.75 tok/s

  • 96K - 19.53 tok/s

  • 128K - 18.44 tok/s

То есть даже при 128K контекста dense-модель на 26.9B параметров в Q8 все еще работает со скоростью около 18.4 tok/s.

Prompt processing тоже падает постепенно, без резкого провала:

  • 0K - 1992.67 tok/s

  • 32K - 1457.97 tok/s

  • 64K - 1136.52 tok/s

  • 96K - 916.35 tok/s

  • 128K - 724.86 tok/s

Для обычного чата tensor split может быть интересен, если контекст короткий, а ответы длинные. Там прирост с 24 до 32 tok/s ощущается.

Но если чат уже большой и модель каждый раз должна перерабатывать много входных токенов, выгода быстро начинает пропадать из-за очень медленного prefill.

Для кодового агента вроде Hermes я бы оставил layer split.

Агент постоянно читает файлы, получает куски исходников, и добавляет все это в контекст. В таком режиме скорость обработки входа важнее, чем дополнительные 8 tok/s на генерации.

Плюс layer split у меня стабильно работает вплоть до 128K, а tensor пока отвалился уже при переходе к 64K.

Итог пока такой:

  • короткий чат и длинные ответы - tensor split может быть быстрее

  • длинный чат - уже спорно

  • кодовый агент и большие проекты - layer split выглядит намного практичнее

Сами CMP 90HX тоже порадовали. Qwen3.8-27B dense Q8 дает около 24 tok/s на пустом контексте и около 18.4 tok/s на 128K.

После того как выкрутил вентиляторы на 100%, самая горячая карта держится примерно на 65 градусах.

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

Соло-инференс-провайдер в ЕС: как я снизил цену на 11 центов и получил 146 миллионов токенов за сутки.

Дисклеймер: я оператор LLM Tech, инференс-провайдера из одного человека и одной GPU. Пост про технику и экономику, не реклама. Цифры можно проверить на публичной странице статуса, ссылка в конце.

Сетап

Одна RTX PRO 6000 Blackwell 96GB в аренде в финском датацентре, edge-VPS в Германии, между ними nginx и самописный шим на aiohttp, примерно 700 строк. Модель — Qwen3.8-27B в NVFP4: это аппаратный формат Blackwell, по качеству близко к fp8, по стоимости обслуживания примерно вдвое дешевле. Контекст 262К.

Кубернетеса нет, автоскейлинга нет, команды тоже нет. Каждый запрос пишется в JSONL-журнал со снапшотом цены на момент запроса, так что любой инвойс восстанавливается построчно даже спустя месяц.

Как устроен рынок, если ты маленький

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

Механика такая: запросы с включённым промпт-кешированием роутятся только на кеш-способных провайдеров, по сумме базовых цен вход+выход. Провайдеры на llama.cpp с Q4_0 в этой лиге не играют, мультитенантный префикс-кеш там не работает.

Ход на 11 центов

Я снизил цену выходных токенов с $2.20 до $2.09 за миллион — на 11 центов ниже ближайшего кеш-неспособного конкурента по сумме. Через час роутер площадки перечитал мой /v1/models (цены они читают живьём) и весь кеш-тяжёлый трафик модели поехал ко мне.

Следующие сутки: 2 087 запросов, 146 миллионов токенов, из них 129М отданы из кеша. В пике — 8 миллионов токенов за 5 минут и больше сотни конкурентных стримов. Карта в моменте делала 40М токенов в час.

Экономика кеша

До меня неделю доходило, что кеш работает не как скидка, а как ров. При 91% кеш-хитов из 145М входных токенов реально прожёвано около 16М, остальное — чтение готовых KV-блоков из VRAM по $0.04 за миллион. Взвешенная цена входа вышла $0.06–0.08/М, дешевле авто-пула площадки, хотя базовая цена у меня выше, чем у части конкурентов.

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

Технические грабли, о которых нигде не написано

Кеш на гибридной архитектуре. У Qwen3.8 смешанное внимание (full attention + GDN-слои), и vLLM кеширует их иначе, чем чистые трансформеры: блоки по 1 584 токена, потому что страница внимания выравнивается по mamba-странице. Материализация ленивая: первый запрос кеш не создаёт, второй создаёт, читает только третий. Промпты короче ~5К токенов в кеш не попадают вовсе. Я сначала решил «кеш сломан», потому что тестировал двумя одинаковыми запросами. Тестируйте тремя.

Поля reasoning. В нестриминговых ответах vLLM кладёт рассуждения в поле reasoning, в стриминговых дельтах — в reasoning_content. Я потерял день, читая не то поле, и успел записать чекпоинт в «инстракт-онли».

NVFP4-квант сохранил vision-башню. Модель всюду числится текстовой, но OpenAI-шный image_url просто работает: картинка 768×512 плюс 40 токенов ответа занимает 1.2 секунды, а в usage прилетает multimodal_tokens. Узнал случайно, когда полез смотреть карточку модели у крупного агрегатора.

Таймауты складываются в гильотину. Генерация 32К токенов на 50 ток/с занимает 640+ секунд. Проверьте всю цепочку: у меня aiohttp с ClientTimeout(total=600) молча убил легитимный стрим и записал его в журнал как 200. nginx при этом невиновен, его proxy_read_timeout считает паузу между байтами, а не общее время.

429 вместо очереди. Лимиты конкурентности на канал, при превышении — мгновенный 429 с Retry-After. Тихая очередь портит TTFT всем сразу, быстрый отказ даёт клиенту среагировать. Единственный настоящий 502 за ~6000 запросов оказался гонкой с протухшим keep-alive и лечится одним

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

Compact OS в Windows: как освободить место без удаления файлов

Если системный SSD почти заполнен, не обязательно сразу удалять программы, игры или личные данные. В Windows есть встроенный механизм Compact OS, который сжимает системные файлы и помогает освободить несколько гигабайт.

Функция появилась в Windows 10 и поддерживается в Windows 11. Отдельного переключателя в настройках нет: управлять Compact OS нужно через команду Compact.exe.

Как работает Compact OS

Windows хранит часть системных файлов в сжатом виде, а при обращении распаковывает их на лету. Компоненты ОС при этом не удаляются и не отключаются.

Технология поддерживается на компьютерах с UEFI и классическим BIOS. Windows Update также умеет обслуживать сжатую установку: заменять и удалять необходимые файлы без постоянного увеличения её размера.

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

Как проверить и включить функцию

Откройте командную строку от имени администратора и выполните:

Compact.exe /CompactOS:query

Команда покажет, используется ли Compact OS сейчас.

Для включения сжатия:

Compact.exe /CompactOS:always

Чтобы вернуть обычное состояние:

Compact.exe /CompactOS:never

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

Сколько места можно освободить

Точный результат зависит от версии Windows и конфигурации системы. В документации Microsoft для 64-разрядной Windows 10 версии 1607 приведён пример установки объёмом 15,06 ГБ. После применения Compact OS размер уменьшался до 11,3 ГБ — экономия составляла более 3,7 ГБ.

При дополнительном single-instancing объём снижался до 10,09 ГБ, а суммарная экономия превышала 4,75 ГБ.

Это ориентиры, а не гарантия для любого компьютера. На Windows 11 результат может быть другим.

Когда Compact OS имеет смысл

Функция пригодится, если:

  • системный SSD небольшой;

  • раздел почти заполнен;

  • удалять приложения и пользовательские файлы не хочется;

  • нужно освободить несколько гигабайт именно за счёт компонентов Windows.

На компьютере с SSD на 1–2 ТБ польза обычно ограничена: несколько гигабайт редко решают проблему нехватки места.

Важно помнить, что Compact OS сжимает только системные файлы. Место также занимают:

  • Pagefile.sys и Hiberfil.sys;

  • обновления Windows;

  • точки восстановления;

  • журналы и кэши;

  • языковые пакеты;

  • компоненты Windows;

  • приложения и временные файлы.

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

Итог

Compact OS — штатный способ уменьшить размер Windows без удаления системных компонентов. Он особенно полезен на устройствах с небольшими накопителями, но не является универсальным решением проблемы нехватки места.

Если свободного пространства критически мало, можно начать с проверки:

Compact.exe /CompactOS:query

А затем, при необходимости, включить режим:

Compact.exe /CompactOS:always

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

✔ Код — журнал о технологиях https://t.me/kodjournal подпишитесь на наш Telegram-канал! 😎

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

Пройти идентификацию через ЕСИА за пару минут

Мы уже рассказывали, зачем нужно подтверждение данных владельца домена через Госуслуги — с 1 сентября без этого нельзя будет зарегистрировать, продлить и передать домены .ru, .рф и .su.

Теперь пройти идентификацию можно в панели, в разделе «Домены и SSL». Пока она доступна только для физлиц, юрлица смогут подтвердить данные после 1 сентября.

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

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

Как аптечная сеть «36,6» снизила ИТ-расходы в 1,5 раза после переезда на bare metal

Аптечная сеть «36,6» росла, а инфраструктура за этим не успевала. Аналитические расчеты требовали все больше мощности, а ядро сети держалось на двух коммутаторах Cisco с потолком 1 Гбит/с — в часы пик из-за этого могли сбоить аптеки. Бюджет при этом растягивать не хотелось.

Решением стал переход на bare metal в Рег.облако. Собрали инфраструктуру, которая оставила «36,6» полный контроль над железом и дала запас мощности для роста.

Что сделали:

  • перенесли больше 400 виртуальных машин за два месяца, без простоев в бизнес-процессах;

  • в основном ЦОДе — хосты на AMD EPYC с памятью DDR5 и три системы хранения;

  • заменили ядро сети: вместо упиравшихся в 1 Гбит/с коммутаторов Cisco поставили масштабируемое программное решение;

  • добавили серверы с GPU под большие языковые модели и резервный ЦОД с объектным хранилищем S3.

В результате расходы на инфраструктуру снизились в 1,5 раза, производительность кластера выросла в среднем на 40%, а ключевой расчет ускорился с 22 до 16 часов. Подробнее о технической реализации — в кейсе на сайте Рег.облака.

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

Режим стримера 🎮

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

Включаете — и панель сама блюрит конфиденциальные данные:

➖ Публичные IP-адреса
➖ Баланс
➖ Личные данные: ФИО, телефон, email
➖ Домены и почтовые ящики

Пока переключатель в меню профиля в правом верхнем углу. Позже переедет в настройки персонализации.

Попробовать на своей панели →

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

Дайджест Рег.облака за июль

В июле запустили третий этап Free Tier — бесплатный облачный сервер, ресурсов которого хватает уже на бизнес-проекты. Плюс упростили работу с ispmanager, открыли линейку «Стандартные» в двух регионах, добавили готовые образы в аттестованный контур ФЗ-152 и поделились исследованием о спросе на облако и GPU. Ниже — главное.

Запустили третий этап Free Tier — теперь и для бизнес-нагрузок

Расширили бесплатный облачный сервер до конфигурации, которой хватает для корпоративных порталов, крупных интернет-магазинов и ресурсоемких сервисов. На третьем этапе Free Tier дает выделенный облачный сервер бесплатно на два месяца: два виртуальных ядра, 4 ГБ оперативной памяти и 40 ГБ NVMe. Сервер подходит для проектов на «1С-Битрикс», переноса крупных сайтов с виртуального хостинга, баз данных и подготовки CI/CD-сред.

Подробности — на странице программы.

Исследование: спрос смещается к облаку, bare metal и GPU

Посмотрели, как за два года изменился спрос бизнеса на инфраструктуру. В публичном облаке акцент сместился с запуска проектов на резервирование: снапшоты используют 35,2% компаний малого бизнеса и 37% среднего. В dedicated и bare metal стало больше крупных клиентов — число компаний с расходами выше 500 тыс. руб. в месяц выросло более чем вдвое.

Особенно вырос спрос на GPU: за январь–июнь 2026 г. потребление прибавило 507% год к году. Чаще всего берут NVIDIA A4000 — у 63% компаний, и приходят за ускорителями уже не только ИТ, но и электронная коммерция, производство, логистика и финансы.

Все цифры — в исследовании.

Управление ispmanager для выделенных серверов в личном кабинете Рег.облака

Теперь панель ispmanager для выделенных серверов можно заказать и настроить прямо в личном кабинете Рег.облака. Если панель уже подключена, в интерфейсе ЛК виден блок с доступами и ссылкой на саму панель на сервере.

Открыли линейку «Стандартные» в Москве-1 и Санкт-Петербурге-1

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

Готовые образы GitLab, GitLab Runner, Nextcloud и Portainer в регионе Москва ФЗ-152

В аттестованном контуре появились предустановленные инструменты для разработки и совместной работы. Развернуть нужное решение в защищенной среде можно без ручной настройки.

Разобрали свои продукты в статьях

В июле вышли два продуктовых обзора на Хабре — если пропустили, читайте:

Желаем всем продуктивного месяца и спасибо, что следите за обновлениями Рег.облака!

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

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

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

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

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

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии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

Почему дешёвый VPS-сервер может обойтись дорого в продакшене? Тариф в 3–5 долларов в месяц за VPS кажется приятной экономией на старте. Но если тариф выбран только по цене, счёт за простой, срочную миграцию и потерянных клиентов может прийти позже и оказаться выше, чем сэкономленная разница в ценнике.

Что скрывается за низким ценником? За низкой ценой могут стоять оверселлинг, общий диск, ограниченная поддержка и слабые гарантии по SLA. У части провайдеров низкая цена достигается за счёт плотного размещения клиентов на одной ноде: продаётся больше vCPU и RAM, чем физически доступно, в расчёте на то, что нагрузки не совпадут. В результате могут появляться CPU steal time, просадки I/O от соседей по железу и нестабильная производительность общего хранилища. SLA на бюджетном VPS-сервере может отсутствовать или ограничиваться формальным обещанием без понятной компенсации.

Реальные риски в продакшене. Под нагрузкой проблемы проявляются внезапно: API начинает отвечать с задержками, база данных упирается в I/O, сервис падает в самый неподходящий момент. Потеря данных из-за отсутствия бэкапов или срочная миграция перед дедлайном – реальные риски для проектов, которые выбирают инфраструктуру только по цене.

Как считать полную стоимость VPS? Реальная цена – это не только тариф, а TCO: тариф + стоимость инцидентов. Один час простоя интернет-магазина в пиковый сезон легко перекрывает годовую разницу между дешёвым и надёжным VPS. Добавьте часы на диагностику и миграцию, потери из-за недовольных клиентов – и экономия быстро испаряется.

Чек-лист: признаки надёжного VPS:

•        SLA не ниже 99,9%

•        NVMe-хранилище со стабильной производительностью или понятными IOPS-лимитами

•        Современная аппаратная виртуализация, например KVM, и понятная политика изоляции ресурсов

•        Автоматические бэкапы с проверенным восстановлением

•        Поддержка 24/7 с заявленным временем ответа

•        Гарантированная пропускная способность сети

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

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

С днём системного администратора!

Стабильного коннекта, низкого пинга, работающего резервного копирования!

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

Почему аптайм зависит не только от VPS-провайдера?

Провайдер может обещать 99,9% аптайма VPS, но аптайм продукта и аптайм инфраструктурного узла остаются разными показателями. Когда сервис падает, причина часто находится за пределами зоны ответственности провайдера: в приложении, деплое, базе данных, DNS или внешних API.

Что именно гарантирует VPS-провайдер? SLA VPS-провайдера покрывает доступность физического узла, сетевого канала и питания. Если оборудование работает и сеть доступна, инфраструктурная часть SLA может считаться выполненной. Код, конфигурации, база данных и внешние зависимости остаются в вашей зоне ответственности.

Где на самом деле ломается аптайм? На практике многие простои возникают не из-за сбоев инфраструктуры, а из-за ошибок в коде и операционных процессах. Неудачный деплой, утечка памяти, переполненный диск, истёкший SSL-сертификат, недоступный DNS или упавший сторонний API гасят сервис независимо от стабильности хостинга.

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

Как повысить реальный аптайм сервиса? Стабильность сервиса на VPS складывается из нескольких пунктов. Автоматические бэкапы и снапшоты упрощают восстановление после сбоя. Проверки состояния и алерты сокращают время обнаружения инцидента. CI/CD-пайплайн с проверками и понятным откатом снижает риск ошибок при деплое.

Чек-лист надёжности:

  • Бэкапы и снапшоты настроены и проверены

  • DNS TTL снижен перед плановыми миграциями

  • SSL-сертификаты обновляются автоматически

  • Есть процедура отката для каждого релиза

  • Мониторинг и алерты подключены до деплоя

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

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

Как разрешить пользователю реплики удаленно подключаться к Master-серверу PostgreSQL?

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

По умолчанию PostgreSQL придерживается строгой политики безопасности и блокирует любые удаленные попытки подключения, если они не разрешены в подсистеме авторизации. 

Чтобы решить эту проблему, необходимо отредактировать конфигурационный файл клиентской аутентификации pg_hba.conf на стороне Master-сервера и явно разрешить репликацию для IP-адреса вашей реплики.

Откройте конфигурационный файл клиентской аутентификации:

nano /etc/postgresql/17/main/pg_hba.conf

Обратите внимание, что тут рассматривается настройка репликации на примере PostgreSQL 17.

Найти точное расположение файла можно в командной строке PostgreSQL с помощью команды SHOW:

sudo -u postgres psql -c "SHOW hba_file;"

Добавьте в pg_hba.conf следующую строку, указав вместо REPLICA_ВНУТРЕННИЙ_IP сетевой адрес вашего ведомого сервера:

host    replication    replicator    REPLICA_ВНУТРЕННИЙ_IP/32    scram-sha-256

Для доступа к реплицируемым данным у пользователя replicator должна быть привилегия replication:

ALTER ROLE replicator WITH REPLICATION;

Предварительно ознакомьтесь с порядком применения правил в pg_hba.conf в официальной документации.

Чтобы PostgreSQL применил изменения в конфигурации авторизации, выполните reload службы в терминале:

systemctl reload postgresql

В качестве альтернативы можно отправить сигнал процессу postmaster с помощью pg_ctl reload, вызовом SQL-функции pg_reload_conf() или используя kill -HUP.

После применения изменений Master-сервер начнет принимать входящие пакеты от указанного IP-адреса, и процесс репликации сможет успешно инициализироваться.

На первый взгляд, настройка репликации в PostgreSQL кажется простой задачей: достаточно открыть доступ в pg_hba.conf и подключить standby-сервер.

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

Поэтому в ряде сценариев современные команды переходят от self-managed PostgreSQL к PaaS-решениям вроде Managed Databases, где отказоустойчивость, репликация и обслуживание кластера уже реализованы на уровне платформы.

Это позволяет сократить операционные расходы на сопровождение инфраструктуры и снизить риск простоев критичных сервисов.

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

Мой опыт работы с Selectel: первые впечатления от российского облачного провайдера

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

Но в какой-то момент появляются другие требования: больше ресурсов, стабильность, возможность быстро масштабироваться и нормальная работа с инфраструктурой.

Именно в этот момент я решил попробовать Selectel.

Почему выбрал Selectel

До этого я рассматривал разные варианты. Главными критериями были:

  • стабильность работы;

  • удобное управление сервером;

  • понятная документация;

  • возможность быстро менять конфигурацию;

  • наличие необходимых инструментов.

Хотелось получить не просто сервер, а платформу, с которой можно спокойно развивать проект.

Первое знакомство

Первое, что заметил - это подход к интерфейсу. После регистрации не приходится долго разбираться, где находятся основные функции.

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

Что понравилось

За время использования больше всего обратил внимание на несколько моментов:

Скорость запуска.
Не нужно ждать длительных настроек - необходимые ресурсы можно получить достаточно быстро.

Гибкость.
Можно менять конфигурацию под текущие задачи, не покупая лишнее оборудование.

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

Что можно улучшить

При этом идеальных сервисов не бывает.

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

Итоги

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

Для небольших проектов можно начать с базовых решений, но когда появляются требования к масштабированию и стабильности, облачные платформы становятся более логичным выбором.

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

Как связать контейнеры Nginx и PHP в Docker Compose, чтобы Nginx мог проксировать запросы?

Допустим, вы пытаетесь развернуть связку из веб-сервера и PHP. Контейнеры поднимаются, но веб-сервер выдает ошибку сети и не может достучаться до PHP-бэкенда. Разберемся, что нужно прописать в конфиге Nginx, чтобы они увидели друг друга.

Чаще всего подобная проблема возникает из-за того, что контейнеры изолированы друг от друга на сетевом уровне, либо в конфигурационном файле веб-сервера некорректно указан адрес целевого хоста. В экосистеме Docker Compose встроенный DNS-сервер автоматически сопоставляет имена сервисов с их внутренними IP-адресами. Поэтому не нужно прописывать статические IP — достаточно правильно использовать имена, заданные в манифесте. 

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

Чтобы Nginx мог передавать запросы PHP-FPM, необходимо:

  • убедиться, что оба контейнера находятся в одной сети (app_network),

  • указать в конфигурации Nginx правильный адрес PHP-контейнера (в нашем примере это php:9000, где php — имя сервиса в docker-compose.yml).

Шаг 1: Проверка манифеста docker-compose.yml

Убедитесь, что для обоих сервисов явно выделена одна общая сеть. Пример корректной структуры:

version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/html:/var/www/html
    depends_on:
      - php
    networks:
      - app_network

  php:
    image: php:8.2-fpm
    container_name: php
    volumes:
      - ./php:/var/www/html
    networks:
      - app_network

networks:
  app_network:
    driver: bridge

Шаг 2: Настройка конфигурации Nginx

В блоке location, отвечающем за обработку PHP-скриптов, в директиве fastcgi_pass вместо 127.0.0.1 или localhost необходимо подставить имя сервиса PHP из файла конфигурации:

server {
    listen 80;
    server_name localhost;

    root /var/www/html;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;  # Связь с PHP-контейнером
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Директива depends_on в блоке Nginx гарантирует, что веб-сервер не начнет стартовать раньше, чем поднимется контейнер с PHP. Это предотвратит падение Nginx при первичном запуске окружения, если он не сможет сразу разрешить DNS-имя php.

Если вы хотите глубже разобраться в сетевых механизмах, управлении volumes и оркестрации контейнеров, читайте наш полный материал: Docker Compose и основы работы с контейнерами.

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