SlideShare a Scribd company logo
1 of 42
Настройка и
оптимизация
высоконагруженных
J2EE веб-
приложений
Шамим Ахмед
Ведущий архитектор
AT Consulting
O нас : AT Consulting
Компания AT Consulting –
один из лидирующих поставщиков
ИТ-услуг, оперирующий на тер-
ритории Российской Федерации
и стран СНГ, начиная с 2001 года
КЛЮЧЕВЫЕ ВЕРТИКАЛИ
Телекоммуникационный сектор |
Финансовый сектор |
Государственный сектор |
Топливно-энергетический сектор
СПЕЦИАЛИЗАЦИЯ
Внедрение и сопровождение
сложных информационных систем
класса ERP | CRM | DWH |
ECM | АБС | Billing | SOA и т.д.|
Cтратегический и операционный
бизнес-консалтинг | Управление
проектами и ИТ-аутсорсинг
ПАРТНЕРСТВО
С МИРОВЫМИ ЛИДЕРАМИ IT-
РЫНКА
SAP | Oracle | SAS | IBM | Microsoft |
EMC | Informatica | MicroStrategy |
Prognoz | Hewlett Packard | Avaya |
Motorola Solutions | Hitachi | Infotecs |
Kraftway | 1C и т.д.
2 000+ КОНСУЛЬТАНТОВ,
обладающих опытом реализации
крупнейших по масштабам ИТ-
проектов
ЛИДИРУЮЩАЯ ПОЗИЦИЯ
среди крупнейших ИТ-
интеграторов в России за 2009,
2010, 2011, 2012, 2013 и 2014 г.
Курс валюты 2014 года
Рост трафика Сбербанка
7,9 млн
График роста RPS
886
790
Время отклика в секундах
45% error 4/5xx
60% error http 502 27
11
Системные требования
Требования Было Максимальное
в Декабрe 2014
Стало
Максимальное RPS 400 886 1100
Посетители онлайн 11000 25338 26000
Среднее время
загрузки страниц
< 5 сек. < 3 сек.
Доступность систем 24*7
(99,9%)
24*7
(99,9%)
Поддержка browser IE8, opera7 IE8, opera7
Отказоустойчивость да да
Отсутствие CDN
Отсутствует возможность масштабировать
ландшафт
В доклада будет
рассказано
Оптимизация веб сервера
Оптимизация на стороне клиента
Оптимизация на стороне middleware
Оптимизация Базы Данных
Подходы и методология для оптимизации
веб приложения
Причины низкой производительности1
2
3
4
5
6
Особенности портала
Сбербанка
Таргетирование
Персонализация страницы для конечных
пользователей
Быстрое внесение изменений в структуру
портала без установки релизов
Единый портал с поддержкой всех устройств
Под капотом портала
Portal engine BackBase CXP
APP framework Spring
Search Solr
ORM MyBatis, Hibernate
JVM IBM JVM 9
Frontend framework Jquery, React, Bootstrap 3
Cache Ehсache
RDBMS Oracle 11gR2
Automation Jenkins, Ansible, Flyway
111
33
1
Front end app server
RHEL 6.5, IBM WS 8.5
2 Nginx
RHEL 6.5
3
Back end app server
RHEL 6.5, IBM WS 8.5
2 111
33
2
RAID 5
60 GB
PROD DR
Oracle DB Oracle DB
Heartbeat VLAN
Balance
VLAN
Balance
VLAN
Servers
VLAN
Servers
VLAN
Oracle Data Guard
HW Load Balancer
RAID 5
60 GB
Web&AppTierDBTier
Диаграммы
развертывания
Причины низкой
производительности
Организационные - священная война между контент-
менеджерами, маркетингом и эксплуатацией
Технологические - узкие места производительности
веб сервера, сервер приложения и базы данных
Прикладные – некачественный программный код
HolyWar
Контент-менеджер: Больше
usability для введения контента
Маркетинг: Больше
интерактивного контента
Эксплуатация: Больше
производительности
портала
Pick two
Основные факторы,
влияющие на
производительность
Объём контента в странице
Географическое расположения, тип сети (Lan,
wifi) пользователя
Время рендеринга страницы в браузер
Технологические или системные узкие места1
2
3
4
Количество вызовов для каждой страницы5
Методология для
оптимизации веб
приложения
Измерение производительности
Кэширование всего, что возможно
Определение узких мест в ИС
Определение основных факторов, влияющих
на производительность
1
2
3
4
Определение узких мест в
ИС
Симптомы узких мест
Путем мониторинга системы1
2
Узкие места в ИС могут быть в3
1 Повышенное время отклика от сервера
2 Ошибки http (4хх, 5хх)
3 Высокая загрузка ЦП
4 Много открытых соединений
5 Утечки памяти
1 Веб серверах
3 Сервере базы данных
2 Сервере приложения
3 Ширине канала связи
Основные проблемы на
сайте Сбербанка
Много неоптимизированных изображений в
страницах
Не сгруппированные по страницам толстые
JS и CSS файлы
Большая нагрузка на сервере приложений и
контент сервере, а также thread lock
Некоторые widget`ы загружали больше 3х
картинок сразу для адаптивности сайта
Большие hit rate в основных страницах
сайта, hit > 175
1
2
3
4
5
Основные проблемы на
сайте Сбербанка
Встроенная геолокализация на основе
данных из RDBMS
Много застрявших (stuck) соединений в БД
Targetting анонимных пользователей через
Google аналитику
Низкая пропускная способность HW load
balancer
Обработка бизнес логики на клиентской
стороне
Высокая нагрузка на CPU (cpu burning) в веб
серверах
6
7
8
9
10
11
Оптимизация веб сервера
В первый день войны
Уменьшали уровень сжатия файлов до 6,
gzip_comp_level 6
Оставляли уровень логирования на error
Увеличили количество кэшированных
метаданных файлов (open_file_cache max=60000)
Загрузили все статические ресурсы в RAM
DISK, у нас не было memcache
Доставка заранее сжатых gzip файлов
Все изображения для landing page (35) положили
в web server Nginx
1
2
3
4
5
6
Результат после первой
оптимизации
17% error 4/5xx
45% error 4/5xx
27
11
Оптимизация веб сервера
SSI для предоставления статических ресурсов
Оптимизация веб сервера
Балансировка DNS
Оптимизация веб сервера
Использование поддомен (sub domain) для статических
ресурсов
Оптимизация веб сервера
Использование поддомен (sub domain) для статических
ресурсов
Результат
17% error 4/5xx
45% error 4/5xx
27
11
0% error
Оптимизация веб сервера
(Геолокация)
Перенос механизма геолокации с портала на Nginx
Nginx модуль ngx_http_geo_module1
ipgeobase базы со сайта ipgeobase.ru2
Почему не кэшировать
всю страницу? Почему?
Сайт динмаический отобразил курс валюты,
котировки для всех территориальных банков
Пользовательская персонализация widget`ов не
позволяет кэшировать 1/3 страницы
Оптимизация веб сервера
Поддержка WebP формата
Создаем версию каждого изображения для
формата webp
Определяем версия браузера посетителя и
раздаем изображения
2
1
Оптимизация на стороне
клиента
Client Side должен заниматься только
отображением данных
Гибридный подход для рендеринга страницы1
2
Удалили лишних сортировок или фильтраций
данных на клиенте
3
1
2
Группировали css, js файлы в одном по
группам страницы, чтобы размер файлов
не сильно увеличилось
4
Часть widget рендерить в браузере и часть в backend (JSP)
Гибридный подход уменьшает нагрузки на browser
Оптимизация на стороне
клиента
Не вызывать rest сервис с параметром
current date time, результат такого запроса не
кэшируется
5
Избавиться от микроатомарных вызов
сервисов, использовать монолит-сервис для
получения всех данных для одного widget
6
Оптимизация на стороне
Middleware
Особое внимание при проектировании REST сервиса
REST сервисы будут доступны из internet
Единый дата сервис для получения данных из
всех справочников через параметр REST
сервиса - не лучший вариант
Каждый REST сервис должен проверять
входные параметры на null, если все параметры
со значениями null, мы не возвращаем данные
Оптимизация на стороне
Middleware
http://beta.sberbank.ru/portalserver/content/atom/cont
entRepository/query?q=SELECT+*+FROM+cmis%3Afold
e r&searchAllVersions=false&includeAllowableActions=false
&includeRelationships=none&maxItems=1000&skipCount
=0 -- НЕ ДОПУСТИМА
Предоставлять обертку монолит сервисов
Ограничивать данные через pagination
Сервис должен сортировать и фильтровать данные
для client side, а не наоборот
Оптимизация на стороне
Middleware
Кэшировать результат вызова идемпотентных
сервисов
Пользуйтесь CPU L1-L3 cache эффективно
Пользуйтесь offheap ОЗУ, когда массивы данных
большие
Пользуйтесь высокопроизводительным Stax или
VTDXML на месте DOM или SAX
Применяйте единый framework для логирования или
SL4j фасад
Оптимизация на стороне
Middleware
Увеличивайте время сканирования изменения на
log4j2 или logback.xml
Пользуйтесь профилированием для выявления и
устранения блокировки
Конфигурируйте сервер приложения
Оптимизация Базы
данных
Выделить справочники для кэширования, например
сущность «Регион», «КЛДР» или «Шаблон страницы»
Настройка Cache (Oracle Result Cache)
alter table TABLE_NAME RESULT_CACHE(MODE
FORCE)
alter table TABLE_NAME cache
Alter table emp storage (buffer_pool Keep)
Оптимизация Базы
данных
Oracle Database change notification
Получить уведомление об DML и DDL операции в
объектах базы данных
Доступно с релиза 11g
Хорошо подходит для очистки или обновления
кэша в middleware
Уровень кэширования на
портале Сбербанка
Кэширование
статических
ресурсов в Nginx
Кэширование
шаблонов
страницы для
портала
Кэширование
результатов
вызова backend
сервиса
Кэширование
статических
ресурсов на
контент сервере
Кэширование
hibernate l2
Кэширование
таблицы и
результатов SQL
запроса в БД
Итоги
27.01.15 03.02.15 05.02.15 13.02.15
Максимальное количество RPS
791 831 1032 1773
Требования 886
Полное отображение страницы (в секундах)
3.3 3 2.2 2.7
Требования 3
Инструменты
Cloud
> LoadStorm
> Flood.io
Test segment
> HP Load
runner
> Jmeter
Miscellaneous
> Google speed
test
> pingdom
Заключения
 Необходимо мониторить ИС и анализировать
