Обновить
46.59

Серверная оптимизация *

Разгружаем сервер

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

Как сократить расходы на VPS и не сломать прод

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

Для ощущения надёжности и безопасности VPS часто берут с запасом. Но со временем процессор начинает простаивать, память заполняется кэшем, диск пишет логи и бэкапы вместо рабочей нагрузки, а тариф остаётся прежним. На фоне грустных новостей об НДС и кризисе есть хорошая — некоторые расходы на инфраструктуру можно сократить. О том, как это сделать, мы расскажем под катом. 

Читать далее

Новости

Нейропоисковик на 17 миллионов картинок: OpenCLIP, Qdrant и ZeroTier вместо облаков

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

Как сделать свой аналог Pinterest, если у вас нет бюджета корпорации, но есть 4 ТБ картинок (17 миллионов штук) и желание искать по ним не просто по тегам, а по визуальному стилю?

В статье — опыт построения распределенной системы поиска из подручных средств. Разбираем архитектуру: — Гибридное хранение: Backblaze B2 (холодное) + Домашний сервер (вычисления). — Сеть: Как ZeroTier объединил разрозненные ноды в одну Mesh-сеть без белых IP. — Векторный поиск: Как уместить 17 миллионов векторов OpenCLIP ViT-H/14 в 32 ГБ RAM с помощью Qdrant и квантизации. — Оптимизация: Почему поиск работает за 5 мс, а загрузка метаданных тормозила до 3 секунд, и как PostgreSQL спас ситуацию.

Полный разбор ETL-пайплайна и экономики домашнего HighLoad-проекта.

Читать далее

Инженерия UX и производительности: от ядра к периферии

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

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

Легаси. Много дополнительных модулей. Очень медленная загрузка страниц. Визуально сайт выглядит морально устаревшим. Мобильного приложения нет. Пользователи есть, пользуются, но страдают (с большими экранами очень страдают).

Хотелось не просто ускорить метрики, а выстроить полноценную систему, которая бы работала для пользователя как обычное SPA-приложение: быстро, плавно, визуально современно, а главное с уважением к пользователям.

Читать далее

Утечка, которой не было: как Next.js раздувает RAM в Kubernetes

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

Привет, Хабр! Меня зовут Вадим Королёв. Я руководитель команды разработки в X5 Tech. Очень люблю Next.js и решать проблемы, которые он приносит. С ним всегда происходит что-то интересное. Расскажу о причине утечки памяти в Node.js, которая оказалась глубже, чем можно было подумать.

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

В этот момент я занимался архитектурой и оптимизацией Node.js в музыкальном стриминге. Открыл графики и увидел явный рост памяти, который уходил в пик и приводил к перезапуску подов. Так началась «классическая предновогодняя история». Next.js в Kubernetes внезапно начал есть память так, будто у него внутри чёрная дыра.

Читать далее

Оптимизация Windows Server, если на VPS мало памяти

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

Посмотрим, как повысить производительность работы сервера на Windows Server 2016, 2019 или 2022 в среде с ограниченными ресурсами (2−4 ГБ RAM, 2 vCPU), то есть типичного VPS.

Оптимизация сервера — стандартная процедура, которую имеет смысл запускать каждый раз после регистрации нового VPS. Цель — выжать максимум производительности из железа без больших финансовых затрат.

Читать далее

Москву сжали до 93 МБ. Новый формат данных OpenStreetMap

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

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

В октябре 2025 года разработчики представили новый формат хранения данных GOB («Geo-Object Bundle», пакет геообъектов). Это вспомогательный формат для библиотеки GOL (Geo-Object Library), которая была раньше. В новом формате реализовано сжатие zlib и другие оптимизации, что позволило существенно уменьшить размер файлов, скорость загрузки и обработки карт. Работа с нашей Землёй стала гораздо быстрее, если можно так сказать.

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

Читать далее

Как быстро определить тепловые ограничения сервера

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

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

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

Читать далее

Кейс: как мы ускорили серверную часть мобильной игры в 2,5 раза и снизили расходы в 5 раз

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

Как ускорить серверную часть мобильной MMO-игры в 2,5 раза и при этом сократить инфраструктурные расходы в 5 раз? В этом кейсе рассказал опыт проекта The Firstborn: почему виртуальная машина перестала справляться с нагрузкой ещё до релиза, зачем мы отказались от геораспределённой базы данных, как выбор точки размещения повлиял на пинг по всему миру и почему переход на выделенный сервер с NVMe кардинально изменил стабильность, деплой и скорость серверного просчёта боёв.

Читать далее

I'm on the stairs to hell

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

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

Читать далее

Маленькие, но мощные оптимизации: как pgpro_planner спасает запросы из мира 1С

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

