SlideShare a Scribd company logo
Что делать если JIRA работает
недостаточно быстро?
Немного из жизни Джировода в отставке
Яндекс
• С 2008 года в течении четырех лет моей основной работой было
развитие, оптимизация и расширение Atlassian JIRA в компании
Яндекс.
• За это время я досконально изучил кодовую базу JIRA с
версии 3.13 до 5.2
• На тот момент это была одна из самых больших инсталляций JIRA по
объему данных
2
ALM Works
• Консультировал компанию ALMWorks при создании их знаменитого
плагина Structure
• На сегодняшний день я в рамках сотрудничества с ALMWorks
разрабатываю мобильное приложение PocketDesk
3
Каковы же основные причины проблем?
• Thread Pool
• Plugin System
• Garbage Collector
• Cache
• Lock Contention
• Bugs
4
Thread Pool
• Нередко, запрос прежде чем начать обрабатываться, ожидает пока
закончит обрабатываться другой запрос
• Большой пул – плохо
• Маленький пул – плохо
5
Plugin System
За гибкость надо платить
6
Garbage collector
• Некоторые данные «живут» дольше чем нужно
• Некоторые данные «живут» меньше чем хотелось бы
• Полная сборка мусора иногда создает лавиноподобную нагрузку
• Полная сборка мусора останавливает работу JIRA целиком
7
Cache
• Что бы лишний раз не обращаться к хранилищу данных, мы поместим
редко изменяющиеся данные в память
• Зачем усложнять себе жизнь сложной схемой инвалидации, если
можно опустошить кэш целиком?
8
Lock Contention
• Иногда потоки обработки выстраиваются в очередь
• Иногда это оправдано
• Иногда это не оправдано
9
Что делать?
• Бесплатно
• Дешево и сердито
• Дорого
• Очень дорого
10
Бесплатно
• Обновляться до последней доступной версии
• Писать в Support
11
Как писать в Support
• Быть готовым к идиотским вопросам
• Быть готовым к тому, что это может занять очень много времени
• Максимально конкретизировать запрос
• Быть настойчивым
12
Дешево и сердито
• Закэшировать статику «намертво»
• Купить максимально производительное железо
• Отключить расширения в которых вы не уверены
13
Кэширование статики
proxy_cache_path /var/cache/nginx/jira levels=1:2 keys_zone=jira:32m max_size=1000m inactive=60m;
location ~* ^/s/(.*)/_/(.*)(gif|jpg|jpeg|js|css|png)$ {
expires max;
add_header Cache-Control public;
more_clear_headers 'Last-Modified' 'ETag';
proxy_next_upstream error timeout http_404 http_500;
proxy_pass http://jira-server;
proxy_cache jira-bugs;
proxy_cache_key "$request_uri";
proxy_cache_valid 200;
}
14
Дорого
• Выделить человека с хорошим знанием Java для исследования причин
низкой производительности
• Найти причину и разработать решение, устраняющее ее
• Поддерживать это решение
15
Очень дорого
Нанять эксперта и попросить сделать «хорошо»
16
Как это делаю я
• Сбор данных
• «Танк»
• Мишень
17
Сбор данных
• Access логи веб-сервера
• Логи работы GC
• Thread Dumps
• Профайлер
18
Формат Access лога
log_format jira '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" "$http_user_agent" "$host,$server_port" '
'"$http_x_forwarded_for" "$http_cookie" 0 "$request_time" "$gzip_ratio" '
'"$upstream_addr" $upstream_status $upstream_response_time';
access_log /var/log/jira/jira.access.log jira;
19
Логи работы GC
GCLOG_OPTION="-XX:+PrintGCTimeStamps 
-XX:+PrintGCDetails 
-verbose:gc 
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCApplicationConcurrentTime
-Xloggc:$CATALINA_HOME/logs/jiragc-$(date +%Y%m%d-%H%M%S).log"
JAVA_OPTS="$GCLOG_OPTION $JAVA_OPTS"
20
Thread Dumps
#!/bin/bash
if [ -f /var/run/jira/jira.pid ] ; then
LOG_FILE=/var/log/jira/threads_dump.log.gz
DATE=$(date +%Y%m%d-%H%M%S)
( if flock -ne 200; then
PID=$(cat /var/run/jira/jira.pid)
JSTACK=$(cat /proc/${PID}/cmdline | strings | head -1 | xargs -I {} dirname {})/jstack
echo "=== threads dump: pid=$PID timestamp=$DATE ===" | gzip >> $LOG_FILE
$JSTACK $PID 2>&1 | gzip >> $LOG_FILE
else
echo "[$DATE] thread dump process already running" >> /var/log/jira/threads_dump_run.log
fi
) 200>>$LOG_FILE
fi
21
Профайлер
YJP_VERSION=11.0.8
YJP_HOME=$CATALINA_HOME/bin/yjp-$YJP_VERSION
YJP_JAVA_OPTS="-agentlib:yjpagent=dir=/tmp/ -agentlib:yjpagent=disableexceptiontelemetry"
# Specify path to proper version of profiler agent library, depending on the OS
if [ `uname` = 'Linux' ] ; then
if [ "`uname -a | grep x86_64`" ] ; then
# Assume Linux AMD 64 has 64-bit Java
export LD_LIBRARY_PATH="$YJP_HOME/linux-x86-64:$LD_LIBRARY_PATH"
else
# 32-bit Java
export LD_LIBRARY_PATH="$YJP_HOME/linux-x86-32:$LD_LIBRARY_PATH"
fi
else
YJP_JAVA_OPTS=""
echo "Unsupported platform for YourKit profiler: `uname`"
fi
JAVA_OPTS="$YJP_JAVA_OPTS $JAVA_OPTS"
22
«Танк»
Как все это использовать?
1. Выбираем интересующий нас URL или группу
2. Развертываем мишень и танк. Генерируем патронную ленту для танка
3. Стреляем первый раз, что бы оценить пиковую производительность
4. Стреляем под сэмплирующим профайлером
5. Стреляем под трасирующим профайлером
6. Вносим измеения
7. Повторяем и сравниваем
24
Спасибо за
внимание
AMA

