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

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

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

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

«Поздравляем с терабитом». Та самая статья про DDoS-2023 — без цензуры

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

Дисклеймер ↓

Этот материал должен был выйти в декабре 2023, прямо перед Новым годом, — и это классический пример про «лучшее враг хорошего». Сначала нам не нравилось, что мало подробностей. Потом — что их излишне много. Была версия с цитатами, но без скринов. Со скринами, но без цитат. Мы записали столько интервью с сетевиками, что сами в них запутались.

Но в итоге сегодня наша статья наконец-то выходит в свет. Из цензуры — только внимательная рука корректора. Передаем слово Максу Яковлеву.
Читать дальше →
Всего голосов 94: ↑92 и ↓2 +90
Комментарии 42

Новости

Без 5% VMware? Обзор свежего релиза платформы виртуализации zVirt 4.1

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

Хабр, привет! На связи Алексей Зотов из К2Тех, и сегодня я хочу поговорить об одном из российских решений для виртуализации. Сегмент этот в каком-то смысле уникален. Если в целом по рынку заказчик выбирает между 5–6 отечественными продуктами для решения задачи импортозамещения (например, это ярко видно на примере СРК или служб каталога). То в сегменте виртуализации мы насчитали уже более трех десятков конкурирующих платформ!

В предыдущих статьях про тестирование серверов Inferit и Аквариус, а также про создание суперкомпьютера я упоминал платформу zVirt. Мы с этим продуктом работаем уже довольно давно, неплохо его изучили и можем оценить его развитие. Тем более, вендор Orion soft позиционирует zVirt как конкурентную альтернативу VMware. Пора проверить это заявление. 

Я решил испытать этот продукт и протестировать новые фичи, которые появились в zVirt 4.1: Disaster Recovery (DR), V2V-миграция из VMware, управление сетями SDN. Результаты тестирования и впечатления от платформы – под катом.

Читать далее
Всего голосов 45: ↑44 и ↓1 +43
Комментарии 22

Как Сбербанк Онлайн готовится к пиковым нагрузкам

Уровень сложности Простой
Время на прочтение 12 мин
Количество просмотров 9.1K

Какие проблемы появляются при переходе из монолитной архитектуры к микросервисной? Как с ними справляться в пиковые нагрузки? Ответим на эти вопросы на примере Сбербанк Онлайн.

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

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

Что такое LUN-СХД, или как мы виртуализировали хранилище

Время на прочтение 5 мин
Количество просмотров 8.3K

Источник: Huawei.

Вся жизнь — это выбор. Между Apple и Android, MySQL и PostgreSQL, здоровым питанием и тортом после 18:00. Но как быть, если его хочется, а отрабатывать калории в зале — не очень? Обычно весь торт есть не заставляют, поэтому его можно нарезать небольшими частями и использовать по необходимости.

С данными в СХД такая же ситуация: можно использовать все пространство, а можно ограничиться LUN и оптимизировать бюджет. О том, что такое LUN, когда и где лучше использовать технологию — читайте в материале.
Читать дальше →
Всего голосов 38: ↑34 и ↓4 +30
Комментарии 7

Истории

Как мы проводим миграцию оборудования, пока наши клиенты спят

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

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

Миграция серверов необходима для утилизации мощностей, оптимизации охлаждения и упорядочивания конфигураций, поскольку мы стремимся размещать новые стойки рядом с парком, который уже арендован клиентом. Наша главная цель при переезде — повысить качество сервиса, минимизировать риски и даунтаймы. Положения о качестве предоставляемых услуг фиксируются в SLA, поэтому мы также делаем процессы прозрачнее для всех. За историей о том, как это работает, — приглашаю под кат.
Читать дальше →
Всего голосов 45: ↑44 и ↓1 +43
Комментарии 7

S3-FIFO: новый эффективный алгоритм вытеснения из кэша на основе очередей FIFO

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 7.5K
В этой статье я расскажу о простом и масштабируемом (Simple, Scalable) алгоритме вытеснения данных из кэша на основе трёх статических (Static) очередей FIFO (S3-FIFO). После проверки на 6594 трассировках кэшей 14 компаний мы показали, что S3-FIFO имеет меньшую частоту промахов, чем 12 лучших алгоритмов, разработанных в прошлые десятилетия. Более того, эффективность S3-FIFO устойчива — он имеет наименьший средний показатель промахов для 10 из 14 датасетов. Использование очередей FIFO позволяет S3-FIFO достичь хорошей масштабируемости с пропускной способностью в шесть раз больше по сравнению с оптимизированным LRU в cachelib на 16 потоках.

Мы пришли к выводу, что доступ к большинству объектов в смещённых нагрузках кэша выполняется только за короткий промежуток времени, поэтому критически важно быстро вытеснять их из кэша. А главная особенность S3-FIFO — это небольшая очередь FIFO, отфильтровывающая большинство объектов, не давая им попасть в основной кэш.

Иллюстрация работы S3-FIFO (с использованием порогового значения перехода из маленького в основной кэш, равного 1)
Читать дальше →
Всего голосов 69: ↑69 и ↓0 +69
Комментарии 5

Как WhatsApp справлялся с 50 миллиардами сообщений в день, имея всего 32 инженера

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

Январь 2008 года — Калифорния, США.

