Как стать автором
Обновить
10.25

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

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

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

Алгоритмы балансировки нагрузок

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 15K
Блог компании RUVDS.com Алгоритмы *Серверная оптимизация *Серверное администрирование *
Туториал
Перевод

Рано или поздно веб-приложения перерастают среду одного сервера. Компаниям требуется увеличить или их доступность, или масштабируемость, или и то, и другое. Чтобы сделать это, они развёртывают своё приложение на нескольких серверах и ставят перед ним балансировщик нагрузок для распределения входящих запросов. Чтобы справляться с нагрузками, большим компаниям могут потребоваться тысячи серверов, на которых запущено веб-приложение.

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Всего голосов 104: ↑103 и ↓1 +102
Комментарии 16

Новости

Готов для ML, VDI и остального: обзор сервера Altos BrainSphere R360F5

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 606
Блог компании Acer Серверная оптимизация *Хранение данных *Компьютерное железо
Мнение
Recovery mode

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

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

В этом посте мы расскажем о сервере Altos BrainSphere R360 F5, который подойдёт для самых ресурсоёмких задач. Как, к примеру, насчёт 4 ТБ RAM в 1U корпусе? Но давайте обо всём по порядку. 

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 2

Строка на 1,5 гигабайта

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 36K
Программирование *Java *Серверная оптимизация *Отладка *
Кейс
Перевод

На своей предыдущей работе я занимался поддержкой Java-сервиса, обеспечивавшего удалённую функциональность UI подобно RDP или Citrix. Этот сервис был устроен на основе сессий, состоявших из взаимосвязанных объектов Java, которые должны были очищаться или после выхода пользователя, или после истечения заданного таймаута.

На этапе планирования нагрузок мы обнаружили существенные траты памяти, о причинах которых я бы хотел рассказать в этой статье.
Читать дальше →
Всего голосов 51: ↑46 и ↓5 +41
Комментарии 67

Перенос в Docker монолитного SAAS-сервиса

Время на прочтение 18 мин
Количество просмотров 2.1K
Блог компании FirstVDS Системное администрирование *IT-инфраструктура *Серверная оптимизация *SaaS / S+S *

В этой статье мы расскажем о переносе одного из компонентов монолитного SAAS-сервиса, а именно тестового интернет-магазина, в контейнеры. Статья будет полезна тем, кто только приступил к изучению Docker.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 11

Истории

Дефрагментация таблиц в высоко нагруженных базах данных (MSSQL)

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 3.6K
Высокая производительность *SQL *Серверная оптимизация *Microsoft SQL Server *
Кейс

Хорошо, если у вас небольшие (сотни гигабайт) базы, а ночью или в выходные вы можете себе позволить иметь 'maintenance window' и дефрагментировать таблицы. А если нет? В любом случае дефрагментация многих терабайт может занять дни, так что существование maintenance window становится непринципиальным.

Case study: многие терабайты данных, деятельность связанная с процессингом карт (24/7, maintenance window нет в принципе), MSSQL. Разумеется, Enterprise Edition, разумеется AlwaysOn.

Миф: у нас SSD, поэтому дефрагментация нам не нужна. Еще как нужна! Часто в высоко нагруженных системах не делают дефрагментацию, потому что это сложно. В итоге процент фрагментации выходит на уровень почти 100%, и таблицы занимают в два раза больше страниц, чем нужно. В два раза больше места - это в два раза хуже Buffer Cache Hits Ratio. Это в два раза больше размер full backups. Это в два раза дольше full table scans. Это выше CPU (потому что страницы перемещаются с помощью процессора, а не сами по себе).

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 32

Как мы создаём корпоративную почтовую систему нового поколения Mailion. Оптимизация стоимости хранения данных

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 2K
Блог компании МойОфис Серверная оптимизация *Хранение данных *Сжатие данных *Хранилища данных *

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

Одна из наиболее ресурсоемких категорий софта сегодня — это системы хранения данных. К ним можно отнести как классические СУБД, так и хранилища различного назначения. В корпоративной почтовой системе Mailion мы используем объектное хранилище собственной разработки — Dispersed Object Store (DOS). Mailion поддерживает одновременную работу до миллиона пользователей, и подобный уровень нагрузки выдвигает существенные требования к производительности и экономической эффективности системы.

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

Читать далее
Всего голосов 29: ↑28 и ↓1 +27
Комментарии 2

Neural Network Optimization: океан в капле

Уровень сложности Простой
Время на прочтение 14 мин
Количество просмотров 5.5K
Блог компании Doubletapp Серверная оптимизация *Обработка изображений *Машинное обучение *Искусственный интеллект
Обзор
🤖 Сезон machine learning