симптомы низкой производительности.
 Необходимо анализировать нагрузки систем.
 Определить и оптимизировать наиболее
подверженные нагрузке участки.
 Так же очень важно - это понимание
архитектуры своей системы
Обратная связь
frommyworkshop.blogspot.ru
bsha@at-consulting.ru
Вопросы?

More Related Content

What's hot

Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Ontico
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахOntico
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Ontico
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Ontico
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Ontico
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Vadim Madison
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Ontico
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Ontico
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Николай Лавлинский
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Ontico
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхSveta Smirnova
 

What's hot (20)

Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
Поддержка высоконагруженного проекта: мониторинг, резервирование, обслуживани...
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в ОдноклассникахБалансировка нагрузки и отказоустойчивость в Одноклассниках
Балансировка нагрузки и отказоустойчивость в Одноклассниках
 
Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)Архитектура HAWQ / Алексей Грищенко (Pivotal)
Архитектура HAWQ / Алексей Грищенко (Pivotal)
 
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
Виртуальный ЦОД для корпоративных клиентов на базе Virtuozzo: стабильность, п...
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...Опыт построения СХД на базе Windows Server для использования в публичном обла...
Опыт построения СХД на базе Windows Server для использования в публичном обла...
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
 
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...Погружение в виртуальную память и большие страницы / Константин Новаковский (...
Погружение в виртуальную память и большие страницы / Константин Новаковский (...
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потеряхМониторинг и отладка MySQL: максимум информации при минимальных потерях
Мониторинг и отладка MySQL: максимум информации при минимальных потерях
 

Viewers also liked

Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Ontico
 
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Ontico
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)Ontico
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Ontico
 
PostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахPostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахAlexey Vasiliev
 
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...Ontico
 
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)Ontico
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)Ontico
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)Ontico
 
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)Ontico
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокAndrey Smirnov
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Dmitry Samsonov
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)Andrey Smirnov
 
Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)Andrey Smirnov
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...odnoklassniki.ru
 