More Related Content

What's hot

Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Vadim Nesterov
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Ontico
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
Positive Hack Days
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Ontico
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Николай Лавлинский
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Ontico
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Ontico
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 

What's hot (20)

Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow Zabbix в сервисной компании  ОНЛАНТА -  Zabbix Meetup Moscow
Zabbix в сервисной компании  ОНЛАНТА - Zabbix Meetup Moscow
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
 
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боев...
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 

Viewers also liked

Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Защищенная веб-аналитика для банков, телекомов, медицинских центров
Защищенная веб-аналитика для банков, телекомов, медицинских центровЗащищенная веб-аналитика для банков, телекомов, медицинских центров
Защищенная веб-аналитика для банков, телекомов, медицинских центров
Andrew Fadeev
 
Защищенная веб-аналитика для ОГВ и ОМСУ
Защищенная веб-аналитика для ОГВ и ОМСУЗащищенная веб-аналитика для ОГВ и ОМСУ
Защищенная веб-аналитика для ОГВ и ОМСУ
Andrew Fadeev
 
Jira as a test management tool
Jira as a test management toolJira as a test management tool
Jira as a test management tool
Return on Intelligence
 
Microsoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензированияMicrosoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензирования
Andrew Fadeev
 
Jira conf
Jira  confJira  conf
Jira conf
vintatnic
 
Риск-ориентированный подход к выполнению требований 152-ФЗ
Риск-ориентированный подход к выполнению требований 152-ФЗРиск-ориентированный подход к выполнению требований 152-ФЗ
Риск-ориентированный подход к выполнению требований 152-ФЗ
Andrew Fadeev
 
Инструменты программиста
Инструменты программистаИнструменты программиста
Инструменты программиста
Andrew Fadeev
 
Средства разработки —IBM iSeries
Средства разработки —IBM iSeriesСредства разработки —IBM iSeries
Средства разработки —IBM iSeries
Andrew Fadeev
 
Веб-аналитика для всех: WebTrends
Веб-аналитика для всех: WebTrendsВеб-аналитика для всех: WebTrends
Веб-аналитика для всех: WebTrends
Andrew Fadeev
 
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TAD
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TADTeamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TAD
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TADTeamlead
 
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...Teamlead
 
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...Teamlead
 
Jira - обучение, внедрение и практика использования
Jira  - обучение, внедрение и практика использованияJira  - обучение, внедрение и практика использования
Jira - обучение, внедрение и практика использования
SQALab
 
Jira vs Tempo Timesheets. За что платить?
Jira vs Tempo Timesheets. За что платить?Jira vs Tempo Timesheets. За что платить?
Jira vs Tempo Timesheets. За что платить?
Anna Muratova
 
Современный подход к автоматизации сервисных запросов на основе Jira Service ...
Современный подход к автоматизации сервисных запросов на основе Jira Service ...Современный подход к автоматизации сервисных запросов на основе Jira Service ...
Современный подход к автоматизации сервисных запросов на основе Jira Service ...
Andrew Fadeev
 
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru GroupАндрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Mail.ru Group
 
