Time.Throughput.Concurrency.Utilization

Argentum. Серебряная пуля агрегации

| Comments

Анализ результатов — это один из этапов в любой задаче и в любом проекте для всех инженеров по нагрузочному тестированию. И умение определять нужные метрики, по которым выносится диагноз софта/железа, просто необходимо. Важно, чтобы инженер мог смотреть на метрики, понимать, что происходит и что нужно сделать ради увеличения производительности. Хочу показать одну свою серебряную пулю, которая позволит вам летать на больших скоростях с огромным количеством различных метрик производительности.

Low-level IMAP Samplers for JMeter

| Comments

В JMeter из коробки очень скудная поддержка почтовых протоколов. Конечно есть семплеры для imap/pop3/smtp, но у них небольшая функциональность. Хочу поделиться одним из своих решений для протокола IMAP.

JMeter и медленное логирование

| Comments

Apache JMeter очень гибкий инструмент. С помощью него можно создавать нагрузки разных видов hit/scenario -based. Можно использовать разные протоколы и много чего еще. Но представляете ли вы какие есть ограничения в инструменте? Сейчас я покажу одно ограничение и покажу как его обойти. Slow Data Writer.

Inter-Thread Communication

| Comments

Если перед вами стоит задача протестировать простой http-сервиc без логики, то вы набираете набор urlов и обстреливаете их с помощью любимого инструмента (у меня это yandex-tank). Если в сервисе есть сценарная логика и её необходимо эмулировать, то начинаете использовать jmeter, но достаточно ли он гибок? В большинстве случаев хватает, но иногда встречаются интересные ситуации, разрешить которые становится трудно. Как вы подступитесь к задаче, если вам нужно межпоточное взаимодействие?

Тестирование базы данных на примере MySQL

| Comments

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

Пару недель назад я читал книжку MySQL. Оптимизация производительности и в первых главах описаны основные инструменты и идеи тестирования (кстати книжка правда интересная). Там вскольз упоминается Apache JMeter, но примеров с ним никаких.

Дисперсия нагрузки

| Comments

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

Но почему на график так сильно скачет? Как это учитывать при проведении нагрузочных тестов?

JMeter Performance Scripting

| Comments

Вы уже увидели несколько интересных приемов с помощью beanshell, но какая производительность этих трюков? Давайте же сравним производительность разных вариантов одних и тех же хинтов.

Весовое множество в JMeter

| Comments

Я очень часто работаю с распределениями. Например, мне дают список urlов, которые необходимо нагрузить. Но какие-то из них надо нагрузить чаще, а какие-то реже. Или это набор sql-запросов. Или мы загружаем файлы в ftp/smtp/webdav или что-то еще. И есть распределение по размеру файлов. Я на самом деле очень часто сталкивался с подобным, и раньше, как и большинство, просто писал скрипты, которые создавали распределение в исходном пуле данных. Но, в определенный момент я понял что могу это автоматизировать и забыть про задачи с построением распределений в пуле данных.

Кодируем на лету в Base64 и стреляем в MongoDB из JMeter с помощью BeanShell

| Comments

Я работаю в нагрузочном тестировании относительно недолго, и одним из моих основных инструментов является Apache Jmeter. Тем не менее, большинство моих коллег не использовали Beanshell в JMeter, и в этой статье я хочу показать пару способов как он может упростить и сократить время подготовку к самим тестам. А покажу это на примере конвертации текста в base64-кодировку и простых стрельб в MongoDB.

ZABBIX & IOSTAT. Мониторим диски

| Comments

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

У дисков есть очень большое количество различных системных метрик, и в первую очередь необходимо выбрать какие именно вам нужны. Большинство из этих метрик можно получить с помощью утилиты iostat. В debian-based системах утилита скрывается в пакете sysstat. Я написал zabbix-темплейт, который использует данные из iostat.