Why Neurons have thousands of synapses? A model of sequence memory in the brain
Why Neurons have thousands of synapses? A model of sequence memory in the brainWhy Neurons have thousands of synapses? A model of sequence memory in the brain
Why Neurons have thousands of synapses? A model of sequence memory in the brainNumenta
 

Viewers also liked (20)

Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
Скорость с доставкой до пользователя / Анатолий Орлов (Self Employed), Денис ...
 
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
Tarantool: как сэкономить миллион долларов на базе данных на высоконагруженно...
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
 
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность ...
 
PostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектахPostgreSQL в высоконагруженных проектах
PostgreSQL в высоконагруженных проектах
 
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...
Управление производительностью на базе HP Performance Center. Опыт Альфа-банк...
 
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
Учебный план для highload гуру / Андрей Аксёнов (Sphinx Technologies Inc.)
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
NodeJS в HighLoad проекте / Акрицкий Владимир (iAge Engineering)
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)
How to run Real Time processing on Big Data / Ron Zavner (GigaSpaces)
 
Курс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывокКурс высокие нагрузки и надежность: отрывок
Курс высокие нагрузки и надежность: отрывок
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Курс высокие нагрузки: очереди (отрывок)
Курс высокие нагрузки:  очереди (отрывок)Курс высокие нагрузки:  очереди (отрывок)
Курс высокие нагрузки: очереди (отрывок)
 
Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)Курс высокие нагрузки: сеть (отрывок)
Курс высокие нагрузки: сеть (отрывок)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Why Neurons have thousands of synapses? A model of sequence memory in the brain
Why Neurons have thousands of synapses? A model of sequence memory in the brainWhy Neurons have thousands of synapses? A model of sequence memory in the brain
Why Neurons have thousands of synapses? A model of sequence memory in the brain
 

