13
Построение модели подсистемы кэширования СХД AVRORA Зольников Павел [email protected] Кривых Алексей [email protected] Самунь Виктор [email protected] IT Summer SPb 2012 18 июля 2012

Построение модели подсистемы кэширования СХД AVRORA

Embed Size (px)

DESCRIPTION

Построение модели подсистемы кэширования СХД AVRORA. Зольников Павел [email protected] Кривых Алексей [email protected] Самунь Виктор [email protected] IT Summer SPb 2012 18 июля 2012. Реальная система. Инициатор Подсистема кэширования Кэш память Логика - PowerPoint PPT Presentation

Citation preview

Page 1: Построение модели подсистемы кэширования СХД  AVRORA

Построение модели подсистемы кэширования СХД AVRORA

Зольников Павел [email protected]Кривых Алексей [email protected]Самунь Виктор [email protected]

IT Summer SPb 201218 июля 2012

Page 2: Построение модели подсистемы кэширования СХД  AVRORA

Реальная система

• Инициатор• Подсистема кэширования– Кэш память– Логика

• Массив дисков

Page 3: Построение модели подсистемы кэширования СХД  AVRORA

Напоминания

• “Чистый” сегмент – сегмент, содержащий копию данных на диске

• “Грязный” сегмент – сегмент, содержащий данные новее, чем на диске

• Используемый сегмент – если идет запись/чтение из этого сегмента

Page 4: Построение модели подсистемы кэширования СХД  AVRORA

Напоминания

• Read ahead (упреждающее чтение) – стратегия кэширования, при которой вместе с запрашиваемыми данными считываются соседние с ними данные

• Write back (отложенная запись) – стратегия кэширования, при которой данные не передаются сразу от инициатора на диск, а помещаются в кэш и лежат там некоторое время, пока не будут записаны на диск

Page 5: Построение модели подсистемы кэширования СХД  AVRORA

Работа подсистемы: чтение

• Поиск запрашиваемых данных в кэше• Если данные найдены, передача их

инициатору• Если данные не найдены, поиск их на диске• Копирование данных в кэш• Передача данных из кэша инициатору

Page 6: Построение модели подсистемы кэширования СХД  AVRORA

Работа подсистемы: read ahead

• Система распознает, что идет последовательное чтение– Минимальное количество последовательно

считываемых страйпов• Считывание некоторого количества

страйпов наперед– Тоже параметр системы– Ограничения сверху и снизу

Page 7: Построение модели подсистемы кэширования СХД  AVRORA

Работа подсистемы: запись

• Всегда write back• “Грязные” данные сливаются на диск:– При достижении порога заполнения– По таймеру (10 раз в секунду)– Когда система на может выделить сегмент под

запрос инициатора

Page 8: Построение модели подсистемы кэширования СХД  AVRORA

Трасса

• ENT=0 STR=1328614447.573684 TRN=9442 EXP=9504 INI=localhost TGT=LocalNRtarget RAID=BAK LUN=LAK LNUM=0 CDB=28000000040000040000000000000000 LLBA=1024 PLBA=1024 LEN=1024 RT=1 STAT=0 SKEY=0 SCOD=0 DRTC=0 NRAC=0 RAP=0 WBP=0

Page 9: Построение модели подсистемы кэширования СХД  AVRORA

Параметры запроса

• STR – время прихода запроса• EXP – время от прихода запроса до

окончания его выполнения и уничтожения• TRN – время от прихода запроса до начала

передачи данных между системой и инициатором

Page 10: Построение модели подсистемы кэширования СХД  AVRORA

Что есть EXP?

• Главный вопрос: входит ли время стояния запроса в очереди в EXP?

• Пусть так. Сравним STR(last) + EXP(last) – STR(first) ≈ 446 мсек с ≈ 9,8 сек. Гипотеза провалилась.

• Пусть наоборот. Тогда сосчитаем время непрерывной работы. ≈ 228 мсек

Page 11: Построение модели подсистемы кэширования СХД  AVRORA

Время непрерывной работы

Запрос 1

Запрос 2

Запрос 1

Запрос 2

Запрос 1

Запрос 2

Page 12: Построение модели подсистемы кэширования СХД  AVRORA

Параллельная работа системы

• Запросы могут обрабатываться параллельно, если запрашиваемые в них данные не пересекаются

• STR(last) + EXP(last) – STR(first) уже не актуально• Время непрерывной работы также надо

считать по-другому• Но можно оценить время простоя системы

Оно не больше чем время простоя системы, запросы которой обрабатываются последовательно

Page 13: Построение модели подсистемы кэширования СХД  AVRORA

Время работы дисков

• Скорость передачи данных - 150 Мб/сек• Время позиционирования головки – 10-20

мсек– Оно вносит большой вклад в общее время

работы– Но зависит от схемы обращения к

данным(последовательное или произвольное чтение)

– Требуются дополнительные эксперименты