CodeFest 2010. Кузьмичев А. — Быстрее быстрого: о требованиях к производительности
1. Быстрее
быстрого:
о
требованиях
к
производительности
Андрей
Кузьмичев
Руководитель
группы
нагрузочного
тестирования
CodeFest
2010,
Новосибирск,
23
сентября
2010
года
среда, 22 сентября 2010 г.
19. Замедление поисковой
выдачи на различных этапах
+100мс = отклонения в пределах шума
среда, 22 сентября 2010 г.
20. Замедление поисковой
выдачи на различных этапах
+100мс = отклонения в пределах шума
+500мс = -1,0% кликов, +1200мс до
первого клика
среда, 22 сентября 2010 г.
21. Замедление поисковой
выдачи на различных этапах
+100мс = отклонения в пределах шума
+500мс = -1,0% кликов, +1200мс до
первого клика
+2000мс = -4,4% кликов, +3100мс до
первого клика
среда, 22 сентября 2010 г.
22. -0.22%
-0.36%
-0.44%
-0.74%
среда, 22 сентября 2010 г.
25. - Сильное отрицательное воздействие
- Приблизительно линейное изменение показателей с
ростом задерки
среда, 22 сентября 2010 г.
26. - Сильное отрицательное воздействие
- Приблизительно линейное изменение показателей с
ростом задерки
- Время до первого клика растет почти вдвое
быстрее задержки
среда, 22 сентября 2010 г.
29. Чего сегодня не будет?
- как правильно формулировать
требования к производительности
среда, 22 сентября 2010 г.
30. Чего сегодня не будет?
- как правильно формулировать
требования к производительности
- не будет большей части требований к
производительности
среда, 22 сентября 2010 г.
31. Чего сегодня не будет?
- как правильно формулировать
требования к производительности
- не будет большей части требований к
производительности
- как и чем проводить нагрузочное
тестирование
среда, 22 сентября 2010 г.
32. Чего сегодня не будет?
- как правильно формулировать
требования к производительности
- не будет большей части требований к
производительности
- как и чем проводить нагрузочное
тестирование
- как сделать так, чтобы все работало
быстро
среда, 22 сентября 2010 г.
33. Чего сегодня не будет?
- как правильно формулировать
требования к производительности
- не будет большей части требований к
производительности
- как и чем проводить нагрузочное
тестирование
- как сделать так, чтобы все работало
быстро
- сколько нужно программистов, чтобы
вкрутить LAMP
среда, 22 сентября 2010 г.
59. Время: закон Вербера-Фехнера
б
а
а б
Концепция о наименьшем заметном различии - jnd
(Just Noticeable Difference)
среда, 22 сентября 2010 г.
60. Время: закон Вербера-Фехнера
Отношение
б Вербера для
а длительностей
до 30 секунд -
в диапазоне от
а б 7 до 18%
Концепция о наименьшем заметном различии - jnd
(Just Noticeable Difference)
среда, 22 сентября 2010 г.
65. Время: закон Вербера-Фехнера
-20% +20%
Быстрее 16 с 20 с 24 с Медленнее
Правило 20% дает нижнюю
и верхнюю границы
заметности изменения
среда, 22 сентября 2010 г.
68. Время: критерий «ненамного»
Исследования чувственного
оценивания
Среднее между двумя
длительностями совпадает
со средним геометрическим
среда, 22 сентября 2010 г.
69. Время: критерий «ненамного»
Исследования чувственного
оценивания
Среднее между двумя
длительностями совпадает
со средним геометрическим
среда, 22 сентября 2010 г.
71. Время: критерий «ненамного»
Выше порога среднего
геометрического вероятность
ассоциирования значения с
большим числом увеличивается.
среда, 22 сентября 2010 г.
72. Время: критерий «ненамного»
Выше порога среднего
геометрического вероятность
ассоциирования значения с
большим числом увеличивается.
Нейтрализация
дифференциации
среда, 22 сентября 2010 г.
80. Profit!
- Возможность незаметной деградации
среда, 22 сентября 2010 г.
81. Profit!
- Возможность незаметной деградации
- Целесообразность проводимой
оптимизации
среда, 22 сентября 2010 г.
82. Profit!
- Возможность незаметной деградации
- Целесообразность проводимой
оптимизации
- Определение целевой
производительности
среда, 22 сентября 2010 г.
83. Profit!
- Возможность незаметной деградации
- Целесообразность проводимой
оптимизации
- Определение целевой
производительности
- Сглаживание отставания от конкурента
среда, 22 сентября 2010 г.
91. Время ответа
Запрос DNS
среда, 22 сентября 2010 г.
92. Время ответа
Запрос DNS
Установка TCP соединения
среда, 22 сентября 2010 г.
93. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
среда, 22 сентября 2010 г.
94. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
Передача запроса от клиента серверу
среда, 22 сентября 2010 г.
95. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
Передача запроса от клиента серверу
Генерация ответа сервером
среда, 22 сентября 2010 г.
96. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
Передача запроса от клиента серверу
Генерация ответа сервером
Передача ответа от сервера клиенту
среда, 22 сентября 2010 г.
97. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
Передача запроса от клиента серверу
Генерация ответа сервером
Передача ответа от сервера клиенту
Рендеринг страницы браузером
среда, 22 сентября 2010 г.
98. Время ответа
Запрос DNS
Установка TCP соединения
Генерация запроса от клиента
Передача запроса от клиента серверу
Генерация ответа сервером
Передача ответа от сервера клиенту
Рендеринг страницы браузером
среда, 22 сентября 2010 г.
115. 1. Восприятие времени
2. Что происходит в вебе
3. Секунда - это много?
4. Сколько рпсов?
5. Приборы? 42!
6. Profit!
среда, 22 сентября 2010 г.
116. 3 это куча? 3 - это
мало. А 7? 7 - это куча!
Мало - это когда съел
и еще хочется, а много -
это когда уже больше
не хочется
среда, 22 сентября 2010 г.
117. Так какое время ответа
приемлемо?
среда, 22 сентября 2010 г.
118. Так какое время ответа
приемлемо?
Это очень сильно зависит от
сервиса
среда, 22 сентября 2010 г.
119. Так какое время ответа
приемлемо?
В общем случае, если вы
отвечаете дольше 300мс, то
вы никому не нужны*
* скорее всего это выльется в 1 секунду на клиенте
среда, 22 сентября 2010 г.
120. Так какое время ответа
приемлемо?
Мы не должны тормозить
среда, 22 сентября 2010 г.
121. Так какое время ответа
приемлемо?
Мы не должны тормозить
Плохое требование
среда, 22 сентября 2010 г.
122. Так какое время ответа
приемлемо?
Мы должны отвечать не
медленнее 300мс
среда, 22 сентября 2010 г.
123. Так какое время ответа
приемлемо?
Мы должны отвечать не
медленнее 300мс
Плохое требование
среда, 22 сентября 2010 г.
165. 29 марта 2010 года
Взрывы в московском метро
среда, 22 сентября 2010 г.
166. 29 марта 2010 года
Взрывы в московском метро
среда, 22 сентября 2010 г.
167. 29 марта 2010 года
Взрывы в московском метро
Первый взрыв: 7:57
Рост нагрузки: 8:10
среда, 22 сентября 2010 г.
168. Так и сколько должен держать
мой сервис?
Думайте как ваш массовый
пользователь
среда, 22 сентября 2010 г.
169. И сколько в итоге должен
держать мой сервис?
Ищите суточные, недельные,
сезонные колебания
среда, 22 сентября 2010 г.
170. И сколько в итоге должен
держать мой сервис?
Ищите суточные, недельные,
сезонные колебания
Погода тоже очень сильно влияет на трафик, ага.
среда, 22 сентября 2010 г.
171. И сколько в итоге должен
держать мой сервис?
Событийный сервис?
Готовьтесь к очень резким
скачкам трафика!
среда, 22 сентября 2010 г.
172. И сколько в итоге должен
держать мой сервис?
Событийный сервис?
Готовьтесь к очень резким
скачкам трафика!
Можно сделать сильно упрощенную версию сайта и
переключатся на нее в критические моменты. Так,
например, делает Газета.Ру
среда, 22 сентября 2010 г.
173. И сколько в итоге должен
держать мой сервис?
Если есть возможность -
сделайте закрытое
тестирование!
среда, 22 сентября 2010 г.
174. И сколько в итоге должен
держать мой сервис?
Если есть возможность -
сделайте закрытое
тестирование!
А в логах смотрите не только на работу системы, но и на
профили нагрузки - там оооочень много интересного.
среда, 22 сентября 2010 г.
175. А интернет-то растет!
Аудитория портала Яндекс (по данным TNS)
15 000 000
12 500 000
10 000 000
7 500 000
5 000 000
2 500 000
0
Май 2008 Окт 2008 Мар 2009 Авг 2009 Янв 2010 Июн 2010
среда, 22 сентября 2010 г.
176. 1. Восприятие времени
2. Что происходит в вебе
3. Секунда - это много?
4. Сколько рпсов?
5. Приборы? 42!
6. Profit!
среда, 22 сентября 2010 г.
184. Что в итоге
Подумайте про время ответа сервиса
среда, 22 сентября 2010 г.
185. Что в итоге
Подумайте про время ответа сервиса
Не забудьте про длинный хвост
среда, 22 сентября 2010 г.
186. Что в итоге
Подумайте про время ответа сервиса
Не забудьте про длинный хвост
Прикиньте максимальную нагрузку
среда, 22 сентября 2010 г.
187. Что в итоге
Подумайте про время ответа сервиса
Не забудьте про длинный хвост
Прикиньте максимальную нагрузку
Максимально открытая закрытая бета
среда, 22 сентября 2010 г.
188. Что в итоге
Подумайте про время ответа сервиса
Не забудьте про длинный хвост
Прикиньте максимальную нагрузку
Максимально открытая закрытая бета
Нагрузочное тестирование
среда, 22 сентября 2010 г.
192. Немного цифр
- 7 датa-центров;
среда, 22 сентября 2010 г.
193. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
среда, 22 сентября 2010 г.
194. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
~ 20 миллионов уникальных пользователей;
среда, 22 сентября 2010 г.
195. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
~ 20 миллионов уникальных пользователей;
~1000 запросов к поиску в секунду;
среда, 22 сентября 2010 г.
196. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
~ 20 миллионов уникальных пользователей;
~1000 запросов к поиску в секунду;
~ 50 миллионов писем;
среда, 22 сентября 2010 г.
197. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
~ 20 миллионов уникальных пользователей;
~1000 запросов к поиску в секунду;
~ 50 миллионов писем;
~ 200 изменений программ;
среда, 22 сентября 2010 г.
198. Немного цифр
- 7 датa-центров;
- Несколько тысяч серверов;
~ 20 миллионов уникальных пользователей;
~1000 запросов к поиску в секунду;
~ 50 миллионов писем;
~ 200 изменений программ;
- Больше 100 системных администраторов;
сетевых инженеров, инженеров ДЦ и
других ребят;
среда, 22 сентября 2010 г.
205. Датацентры
- До 7 000 серверов;
среда, 22 сентября 2010 г.
206. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
среда, 22 сентября 2010 г.
207. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
среда, 22 сентября 2010 г.
208. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
среда, 22 сентября 2010 г.
209. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
- Дизельные генераторы;
среда, 22 сентября 2010 г.
210. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
- Дизельные генераторы;
- СКС и оптические каналы;
среда, 22 сентября 2010 г.
211. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
- Дизельные генераторы;
- СКС и оптические каналы;
- Склады;
среда, 22 сентября 2010 г.
212. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
- Дизельные генераторы;
- СКС и оптические каналы;
- Склады;
- Помещения для персонала;
среда, 22 сентября 2010 г.
213. Датацентры
- До 7 000 серверов;
- Подведенная мощность – 2-4 МВт;
- Системы охлаждения - 18-22 градуса;
- Источники бесперебойного питания;
- Дизельные генераторы;
- СКС и оптические каналы;
- Склады;
- Помещения для персонала;
- Охрана, пропускная система.
среда, 22 сентября 2010 г.
218. Yet another
Conference 2010
Москва, 1 октября
http://company.yandex.ru/public/yac/
среда, 22 сентября 2010 г.
219. Yet another
Conference 2010
Москва, 1 октября
http://company.yandex.ru/public/yac/
* прямая трансляция конечно же будет
среда, 22 сентября 2010 г.
220. Андрей
Кузьмичев
Руководитель
группы
нагрузочного
тестирования
119021,
Россия,
Москва,
ул.
Льва
Толстого,
16
+7
(495)
739-‐00-‐00
+7
(495)
739-‐70-‐70
—
факс
baabaka@yandex-‐team.ru
среда, 22 сентября 2010 г.