Similar to Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (AT Consulting)

Tuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationTuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationShamim bhuiyan
 
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Проектирование сетевой инфраструктуры под SOA проекты ASP.NET
Проектирование сетевой инфраструктуры под SOA проекты ASP.NETПроектирование сетевой инфраструктуры под SOA проекты ASP.NET
Проектирование сетевой инфраструктуры под SOA проекты ASP.NETGoSharp
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Governance of content
Governance of contentGovernance of content
Governance of contentrglab
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрийsolit
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
XS6, XA6.5, XD 5.5 main features overview.
XS6, XA6.5, XD 5.5 main features overview.XS6, XA6.5, XD 5.5 main features overview.
XS6, XA6.5, XD 5.5 main features overview.Yevgeniy Zossimov
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshovelenae00
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Ilya Kaznacheev
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Ontico
 
Портфолио облачных сервисов от IBM
Портфолио облачных сервисов от IBMПортфолио облачных сервисов от IBM
Портфолио облачных сервисов от IBMZaur Abutalimov
 
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...Cisco Russia
 
Заоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департаментаЗаоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департаментаКРОК
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияAlexander Byndyu
 

Similar to Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (AT Consulting) (20)

Highload++ 2015
Highload++ 2015Highload++ 2015
Highload++ 2015
 