Грязная автоматизация
Грязная автоматизацияГрязная автоматизация
Грязная автоматизация
SQALab
 
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
Andrew Fadeev
 

Viewers also liked (20)

Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Aug
AugAug
Aug
 
Защищенная веб-аналитика для банков, телекомов, медицинских центров
Защищенная веб-аналитика для банков, телекомов, медицинских центровЗащищенная веб-аналитика для банков, телекомов, медицинских центров
Защищенная веб-аналитика для банков, телекомов, медицинских центров
 
Защищенная веб-аналитика для ОГВ и ОМСУ
Защищенная веб-аналитика для ОГВ и ОМСУЗащищенная веб-аналитика для ОГВ и ОМСУ
Защищенная веб-аналитика для ОГВ и ОМСУ
 
Jira as a test management tool
Jira as a test management toolJira as a test management tool
Jira as a test management tool
 
Microsoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензированияMicrosoft ALM вопросы лицензирования
Microsoft ALM вопросы лицензирования
 
Jira conf
Jira  confJira  conf
Jira conf
 
Риск-ориентированный подход к выполнению требований 152-ФЗ
Риск-ориентированный подход к выполнению требований 152-ФЗРиск-ориентированный подход к выполнению требований 152-ФЗ
Риск-ориентированный подход к выполнению требований 152-ФЗ
 
Инструменты программиста
Инструменты программистаИнструменты программиста
Инструменты программиста
 
Средства разработки —IBM iSeries
Средства разработки —IBM iSeriesСредства разработки —IBM iSeries
Средства разработки —IBM iSeries
 
Веб-аналитика для всех: WebTrends
Веб-аналитика для всех: WebTrendsВеб-аналитика для всех: WebTrends
Веб-аналитика для всех: WebTrends
 
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TAD
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TADTeamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TAD
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead About TAD
 
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...
Teamlead Atlassian Day 4-2013 Ekaterinburg | Teamlead - Производительность ко...
 
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...
Teamlead Atlassian Day 4-2013 | СКБ Контур | От wacko wiki через mediawiki к ...
 
Jira - обучение, внедрение и практика использования
Jira  - обучение, внедрение и практика использованияJira  - обучение, внедрение и практика использования
Jira - обучение, внедрение и практика использования
 
Jira vs Tempo Timesheets. За что платить?
Jira vs Tempo Timesheets. За что платить?Jira vs Tempo Timesheets. За что платить?
Jira vs Tempo Timesheets. За что платить?
 
Современный подход к автоматизации сервисных запросов на основе Jira Service ...
Современный подход к автоматизации сервисных запросов на основе Jira Service ...Современный подход к автоматизации сервисных запросов на основе Jira Service ...
Современный подход к автоматизации сервисных запросов на основе Jira Service ...
 
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru GroupАндрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
Андрей Молчанов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group
 
Грязная автоматизация
Грязная автоматизацияГрязная автоматизация
Грязная автоматизация
 
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
JIRA bridge for HP Quality Center, MS Project, Alfresco, Remedy
 

Similar to Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Gonchik Tsymzhitov
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Ontico
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
Nikolay Sivko
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Ontico
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
Илья Середа
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Yandex
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
Vladd Ev
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
Pavlo Iuriichuk
 
Dapper + QueryObject
Dapper + QueryObjectDapper + QueryObject
Dapper + QueryObject
Alexander Byndyu
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Колёса Крыша Маркет
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Mad Devs
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)
Ontico
 
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва  Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
it-people
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
Nikolay Sivko
 
Внутреннее устройство GC
Внутреннее устройство GCВнутреннее устройство GC
Внутреннее устройство GC
tym32167
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Ontico
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Ontico
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
Gonchik Tsymzhitov
 

Similar to Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group (20)

Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
Как превратить Openstack Swift в хранилище для высоких нагрузок разных типов,...
 
Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)Monitoring-driven эксплуатация (rootconf2015)
Monitoring-driven эксплуатация (rootconf2015)
 
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
High load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rusHigh load2007 scaling-web-applications-rus
High load2007 scaling-web-applications-rus
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
Dapper + QueryObject
Dapper + QueryObjectDapper + QueryObject
Dapper + QueryObject
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
Самые частые проблемы и пути решения при росте нагрузки и масштабировании про...
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)
 
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва  Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
Реактивный кэш в Android, Андрей Мельников, Rambler&Co, Москва
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Внутреннее устройство GC
Внутреннее устройство GCВнутреннее устройство GC
Внутреннее устройство GC
 
Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)Выжимаем из сервера максимум (Андрей Паньгин)
Выжимаем из сервера максимум (Андрей Паньгин)
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 