Всех приветствую, меня зовут Антон Рябых, работаю в Doubletapp. Вместе с коллегой Данилом Гальпериным мы написали статью про важный этап в процессе обучения нейронных сетей и получения необходимых нам результатов —  оптимизацию модели. Зачем нужно оптимизировать модель, если и так все работает? Но как только вы начнете разворачивать модель на устройстве, которое будет ее обрабатывать, перед вами встанет множество проблем.

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

Оптимизация моделей направлена на уменьшение размера моделей при минимизации потерь в точности и производительности.

Методы оптимизации

Pruning — устранение части параметров нейронной сети.
Quantization — уменьшение точности обрабатываемых типов данных.
Knowledge distillation — обновление топологии исходной модели до более эффективной, с уменьшенным количеством параметров и более быстрым выполнением.
Weight clustering — сокращение количества уникальных параметров в весах модели.
OpenVino, TensorRT — фреймворки, с помощью которых можно оптимизировать модели.

Читать далее
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 3

Как работает поиск по коду на Github

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 6.7K
Блог компании SkillFactory Программирование *Серверная оптимизация *GitHub *
Обзор
Перевод


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


Нам часто задают вопрос о новом поиске по коду: «Как он работает?». В дополнение к моей лекции на GitHub Universe, я в общих чертах отвечу на этот вопрос, а также немного расскажу о системной архитектуре и технических основах данного продукта.


Так как же он работает? Мы создали собственный поисковый движок с нуля на Rust специально для поиска по коду. Наш поисковый движок называется «Blackbird», но прежде чем я стану описывать как он работает, думаю, что нужно понять наши предпосылки. На первый взгляд, создание поискового движка с нуля выглядит спорно. Зачем это делать? Разве уже нет большого количества существующих решений с открытым исходным кодом?

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 10

Создание кластера для расчета в OpenFOAM

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 2.3K
Open source *Серверная оптимизация *
Туториал

В статье я расскажу, как можно (при необходимости) быстро и дешево собрать кластер Beowulf на основе домашних компьютеров. Выполню я это с помощью компьютеров находящихся в аудитории университета, используя существующую локальную сеть. Используемые программные инструменты: средства численного моделирования механики сплошных сред OpenFOAM, сетевого протокола прикладного уровня SSH и распределенного протокола файловой системы NFS. Все выполнялось под управлением операционной системы ubuntu 20.04.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 6

8 ТБ на сайт с презентациями

Время на прочтение 4 мин
Количество просмотров 2.6K
Серверная оптимизация *
Кейс

В предыдущей статье мы рассказали, как построили работу серверов и оптимизировали изображения в нашем агрегаторе презентаций. Это помогло. Дискам стало легче, страницы сайта начали загружаться быстрее. После того, как контент разлетелся по разным дискам, мы снова запустили конвейер обработки презентаций. Контент попёр. Мы радовались, даже не замечая, что целимся в собственную ногу.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 7

Как мы запускали агрегатор презентаций

Время на прочтение 8 мин
Количество просмотров 1.1K
Серверная оптимизация *Монетизация веб-сервисов *Интернет-маркетинг *Поисковая оптимизация *
Кейс
Из песочницы

Часто хочется попробовать новое: архитектурное решение, рекламную партнерскую сеть или новый фреймворк. В боевых проектах новое применить сложно, не хочется нарушать принцип «работает — не трогай». Для этих целей подходят собственные небольшие проекты, которые «не жалко».

Представьте: огромный поток презентаций в PPT и PPTX, которые можно брать и использовать как угодно.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 6

Пять шаблонов загрузки данных для повышения быстродействия сайтов

Время на прочтение 13 мин
Количество просмотров 12K
Блог компании RUVDS.com JavaScript *Программирование *Клиентская оптимизация *Серверная оптимизация *
Перевод

Фреймворки вам требуются не для всего, но в случае их использования есть ряд способов, позволяющих добиться максимального быстродействия. В данной статье речь пойдёт о пяти шаблонах загрузки данных, которые при уместном применении позволят значительно повысить производительность приложений или сайтов.
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Комментарии 2

Как мы сделали и оптимизировали механизм правил для персонализации UI

Время на прочтение 13 мин
Количество просмотров 1.9K
Блог компании KTS Python *Серверная оптимизация *Отладка *

Всем привет! Меня зовут Александр, я занимаюсь backend-разработкой в KTS. 

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

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 7

Ruby под нагрузкой, или Как поменять Puma на Falcon за неделю до релиза

Время на прочтение 9 мин
Количество просмотров 2.3K
Блог компании Samokat.tech Блог компании Evrone Тестирование IT-систем *Ruby *Серверная оптимизация *