Tuning HighLoad J2EE web application
Tuning HighLoad J2EE web applicationTuning HighLoad J2EE web application
Tuning HighLoad J2EE web application
 
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Проектирование сетевой инфраструктуры под SOA проекты ASP.NET
Проектирование сетевой инфраструктуры под SOA проекты ASP.NETПроектирование сетевой инфраструктуры под SOA проекты ASP.NET
Проектирование сетевой инфраструктуры под SOA проекты ASP.NET
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Governance of content
Governance of contentGovernance of content
Governance of content
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
XS6, XA6.5, XD 5.5 main features overview.
XS6, XA6.5, XD 5.5 main features overview.XS6, XA6.5, XD 5.5 main features overview.
XS6, XA6.5, XD 5.5 main features overview.
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
Проектируем облачный веб-сервис "по-взрослому" (Сергей Рыжиков)
 
Портфолио облачных сервисов от IBM
Портфолио облачных сервисов от IBMПортфолио облачных сервисов от IBM
Портфолио облачных сервисов от IBM
 
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...
Применение WAN Automation Engine для предоставления новых услуг и онлайн-опт...
 
Заоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департаментаЗаоблачная репутация ИТ-департамента
Заоблачная репутация ИТ-департамента
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (AT Consulting)

  • 2. O нас : AT Consulting Компания AT Consulting – один из лидирующих поставщиков ИТ-услуг, оперирующий на тер- ритории Российской Федерации и стран СНГ, начиная с 2001 года КЛЮЧЕВЫЕ ВЕРТИКАЛИ Телекоммуникационный сектор | Финансовый сектор | Государственный сектор | Топливно-энергетический сектор СПЕЦИАЛИЗАЦИЯ Внедрение и сопровождение сложных информационных систем класса ERP | CRM | DWH | ECM | АБС | Billing | SOA и т.д.| Cтратегический и операционный бизнес-консалтинг | Управление проектами и ИТ-аутсорсинг ПАРТНЕРСТВО С МИРОВЫМИ ЛИДЕРАМИ IT- РЫНКА SAP | Oracle | SAS | IBM | Microsoft | EMC | Informatica | MicroStrategy | Prognoz | Hewlett Packard | Avaya | Motorola Solutions | Hitachi | Infotecs | Kraftway | 1C и т.д. 2 000+ КОНСУЛЬТАНТОВ, обладающих опытом реализации крупнейших по масштабам ИТ- проектов ЛИДИРУЮЩАЯ ПОЗИЦИЯ среди крупнейших ИТ- интеграторов в России за 2009, 2010, 2011, 2012, 2013 и 2014 г.
  • 6. Время отклика в секундах 45% error 4/5xx 60% error http 502 27 11
  • 7. Системные требования Требования Было Максимальное в Декабрe 2014 Стало Максимальное RPS 400 886 1100 Посетители онлайн 11000 25338 26000 Среднее время загрузки страниц < 5 сек. < 3 сек. Доступность систем 24*7 (99,9%) 24*7 (99,9%) Поддержка browser IE8, opera7 IE8, opera7 Отказоустойчивость да да Отсутствие CDN Отсутствует возможность масштабировать ландшафт
  • 8. В доклада будет рассказано Оптимизация веб сервера Оптимизация на стороне клиента Оптимизация на стороне middleware Оптимизация Базы Данных Подходы и методология для оптимизации веб приложения Причины низкой производительности1 2 3 4 5 6
  • 9. Особенности портала Сбербанка Таргетирование Персонализация страницы для конечных пользователей Быстрое внесение изменений в структуру портала без установки релизов Единый портал с поддержкой всех устройств
  • 10. Под капотом портала Portal engine BackBase CXP APP framework Spring Search Solr ORM MyBatis, Hibernate JVM IBM JVM 9 Frontend framework Jquery, React, Bootstrap 3 Cache Ehсache RDBMS Oracle 11gR2 Automation Jenkins, Ansible, Flyway
  • 11. 111 33 1 Front end app server RHEL 6.5, IBM WS 8.5 2 Nginx RHEL 6.5 3 Back end app server RHEL 6.5, IBM WS 8.5 2 111 33 2 RAID 5 60 GB PROD DR Oracle DB Oracle DB Heartbeat VLAN Balance VLAN Balance VLAN Servers VLAN Servers VLAN Oracle Data Guard HW Load Balancer RAID 5 60 GB Web&AppTierDBTier Диаграммы развертывания
  • 12. Причины низкой производительности Организационные - священная война между контент- менеджерами, маркетингом и эксплуатацией Технологические - узкие места производительности веб сервера, сервер приложения и базы данных Прикладные – некачественный программный код
  • 13. HolyWar Контент-менеджер: Больше usability для введения контента Маркетинг: Больше интерактивного контента Эксплуатация: Больше производительности портала Pick two
  • 14. Основные факторы, влияющие на производительность Объём контента в странице Географическое расположения, тип сети (Lan, wifi) пользователя Время рендеринга страницы в браузер Технологические или системные узкие места1 2 3 4 Количество вызовов для каждой страницы5
  • 15. Методология для оптимизации веб приложения Измерение производительности Кэширование всего, что возможно Определение узких мест в ИС Определение основных факторов, влияющих на производительность 1 2 3 4
  • 16. Определение узких мест в ИС Симптомы узких мест Путем мониторинга системы1 2 Узкие места в ИС могут быть в3 1 Повышенное время отклика от сервера 2 Ошибки http (4хх, 5хх) 3 Высокая загрузка ЦП 4 Много открытых соединений 5 Утечки памяти 1 Веб серверах 3 Сервере базы данных 2 Сервере приложения 3 Ширине канала связи
  • 17. Основные проблемы на сайте Сбербанка Много неоптимизированных изображений в страницах Не сгруппированные по страницам толстые JS и CSS файлы Большая нагрузка на сервере приложений и контент сервере, а также thread lock Некоторые widget`ы загружали больше 3х картинок сразу для адаптивности сайта Большие hit rate в основных страницах сайта, hit > 175 1 2 3 4 5
  • 18. Основные проблемы на сайте Сбербанка Встроенная геолокализация на основе данных из RDBMS Много застрявших (stuck) соединений в БД Targetting анонимных пользователей через Google аналитику Низкая пропускная способность HW load balancer Обработка бизнес логики на клиентской стороне Высокая нагрузка на CPU (cpu burning) в веб серверах 6 7 8 9 10 11
  • 19. Оптимизация веб сервера В первый день войны Уменьшали уровень сжатия файлов до 6, gzip_comp_level 6 Оставляли уровень логирования на error Увеличили количество кэшированных метаданных файлов (open_file_cache max=60000) Загрузили все статические ресурсы в RAM DISK, у нас не было memcache Доставка заранее сжатых gzip файлов Все изображения для landing page (35) положили в web server Nginx 1 2 3 4 5 6
  • 21. Оптимизация веб сервера SSI для предоставления статических ресурсов
  • 23. Оптимизация веб сервера Использование поддомен (sub domain) для статических ресурсов
  • 24. Оптимизация веб сервера Использование поддомен (sub domain) для статических ресурсов
  • 25. Результат 17% error 4/5xx 45% error 4/5xx 27 11 0% error
  • 26. Оптимизация веб сервера (Геолокация) Перенос механизма геолокации с портала на Nginx Nginx модуль ngx_http_geo_module1 ipgeobase базы со сайта ipgeobase.ru2
  • 27. Почему не кэшировать всю страницу? Почему? Сайт динмаический отобразил курс валюты, котировки для всех территориальных банков Пользовательская персонализация widget`ов не позволяет кэшировать 1/3 страницы
  • 28. Оптимизация веб сервера Поддержка WebP формата Создаем версию каждого изображения для формата webp Определяем версия браузера посетителя и раздаем изображения 2 1
  • 29. Оптимизация на стороне клиента Client Side должен заниматься только отображением данных Гибридный подход для рендеринга страницы1 2 Удалили лишних сортировок или фильтраций данных на клиенте 3 1 2 Группировали css, js файлы в одном по группам страницы, чтобы размер файлов не сильно увеличилось 4 Часть widget рендерить в браузере и часть в backend (JSP) Гибридный подход уменьшает нагрузки на browser
  • 30. Оптимизация на стороне клиента Не вызывать rest сервис с параметром current date time, результат такого запроса не кэшируется 5 Избавиться от микроатомарных вызов сервисов, использовать монолит-сервис для получения всех данных для одного widget 6
  • 31. Оптимизация на стороне Middleware Особое внимание при проектировании REST сервиса REST сервисы будут доступны из internet Единый дата сервис для получения данных из всех справочников через параметр REST сервиса - не лучший вариант Каждый REST сервис должен проверять входные параметры на null, если все параметры со значениями null, мы не возвращаем данные
  • 32. Оптимизация на стороне Middleware http://beta.sberbank.ru/portalserver/content/atom/cont entRepository/query?q=SELECT+*+FROM+cmis%3Afold e r&searchAllVersions=false&includeAllowableActions=false &includeRelationships=none&maxItems=1000&skipCount =0 -- НЕ ДОПУСТИМА Предоставлять обертку монолит сервисов Ограничивать данные через pagination Сервис должен сортировать и фильтровать данные для client side, а не наоборот
  • 33. Оптимизация на стороне Middleware Кэшировать результат вызова идемпотентных сервисов Пользуйтесь CPU L1-L3 cache эффективно Пользуйтесь offheap ОЗУ, когда массивы данных большие Пользуйтесь высокопроизводительным Stax или VTDXML на месте DOM или SAX Применяйте единый framework для логирования или SL4j фасад
  • 34. Оптимизация на стороне Middleware Увеличивайте время сканирования изменения на log4j2 или logback.xml Пользуйтесь профилированием для выявления и устранения блокировки Конфигурируйте сервер приложения
  • 35. Оптимизация Базы данных Выделить справочники для кэширования, например сущность «Регион», «КЛДР» или «Шаблон страницы» Настройка Cache (Oracle Result Cache) alter table TABLE_NAME RESULT_CACHE(MODE FORCE) alter table TABLE_NAME cache Alter table emp storage (buffer_pool Keep)
  • 36. Оптимизация Базы данных Oracle Database change notification Получить уведомление об DML и DDL операции в объектах базы данных Доступно с релиза 11g Хорошо подходит для очистки или обновления кэша в middleware
  • 37. Уровень кэширования на портале Сбербанка Кэширование статических ресурсов в Nginx Кэширование шаблонов страницы для портала Кэширование результатов вызова backend сервиса Кэширование статических ресурсов на контент сервере Кэширование hibernate l2 Кэширование таблицы и результатов SQL запроса в БД
  • 38. Итоги 27.01.15 03.02.15 05.02.15 13.02.15 Максимальное количество RPS 791 831 1032 1773 Требования 886 Полное отображение страницы (в секундах) 3.3 3 2.2 2.7 Требования 3
  • 39. Инструменты Cloud > LoadStorm > Flood.io Test segment > HP Load runner > Jmeter Miscellaneous > Google speed test > pingdom
  • 40. Заключения  Необходимо мониторить ИС и анализировать симптомы низкой производительности.  Необходимо анализировать нагрузки систем.  Определить и оптимизировать наиболее подверженные нагрузке участки.  Так же очень важно - это понимание архитектуры своей системы

Editor's Notes

  1. EhCache
  2. Большее ???
  3. Смоптомы 1 – проблемы
  4. В секундах
  5. Изменение шрифта
  6. дубл
  7. alter table TABLE_NAME RESULT_CACHE(MODE FORCE): результат запроса кэшируется в shared pool, LRU. alter table TABLE_NAME cache: кэширует данные таблицы в общем буферном кэше и не гарантирует что кэш может долго остаться не изменим. Если появиться новые кэшированные данные система может переписать данную кэш. Alter table emp storage (buffer_pool Keep) : кэширует таблицу в пул буфера и сохраняет дольшее всех
  8. С нагрузками справляются не технология или framework, а архитектура. Не столь важно, какие именно технологии вы используете. Намного важнее, как именно вы их используете.