Upload
uneta
View
532
Download
0
Embed Size (px)
DESCRIPTION
Презентация к докладу: «Высокопроизводительные приложения на базе Windows Azure. Пример реального проекта». Докладчик: Александр Фещенко – MVP (SQL Azure), .Net Team Lead в DCT.В докладе будут рассмотрены методики поиска узких мест в веб-приложениях, их устранения, а также способы повышения производительности при помощи облачной инфраструктуры Windows Azure.
Citation preview
Высокопроизводительные приложения на базе Windows
Azure. Пример реального проекта.
@feschenkoalexWindows Azure MVPhttp://feschenkoalex.blogspot.com
Проект sqlserverlaunch.com
Ожидаемый пик пользователей
10000Официальный
запуск
SQL Server 2012
Проблемы:
Сайт работает очень медленно Непонятно как поведет себя
система при стрессовой нагрузке До запуска остается совсем
немного времени Переписать проект с нуля нет
возможности
Профилирование.Red Gate Memory Profiler
Позволяет:
Находить утечки памяти в считанные минуты Оптимизировать исходный код, неправильно
использующий память Создавать более производительные приложения,
рационально использующие ресурсы
Программный комплекс, предназначенный для поиска утечек памяти в ваших приложениях
Red Gate Memory Profiler. Возможности.
Понятный результат
работы
Скорость анализа
Визуализация объектов
Нахождение источника проблемы
Широкие средства
фильтрации
Какой механизм использовать ?
Windows Azure Caching Service
Memcached
Меньшая стоимость
Тесная интеграция
Скорость разворачива
ния
Более высокая
стоимость
Более высокая
производительность
Ограничение на размер
объекта
Windows Azure Caching Service. Особенности.
Производительность
• Данные хранятся поблизости
• Локальное кеширование
• Любой .NET объект
• Снижение нагрузки на бд
• Простое масштабирование
• Провайдеры ASP.NET / API
• Простое управление и разворачивание
• Эластичный размер
Масштабируемость Простота
Кеширование разметки.
Blob Storage
Web App
Клиенты
Worker Role
1h
index, agenda, keynote…
index, agenda, keynote…
CachedNot cached
Оптимизация кода.
ORM Сервисы Database
EF Context WCF Proxy SP Tuning
Создание контекста ресурсоемкая операция. Решение: Один инстанс EF-контекста на один HTTP-запрос
Создание WCF-прокси ресурсоемкая операция. Решение: Пул прокси объектов (*ChannelFactory)
Хранимые процедуры выполняются медленно. Решение: Создание доп. индексов, оптимизация планов выполнения…..
Нагрузочное тестирование. Проблема.
1)Проблема не воспроизводится2)Сайт прекрасно работает на девелоперской
машине3)Вы не представляете что за ошибка4)Предположение: сайт «умирает» во время
нагрузки5)Необходимо создать определенную нагрузку
для выявления проблемы
Нагрузочное тестирование. Visual Studio.
Visual Studio Ultimate
Visual Studio Premium
• Web Performance Tests
• Load Tests• Load Test Rigs
• Profiling Tools• Performance Wizard
Нагрузочное тестирование. План.
Сохранить пользовательскую активность при помощи Web Performance Test
Имитировать нагрузку при помощи Load Tests
Имитировать большое количество пользователей при помощи Load Test Rig
Воспроизвести ошибки
Найти проблемы с кодом
Исправить код
Web Performance Test.
Один из видов тестов в Visual Studio 2010 UltimateСоставная часть нагрузочных тестов
Должны эмулировать User Story
Например
Как администратор я хочу иметь возможность искать пользователей по логину и деактивировать их аккаунтыКак пользователь я хочу иметь возможность заказывать пиццу и расплачиваться кредитной картой
Нагрузочное тестирование. VS Load Test.
Микс Web Performance и Unit тестов
Эмуляция активности нескольких пользователей, выполняющих определенный набор операций
Эмуляция скорости передачи данных
Эмуляция различных браузеров
Гибкая настройка количества виртуальных пользователей и механизма их добавления во время теста
Зачем Unit-тест в Load-тесте ?
Удобно для тестирования WCF
Важно для Silverlight и SOA
WCF Load Test
SQL Load Test
2 способа запуска нагрузочных тестов
VS 2010 Test Rig
• Используется только 1 CPU
• Лимит в 250 виртуальных пользователей
• Более правдоподобная нагрузка
• Эмуляция большего количества пользователей
Лицензия на дополнительных пользователей
Microsoft Visual Studio Team System 2010 Test Load Virtual User Pack
Эмуляция до 1000 виртуальных пользователей
Нагрузочное тестирование. Test Rig.
Приложение
Генерация нагрузки
Координирование и
сбор результат
ов
Контроллер
Агент 1 Веб сервер
База данных
Агент 2
Агент n
КонтроллерУправление
Лицензирование
Perfmon счетчики
Агент (1…n)
Симуляция пользователей