Что общего у запросов из 1С, конструкции IN (VALUES ...) и безобидного выражения x + 0? Все они способны превратить выполнение запроса из миллисекундного дела в многоминутное ожидание, потому что стандартный планировщик PostgreSQL на них «спотыкается». Разбираем, как расширение pgpro_planner переписывает неудобные куски дерева запросов в дружелюбный вид еще до того, как оптимизатор успеет выбрать неудачный план, и почему некоторые из этих решений уже попали в ванильный PostgreSQL 18.

Читать далее

Архитектура без сервера (serverless): проблемы, решения, практические рекомендации

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

Serverless — это не отсутствие серверов. Это состояние, когда вы перестаете о них думать. Вы не патчите ядра Linux, не настраиваете Nginx и не мониторите свободное место на дисках. Вы пишете функцию, загружаете код в облако, и платформа сама решает, где и как это запустить.

Звучит идеально. Но на практике Serverless — это сделка. Вы отдаете контроль над инфраструктурой в обмен на удобство. И часто цена этой свободы — новые, совершенно неочевидные архитектурные проблемы.

Читать далее

WireGuard VPN на VPS с Ubuntu 20.04: Своими ручками легко, быстро и весело

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

Для начала давайте убедимся, что наш VPS находится в самом актуальном и обновленном состоянии. Подключаетесь к VPS через SSH. Запустите следующие команды, чтобы обновить систему и установить необходимые пакеты...

Читать далее

Оптимизация производительности приложений: проблемы, решения, практические рекомендации

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

Приложение тормозит. Это жалоба номер один, которую слышат разработчики и архитекторы. Но "тормозит" — это не диагноз. Это симптом. За этим простым словом может скрываться что угодно: от плохо написанного SQL-запроса до "шумного соседа" в облаке или неправильной настройки сборщика мусора.

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

Читать далее

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

Как фильтры Блума в 16 раз ускорили API

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

Этот пост станет глубоким разбором того, как мы снизили задержки P95 конечной точки API с 5 до 0,3 секунды при помощи нишевого трюка computer science под названием «фильтр Блума».

Мы расскажем о том, почему конечная точка была медленной, о решениях, которые мы рассматривали для повышения её скорости, и о критериях выбора между ними. Также мы объясним, как всё это устроено внутри.

Читать далее

Типизация данных в PHP, надо ли оно? Прирост скорости JIT

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

Влияет ли типизация данных на скорость работы PHP? Варианты конфигурации JIT. Не самые комплексные тесты, но результат понятен.

Читать далее

Как мы запустили новый высокопроизводительный кластер: от выбора железа до прода

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

В современном мире облачных технологий производительность инфраструктуры напрямую влияет на качество услуг и удовлетворенность клиентов. Когда перед нами встала задача миграции клиентов Serverspace с устаревшего кластера в DataSpace на новую площадку в IXcellerate, мы решили не просто обновить оборудование, а создать решение, которое задаст новый стандарт производительности для российского рынка.

Читать далее

Как выбрать VPS для WordPress: оптимальная конфигурация для любого сайта

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

Несмотря на обилие различных онлайн-конструкторов сайтов (вроде Tilda), WordPress остаётся одним из самых популярных движков. Однако сайт, созданный на WP, нужно где-то размещать, и в этом отлично помогает VPS-сервер. Благодаря гибкости в выборе конфигурации, можно легко собрать сервер под проект любого масштаба. И в этой статье мы бы хотели рассмотреть несколько конфигураций VPS под разные проекты на WordPress.

Читать далее

Назад к on-premise. Почему это снова тренд и чем будет полезен Selectel Server

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

Разбираемся, как контроль над инфраструктурой превращается в бизнес-преимущество в новой экономической и регуляторной реальности, а также делимся, как в этом поможет серверное решение Selectel

Читать далее

Серверы VALORANT с тикрейтом 128

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

Привет! Меня зовут Brent «Brentmeister» Randall (Брент Рэндалл). Я — инженер из команды Gameplay Integrity, которая занимается игрой VALORANT. В сферу нашей ответственности входит система сборки игры, фреймворки, используемые для автоматизации различных задач, производительность игрового клиента и серверов. Именно последнему пункту этого списка и посвящена данная статья. Я поделюсь с вами историей поиска подходов, позволивших вывести производительность наших серверов на оптимальный уровень.

На самых ранних этапах разработки проекта мы уже знали о том, что VALORANT отличается весьма жёсткими требования к производительности игровых серверов. Надеюсь, мне удастся дать вам некоторое представление о том, почему это так, и о том, как были достигнуты наши амбициозные цели. В самом начале серверный кадр (server frame, цикл обработки данных на сервере) длился 50 мс. А после завершения оптимизации нам удалось сократить это время до менее чем 2 мс. Всё это сделано благодаря анализу и оптимизации кода проекта, а так же — благодаря подстройке «железа» и тюнингу ОС.

Читать далее

Парсим XML и JSON на ассемблере

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

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

Читать далее
1
23 ...

Вклад авторов