More from Mail.ru Group

Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Mail.ru Group
 
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
Mail.ru Group
 
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинДругая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Mail.ru Group
 
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Mail.ru Group
 
Управление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон ВикторовУправление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон Викторов
Mail.ru Group
 
DAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга СвиридоваDAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга Свиридова
Mail.ru Group
 
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
Mail.ru Group
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
Mail.ru Group
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
Mail.ru Group
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий Остапенко
Mail.ru Group
 
AMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей ПешковAMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей Пешков
Mail.ru Group
 
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковКак мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Mail.ru Group
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Mail.ru Group
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Mail.ru Group
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Mail.ru Group
 
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Mail.ru Group
 
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Mail.ru Group
 
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Mail.ru Group
 
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Mail.ru Group
 
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Mail.ru Group
 

More from Mail.ru Group (20)

Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
Автоматизация без тест-инженеров по автоматизации, Мария Терехина и Владислав...
 
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
BDD для фронтенда. Автоматизация тестирования с Cucumber, Cypress и Jenkins, ...
 
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир ДубровинДругая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
Другая сторона баг-баунти-программ: как это выглядит изнутри, Владимир Дубровин
 
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail...
 
Управление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон ВикторовУправление инцидентами в Почте Mail.ru, Антон Викторов
Управление инцидентами в Почте Mail.ru, Антон Викторов
 
DAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга СвиридоваDAST в CI/CD, Ольга Свиридова
DAST в CI/CD, Ольга Свиридова
 
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...Почему вам стоит использовать свой велосипед и почему не стоит  Александр Бел...
Почему вам стоит использовать свой велосипед и почему не стоит Александр Бел...
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
 
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidiaRAPIDS: ускоряем Pandas и scikit-learn на GPU  Павел Клеменков, NVidia
RAPIDS: ускоряем Pandas и scikit-learn на GPU Павел Клеменков, NVidia
 
WebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий ОстапенкоWebAuthn в реальной жизни, Анатолий Остапенко
WebAuthn в реальной жизни, Анатолий Остапенко
 
AMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей ПешковAMP для электронной почты, Сергей Пешков
AMP для электронной почты, Сергей Пешков
 
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила СтрелковКак мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
Как мы захотели TWA и сделали его без мобильных разработчиков, Данила Стрелков
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
 
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru GroupКак не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
 
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)Этика искусственного интеллекта, Александр Кармаев (AI Journey)
Этика искусственного интеллекта, Александр Кармаев (AI Journey)
 
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
Нейро-машинный перевод в вопросно-ответных системах, Федор Федоренко (AI Jour...
 
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
Конвергенция технологий как тренд развития искусственного интеллекта, Владими...
 
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
Обзор трендов рекомендательных систем от Пульса, Андрей Мурашев (AI Journey)
 
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
Мир глазами нейросетей, Данила Байгушев, Александр Сноркин ()
 

Андрей Ларионов, Moscow Atlassian Meetup 21 апреля, Mail.Ru Group

  • 1. Что делать если JIRA работает недостаточно быстро? Немного из жизни Джировода в отставке
  • 2. Яндекс • С 2008 года в течении четырех лет моей основной работой было развитие, оптимизация и расширение Atlassian JIRA в компании Яндекс. • За это время я досконально изучил кодовую базу JIRA с версии 3.13 до 5.2 • На тот момент это была одна из самых больших инсталляций JIRA по объему данных 2
  • 3. ALM Works • Консультировал компанию ALMWorks при создании их знаменитого плагина Structure • На сегодняшний день я в рамках сотрудничества с ALMWorks разрабатываю мобильное приложение PocketDesk 3
  • 4. Каковы же основные причины проблем? • Thread Pool • Plugin System • Garbage Collector • Cache • Lock Contention • Bugs 4
  • 5. Thread Pool • Нередко, запрос прежде чем начать обрабатываться, ожидает пока закончит обрабатываться другой запрос • Большой пул – плохо • Маленький пул – плохо 5
  • 6. Plugin System За гибкость надо платить 6
  • 7. Garbage collector • Некоторые данные «живут» дольше чем нужно • Некоторые данные «живут» меньше чем хотелось бы • Полная сборка мусора иногда создает лавиноподобную нагрузку • Полная сборка мусора останавливает работу JIRA целиком 7
  • 8. Cache • Что бы лишний раз не обращаться к хранилищу данных, мы поместим редко изменяющиеся данные в память • Зачем усложнять себе жизнь сложной схемой инвалидации, если можно опустошить кэш целиком? 8
  • 9. Lock Contention • Иногда потоки обработки выстраиваются в очередь • Иногда это оправдано • Иногда это не оправдано 9
  • 10. Что делать? • Бесплатно • Дешево и сердито • Дорого • Очень дорого 10
  • 11. Бесплатно • Обновляться до последней доступной версии • Писать в Support 11
  • 12. Как писать в Support • Быть готовым к идиотским вопросам • Быть готовым к тому, что это может занять очень много времени • Максимально конкретизировать запрос • Быть настойчивым 12
  • 13. Дешево и сердито • Закэшировать статику «намертво» • Купить максимально производительное железо • Отключить расширения в которых вы не уверены 13
  • 14. Кэширование статики proxy_cache_path /var/cache/nginx/jira levels=1:2 keys_zone=jira:32m max_size=1000m inactive=60m; location ~* ^/s/(.*)/_/(.*)(gif|jpg|jpeg|js|css|png)$ { expires max; add_header Cache-Control public; more_clear_headers 'Last-Modified' 'ETag'; proxy_next_upstream error timeout http_404 http_500; proxy_pass http://jira-server; proxy_cache jira-bugs; proxy_cache_key "$request_uri"; proxy_cache_valid 200; } 14
  • 15. Дорого • Выделить человека с хорошим знанием Java для исследования причин низкой производительности • Найти причину и разработать решение, устраняющее ее • Поддерживать это решение 15
  • 16. Очень дорого Нанять эксперта и попросить сделать «хорошо» 16
  • 17. Как это делаю я • Сбор данных • «Танк» • Мишень 17
  • 18. Сбор данных • Access логи веб-сервера • Логи работы GC • Thread Dumps • Профайлер 18
  • 19. Формат Access лога log_format jira '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" "$http_user_agent" "$host,$server_port" ' '"$http_x_forwarded_for" "$http_cookie" 0 "$request_time" "$gzip_ratio" ' '"$upstream_addr" $upstream_status $upstream_response_time'; access_log /var/log/jira/jira.access.log jira; 19
  • 20. Логи работы GC GCLOG_OPTION="-XX:+PrintGCTimeStamps -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -Xloggc:$CATALINA_HOME/logs/jiragc-$(date +%Y%m%d-%H%M%S).log" JAVA_OPTS="$GCLOG_OPTION $JAVA_OPTS" 20
  • 21. Thread Dumps #!/bin/bash if [ -f /var/run/jira/jira.pid ] ; then LOG_FILE=/var/log/jira/threads_dump.log.gz DATE=$(date +%Y%m%d-%H%M%S) ( if flock -ne 200; then PID=$(cat /var/run/jira/jira.pid) JSTACK=$(cat /proc/${PID}/cmdline | strings | head -1 | xargs -I {} dirname {})/jstack echo "=== threads dump: pid=$PID timestamp=$DATE ===" | gzip >> $LOG_FILE $JSTACK $PID 2>&1 | gzip >> $LOG_FILE else echo "[$DATE] thread dump process already running" >> /var/log/jira/threads_dump_run.log fi ) 200>>$LOG_FILE fi 21
  • 22. Профайлер YJP_VERSION=11.0.8 YJP_HOME=$CATALINA_HOME/bin/yjp-$YJP_VERSION YJP_JAVA_OPTS="-agentlib:yjpagent=dir=/tmp/ -agentlib:yjpagent=disableexceptiontelemetry" # Specify path to proper version of profiler agent library, depending on the OS if [ `uname` = 'Linux' ] ; then if [ "`uname -a | grep x86_64`" ] ; then # Assume Linux AMD 64 has 64-bit Java export LD_LIBRARY_PATH="$YJP_HOME/linux-x86-64:$LD_LIBRARY_PATH" else # 32-bit Java export LD_LIBRARY_PATH="$YJP_HOME/linux-x86-32:$LD_LIBRARY_PATH" fi else YJP_JAVA_OPTS="" echo "Unsupported platform for YourKit profiler: `uname`" fi JAVA_OPTS="$YJP_JAVA_OPTS $JAVA_OPTS" 22
  • 24. Как все это использовать? 1. Выбираем интересующий нас URL или группу 2. Развертываем мишень и танк. Генерируем патронную ленту для танка 3. Стреляем первый раз, что бы оценить пиковую производительность 4. Стреляем под сэмплирующим профайлером 5. Стреляем под трасирующим профайлером 6. Вносим измеения 7. Повторяем и сравниваем 24
  • 26. AMA