Как ошибки проектирования при разработке на Symfony могут привести к перерасходу ресурсов и замедлению работы системы
Сегодня хочу рассказать о том, какие ошибки можно допустить на начальном этапе создания e-commerce проекта в проектировании модели данных и в разработке веб-приложения. И, самое главное, как эти ошибки исправить: снизить потребление памяти в 1000 раз и кратно уменьшить нагрузку на дисковую систему. Кейс основан на реальных событиях, однако без упоминания компаний в связи с политикой конфиденциальности и профессиональной этикой.
Почему не стоит арендовать VPS / VDS за 200 рублей или как правильно выбирать виртуальный сервер
SATA SSD Enterprise в 2-контроллерных СХД Infortrend — замер производительности
В комментариях читателей возник резонный вопрос: «Насколько отличается производительность SATA-дисков при работе напрямую и через MUX-плату?» В этой статье приводятся результаты тестирования SAN Infortrend DS 2012RE2, на которой был собран RAID10 из 6 Enterprise SSD Intel с интерфейсом SATA. Для тестов использовали 3 способа подключения дисков:
- Прямое подключение (1-контроллерный вариант)
- Подключение через MUX 3G (2-контроллерный вариант)
- Подключение через MUX 6G (2-контроллерный вариант)
Во все порты: одна карта и три картридера
Казалось бы, выбор картридера очевидным образом влияет на скорость карт памяти: модели с интерфейсом USB 3.x всегда быстрее их предков с USB 2.0, но все ли картридеры USB 3.x одинаково шустрые? Есть ли для них смысл в USB 3.2 Gen 2 (10 Гбит/с), или же это заведомый overkill и маркетинговый шум?
Мне захотелось проверить это на примере работы microSDXC Transcend 340S на 256 ГБ (TS256GUSD340S) с тремя разными картридерами. Для чистоты эксперимента выбрал ридеры той же фирмы (благо, их часто закупают). Ниже привожу результаты тестов, но для начала опишу основные условия их проведения.
Материнка: Asus Maximus VIII Hero (старая, но всё ещё добрая);
Камень: Core i7-7700K на частоте 4500 МГц (45x100x4+HT);
Оперативка: 2 планки по 8 Гб Kingston HyperX DDR4-3466 в двухканальном режиме;
Два твердотельника по полтерабайта: WD Black SN750 (под систему) + TS512GSSD452K (хранилка);
Б/п: SSR-750TR (он же Seasonic Prime TX-750).
Картридеры: Transcend HUB5C, RDF9K2 и RDF5
Операционка: 64-разрядная Win 7 с последними обновками (ESU).
Отслеживание метрик SSD на Linux и какой софт для этого пригодится
Автопереезд с SSD на HDD для обработки 60 000 EPS. Как мы создали гибридную схему хранения данных для MaxPatrol SIEM
Всем привет! Я Максим Максимович, директор департамента инжиниринга Positive Technologies. В этой статье я затрону тему обработки и оптимизации хранения событий в высоконагруженных SIEM-инсталляциях, расскажу о сложностях, с которыми многие наверняка уже сталкивались при выполнении подобных задач, и на примере одного реального проекта покажу, как их можно преодолеть. Надеюсь, описанный в посте опыт будет полезен специалистам и энтузиастам, внедряющим и эксплуатирующим решения классов Log Management и SIEM.
Метрики производительности, которых требовал проект, сыграли нам на руку, так как изначально были отмечены в дорожной карте MaxPatrol SIEM. По завершении проекта мы получили не только приятный профит в виде (почти!) готового раньше намеченного срока релиза, но и возможность сразу же подтвердить новые характеристики решения в боевых условиях. Речь идет о версии 6.2, которая позволяет обрабатывать до 60 тыс. событий в секунду. Добиться такой скорости мы смогли за счет гибридной схемы хранения данных, которая помогла увеличить производительность хранилища событий и при этом сократить расходы на аппаратное обеспечение.
Отказоустойчивость СХД АЭРОДИСК в условиях высокой нагрузки
Привет, Хабр! Начинаем серию статей с глубоким разбором функциональности СХД АЭРОДИСК серии 5. В этой статье речь пойдет об основе СХД – отказоустойчивости и производительности. Как работает, как правильно настраивать и какой результат можно получить. Более того, все то же самое и даже больше мы покажем в реальном времени на нашем следующем вебинаре Около-ИТ, который состоится 21 февраля 2023 в 15:00. Зарегистрироваться на вебинар можно по ссылке.
Как мы создаём корпоративную почтовую систему нового поколения Mailion. Оптимизация стоимости хранения данных
Каждый из нас сталкивался с необходимостью настройки сложного ПО, интенсивно потребляющего ресурсы компьютера. Как правило, у такого софта довольно объёмная конфигурация, и из-за этого бывает трудно подобрать комбинацию параметров, при которой этот софт демонстрировал бы высокую производительность при минимальной утилизации железа.
Одна из наиболее ресурсоемких категорий софта сегодня — это системы хранения данных. К ним можно отнести как классические СУБД, так и хранилища различного назначения. В корпоративной почтовой системе Mailion мы используем объектное хранилище собственной разработки — Dispersed Object Store (DOS). Mailion поддерживает одновременную работу до миллиона пользователей, и подобный уровень нагрузки выдвигает существенные требования к производительности и экономической эффективности системы.
Под катом рассказываем, как мы искали оптимальную конфигурацию нашего объектного хранилища, и какие уроки извлекли из этого поиска.
Дисковая производительность в VMWare: Хозяйке на заметку
ОС: Windows 2003 Server
VMWare 6.5 (вероятно и другие версии) при больших объемах дисковых операций (серверные приложения) начинает жестко тормозить (падение скорости в десятки раз) после активного использования в течении нескольких часов. И это не фрагментация.
Решение:
В .vmx файле описания виртуальной машины дописываем:
MemTrimRate = «0»
sched.mem.pshare.enable = «FALSE»
mainMem.useNamedFile = «FALSE»
MemTrimRate можно настроить и через GUI, Options->Advanced->Disable memory page trimming
После этого все начинает работать в соответствии с ожиданиями (летать :-) ).
Правильный расчет для VDI (часть 1)
Часто бывает так, что инфраструктура у нашего потенциального заказчика уже устоялась, и серьезные изменения в оборудовании недопустимы. Поэтому в рамках многих новых проектов возникают задачи по оптимизации работы текущего оборудования.
Например, у одного из заказчиков, крупной отечественной софтверной компании, имеется довольно большой парк серверов и систем хранения. В том числе — несколько серверов HP ProLiant 6-го и 7-го поколения и система хранения HP EVA, которые были в резерве. Именно на их базе нужно было разработать решение.
Озвученными требованиями к решению VDI были:
- Floating Desktops Pool (с сохранением изменений после окончания сессии);
- Начальная конфигурация — 700 пользователей, с расширением до 1000.
Мне предстояло просчитать какое количество серверов и систем хранения в итоге перейдут из резерва в состав решения.
В качестве среды виртуализации выбрана VMware. Схема работы получилась примерно такая:
Правильный расчет для VDI (часть 2)
Немного математики
Опираясь на описанную в предыдущем посте теорию, проведем расчеты:
Одновременно от 6 до 9 пользователей VDI могут использовать одно физическое ядро CPU. Для упрощения возьмем среднюю цифру — 7 пользователей.
Согласно требованиям заказчика необходимо обеспечить работу 700 пользователей по VDI с расширением до 1000.
Как правильно мерять производительность диска
Предупреждение: много букв, долго читать.
Лирика
Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
- научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
- использование bonnie++
- использование iozone
- использование пачки cp с измерениема времени выполнения
- использование iometer с dynamo на 64-битных системах
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
AWS: CloudFormation теперь поддерживает параметр-группы RDS и ускоренные носители EBS и RDS
С сегодняшнего дня в описании шаблонов AWS CloudFormation появились параметры, позволяющие настраивать как последние новшества от Amazon, так и уже очень древние фичи, которые сообщество просило включить очень давно.
Параметр-группы RDS.
Все RDS серверы можно поднять со стандартными настройками. Но рут доступа к серверам нет, поэтому невозможно, например, включить возможность хранения процедур в RDS MySQL. Для этого и существуют параметр-группы, которые могут быть созданы и настроены через API или CLI.
IOPS — что это такое, и как его считать
По сути, IOPS это количество блоков, которое успевает считаться или записаться на носитель. Чем больше размер блока, тем меньше кусков, из которых состоит файл, и тем меньше будет IOPS, так как на чтение куска большего размера будет затрачиваться больше времени.
Значит, для определения IOPS надо знать скорость и размер блока при операции чтения / записи. Параметр IOPS равен скорости, деленной на размер блока при выполнении операции.
AWS: Больше IOPS для EBS
Сегодня стала известна ещё одна хорошая новость от Amazon Web Services: теперь каждый EBS-диск обеспечивает производительность в 2000 IOPS (это в два раза больше предыдущего лимита в 1000 IOPS).
Если производительности диска в 2000 IOPS Вам мало, то EBS-диски можно объединить в RAID-массив, получив тем самым необходимое количество операций ввода/вывода.
Измеряем производительность «облачных» дисков — спасаем MySQL
Проблема в том, что измерить «скорость» виртуального жесткого диска изнутри виртуальной машины – непросто, т.к. неясно, что мерить в первую очередь, чем и зачем. А сделать это нужно, чтобы убедить администраторов виртуальной конфигурации, что дело не в приложении и настройках MySQL. И нужно было, как говориться, просто «помыть руки» перед чтением мануала к хранилищу.
В статье я проиллюстрирую простую методику нахождения «точки опрокидывания» производительности виртуального жесткого диска, с использованием доступных в дистрибутивах инструментов – sysbench и iostat. Также мы измерим «точку опрокидывания» известных своей тормознутостью виртуальных дисков EBS от Амазона – как обычных EBS, так и Provisioned IOPS EBS (1000 и 2000 IOPS).
Меряем производительность накопителей или снова про IOPS
Цель:
Протестировать производительность имеющихся в наличии средств хранения информации и убедиться в верности выбранной методики, а также понять разницу в производительности между разными видами накопителей, а также enterprise-level и consumer-level жёсткими дисками.
Оборудование:
- SD-карта Sandisk Class 10 UHS 1 Extreme Pro 8 GB (до 95 Мбайт/с чтение, до 90 Мбайт/с запись)
- SD-карта Team Class 10 32 GB (до 20 Мбайт/с)
- SD-карта Transcend 2GB без класса скорости
- SSD-диск OCZ-AGILITY3 60 GB
- SATA-диск consumer-level Hitachi Deskstar HDS723020BLA642 2 ТБ 7200 об/мин, 64 Мбайт
- SATA-диск enterprise-level Western Digital RE3 WD2502ABYS-23B7A0 250 GB 7200 об/мин 16 Мбайт
- SATA-диск consumer-level Seagate Barracuda 7200.11 ST3320613AS 320 GB 7200 об/мин 16 Mбайт
- CD-ROM
- RAM-диск /dev/ram в Linux
Методика тестирования:
Методика полностью описана в посте. Есть правда несколько не совсем понятных моментов:
Мы подбираем такую глубину параллельности операций, чтобы latency оставалось в разумных пределах.
Задача подобрать такой iodepth, чтобы avg.latency была меньше 10мс.
Так как в тестировании используется не СХД и не диски SAS, а различные накопители SATA, то параллельность нам измерять нету смысла.
Очищать диск перед каждым тестированием (dd if=/dev/zero of=/dev/sdz bs=2M oflag=direct) очень времязатратно, поэтому будем это делать перед тестированием один раз на каждый накопитель.
Тестировать весь диск полностью очень времязатратно, поэтому будем использовать тестирование в течении 30 секунд.
Итак, сформулируем методику тестирования для нашего случая:
Получить значение IOPS, выдаваемое накопителем при произвольном чтении и записи блоками по 4 Кбайт и задержке avg.latency не более 10 мс за время теста в 30 секунд. Также для полноты картины измерим скорость линейной записи.
Гиперконвергентное решение AERODISK vAIR. Основа — файловая система ARDFS
Привет, читатели Хабра. Этой статьей мы открываем цикл, который будет рассказывать о разработанной нами гиперконвергентной системе AERODISK vAIR. Изначально мы хотели первой же статьей рассказать всё обо всём, но система довольно сложная, поэтому будем есть слона по частям.
Начнем рассказ с истории создания системы, углубимся в файловую систему ARDFS, которая является основой vAIR, а также немного порассуждаем о позиционировании этого решения на российском рынке.
В дальнейших статьях мы будем подробнее рассказывать о разных архитектурных компонентах (кластер, гипервизор, балансировщик нагрузки, система мониторинга и т.п.), процессе настройки, поднимем вопросы лицензирования, отдельно покажем краш-тесты и, конечно же, напишем о нагрузочном тестировании и сайзинге. Также отдельную статью мы посвятим community-версии vAIR.
Архитектура AERODISK vAIR или особенности национального кластеростроения
Привет, Хабровчане! Мы продолжаем знакомить вас с российской гиперконвергентной системой AERODISK vAIR. В этой статье речь пойдет об архитектуре данной системы. В прошлой статье мы разобрали нашу файловую систему ARDFS, а в данной статье пройдёмся по всем основным программным компонентам, из которых состоит vAIR, и по их задачам.