Всем привет! Меня зовут Александр Шерман, я тимлид в команде CRM в Самокате. Мы в первую очередь известны по своей модели доставки заказов от 15 минут. Чтобы укладываться в такой норматив, у нас достаточно жёсткие SLA (2,5 минуты на сборку заказа), что, в свою очередь, диктует строгие требования к надёжности и быстродействию сервисов.

Часть проектов у нас написана на Ruby. Если раньше в качестве web-сервера для них мы использовали Puma (который уже стал de-facto стандартом) и горя не знали, то в определённый момент нам его производительности стало не хватать. В статье, сделанной по мотивам моего доклада на конференции Ruby Russia 2022 расскажу, как и зачем мы переехали на другой веб-сервер.

Читать далее
Всего голосов 20: ↑20 и ↓0 +20
Комментарии 5

Представляем specialist — пакет для оптимизаций Python-кода

Время на прочтение 5 мин
Количество просмотров 6.9K
Блог компании SkillFactory Python *Программирование *Клиентская оптимизация *Серверная оптимизация *
Обзор
Перевод

Specialist


Specialist использует высокоточную информацию о местоположении (fine-grained location), чтобы наглядно показать пользователю, где и как новый адаптивный интерпретирующий транслятор (specializing adaptive interpreter) CPython 3.11 оптимизирует ваш код. Подробности об инструменте — к старту курса по Fullstack-разработке на Python.


Читать дальше →
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 12

Концепция ландшафта 1С-систем на предприятии

Время на прочтение 2 мин
Количество просмотров 2.3K
Системное администрирование *Виртуализация *Серверная оптимизация * *

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

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

Цель:

1) Организовать ландшафт 1С не хаотично, а под определённые критерии.

2) Выдать ИТ-службе карту размещения ресурсов, которая:

a. 1Снику обеспечивает систематизацию управления внутри своей «песочницы»;

b. Позволяет ИТ-службе получить свободу в самостоятельном масштабировании и размещении ландшафта 1С.

3) Заменить картой ландшафта (одной картинкой) гору описаний.

Критериями создания зон избраны:

1) Целевое назначение ресурса.

2) Объём (нагрузка) и виды операций.

3) Количество и тип пользователей.

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

Сага о SEO, часть 3: UX

Время на прочтение 12 мин
Количество просмотров 1.3K
Блог компании Национальная Медиа Группа Разработка веб-сайтов *Серверная оптимизация *Поисковая оптимизация *

Ранее мы писали о том, каким образом мы оптимизировали сайт more.tv для поисковых систем технологически и семантически. В очередной статье из серии мы обсудим, как влияет пользовательский опыт (UX) и, в первую очередь, быстродействие веб-приложения на эффективность его поискового продвижения.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 6

Защищайся! Простые и не очень правила настройки безопасности для VPS/VDS на Linux

Время на прочтение 12 мин
Количество просмотров 12K
Блог компании AdminVPS Хостинг Информационная безопасность *Серверная оптимизация *Серверное администрирование *

Все, что смотрит в бесконечную даль Интернета, находится в той или иной степени под угрозой атаки вездесущими ботами, хакерами, школьниками и прочими темными сущностями глобальной сети. Это не в последнюю очередь касается мощностей арендных серверов (выделенных или VPS/VDS). Провайдер может обеспечивать базовый функционал защиты от атак на свою инфраструктуру, но то, что юзер творит со своей машиной, провайдера абсолютно не касается. Разве что за доп. плату он может добавить некоторые настройки к VPS, мониторить и фильтровать трафик, поступающий с определенной интенсивностью. Поэтому хочешь не хочешь, а приходится задуматься об обеспечении безопасности своего сервиса вот этими вот маленькими ручками, желательно с минимальными временными и материальными издержками.

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

Поехали!
Всего голосов 18: ↑11 и ↓7 +4
Комментарии 18

Оптимизация Dockerfile для уменьшения размера и быстрой сборки образов

Время на прочтение 6 мин
Количество просмотров 8.8K
Блог компании FirstVDS Системное администрирование *Серверная оптимизация *

У каждого образа Docker есть свой размер, который он занимает на жёстком диске. Порой бывает так, что контейнер с запущенным приложением на языке программирования Go, который содержит в себе всего лишь одну строчку с выводом фразы «Hello, world!» может занимать сотни Мб, в то время как существуют образы содержащие легковесные ОС весом всего лишь 5 Мб (alpine).

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

Читать далее
Всего голосов 31: ↑27 и ↓4 +23
Комментарии 27

Инструменты мониторинга производительности приложений: зачем они нужны и как используются

Время на прочтение 6 мин
Количество просмотров 2.7K
Блог компании RUVDS.com Серверная оптимизация *Отладка *
Перевод

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

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

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

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

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

За более чем десять лет работы разработчиком ПО я много времени тратил на поиск лучших инструментов для повышения моей продуктивности.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Комментарии 2

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

Работа