Инженер Ян Кум нанимается на работу в Facebook* — получает отказ.

Это был не конец — он продолжил двигаться дальше.

В следующем году он покупает iPhone и сразу же понимает огромный потенциал нового App Store.

С несколькими бывшими коллегами из Yahoo он решает создать программу мгновенного обмена сообщениями. Программе дают имя WhatsApp. Предназначение WhatsApp — стать заменой дорогостоящим SMS.

Рост популярности WhatsApp поражает воображение — каждый день в него заходит один миллион людей.

WhatsApp мог справляться с 50 миллиардами сообщений в день от 450 миллионов активных пользователей, имея в штате всего 32 инженера.

Хотя взрывной рост продукта — это приятная проблема, для её решения Яну Куму и команде разработчиков WhatsApp пришлось применить самые передовые технологии проектирования.
Читать дальше →
Всего голосов 81: ↑69 и ↓12 +57
Комментарии 76

Монтируем шары для юзеров

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

Всем привет. Монтируете ли вы шары, как их монтирую я? Вероятно, нет, т. к. очень крутой опции multiuser на просторах интернета уделено слишком мало внимания, а man mount.cifs в её отношении весьма немногословен и скуп на наглядные примеры. Именно это и сподвигло меня поделиться с вами парой «рецептов», которые могут облегчить вам и вашим пользователям движение в сторону отечественных десктопов и ИТ-инфраструктур.
Читать дальше →
Всего голосов 52: ↑52 и ↓0 +52
Комментарии 8

Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь

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

1. Введенние.
2. Zval.
3. Циклические ссылки.
4. Сборщик мусора.
5. Алгоритм работы сборщика мусора.
6. Смотрим глазами.
7. Слабые ссылки.
8. Бонус-трэк: WeakMap.
9. Заключение.

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

PHP. Как увеличить потребление памяти в 3 и более раз при работе с массивами

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

1. Общие сведения.
2. Увеличиваем потребление памяти вдвое.
3. Увеличиваем потребление памяти втрое.
4. Ещё раз увеличиваем потребление памяти на ровном месте.
5. Заключение.

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

Неудачное внедрение Redis Cluster в монолит на PHP 7.2.X

Уровень сложности Средний
Время на прочтение 16 мин
Количество просмотров 7.5K

Исповедь о том как принес в проект проблему, которую так и не устранил в течение долгого времени.

Осторожно! Статья может вызвать обострение профессиональных заболеваний вплоть до боли ниже поясницы.

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

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

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

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

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

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

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

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

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

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

Уровень сложности Средний
Время на прочтение 22 мин
Количество просмотров 2.7K

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение 13 мин
Количество просмотров 14K

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

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

Время на прочтение 6 мин
Количество просмотров 3.3K

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

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

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

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

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

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

Профайлер Бедного Человека: первое знакомство и (приятные) последствия

Время на прочтение 9 мин
Количество просмотров 12K


Если вам приходилось оптимизировать работу программ, то вы могли слышать о Профайлере Бедного Человека. Этой идее даже посвящён целый сайт. ПБЧ собирает статистику времени выполнения отдельных функций программы, «подглядывая» в процесс её исполнения с помощью дебаггера. Концепт ПБЧ хорошо прижился у нас в движке баннерной крутилки — не буду в 100 500-й раз напоминать, что у Яндекса всё высоконагруженное, ресурсоёмкое и нуждающееся в профилировании. Статья будет полезна тем, кто пилит инфраструктуру, адаптирует какой-нибудь общеизвестный профайлер под себя или просто хочет больше знать про свои программы. Как мы пришли к необходимости в ПБЧ и что именно сделали? Сейчас постараюсь рассказать, местами буду закапывать глубоко в технологии (если переусердствую, пишите в комментариях). А начну со стандартного инструмента статистического профилирования в Linux — perf.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 20

Почему Twitter ещё не сломался: поясняет экс-SRE из компании

Время на прочтение 6 мин
Количество просмотров 30K

По некоторым оценкам, Twitter потерял примерно 80% сотрудников. Каким бы ни было реальное число, в компании есть команды, в которых полностью пропали разработчики. Тем не менее, веб-сайт продолжает работать, а твиты продолжают публиковаться. Из-за этого многие задаются вопросом, что происходит со всеми этими разработчиками, и не был ли штат компании попросту раздут. Я бы хотел рассказать о собственном маленьком уголке в Twitter (впрочем, он был не таким уж и маленьким), а также о работе, которая выполнялась для того, чтобы система продолжала функционировать.
Читать дальше →
Всего голосов 70: ↑66 и ↓4 +62
Комментарии 66

Как я сделал самый быстрый в мире файловый сервер

Время на прочтение 16 мин
Количество просмотров 21K

Задача — среди множества файлов найти на диске конкретный и отдать его по HTTP с заголовками «content-encoding», «mime-type» и «content-lenght». И сделать это как можно быстрее — на локальном хосте, чтобы не уткнуться в физические барьеры. Нас интересует скорость ради скорости.

В качестве веб-сервера будем использоваться Kestrel, .NET 7 RC 1, minimal API и F#. Финальная, оптимизированная версия есть и для C#.
Читать дальше →
Всего голосов 74: ↑65 и ↓9 +56
Комментарии 18

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

Работа