1 ноября 2009 г.

Обратная связь

Давайте немного поговорим о сложных процессах взаимного влияния инициатора нагрузки и поставщика сервисов хранения. С точки зрения сервера существует понятная зависимость между Response Time, ожидаемым приложением, и требуемой для этого Throughput. Есть даже емкий английский термин для такой формы зависимости – anticipating demands. Что бы записать или получить данные с дискового массива за меньшее время, серверу необходимо просто увеличить количество соответствующих запросов, т. е. повысить Throughput.
Хочу обратить ваше внимание, что этой зависимостью управляет именно ожидание сервера, т. е. ось ординат Response Time на графике anticipating demands.


Что же в это время происходит на дисковом массиве? Предположим, что он имеет достаточное количество свободных ресурсов для того, чтобы выполнить I/O операций в рамках ожидаемого Response Time. Более того, у него есть дополнительные невостребованные мощности и поэтому массив обработает запросы с Throughput, которая даже больше требуемой. Хранилище просто “проглотит” данные быстрее, чем того ожидает сервер. В таком случае, приложение имеет возможность уменьшить Response Time, ужесточив требования к Throughput. Увеличение пропускной способности может (но, конечно, не обязательно) происходить до тех пор, пока требования сервера не подойдут к пределу возможностей дискового массива, т. е. до пересечения их кривых.


В обратной ситуации, когда дисковый массив не имеет достаточно ресурсов для обеспечения требований сервера, замедление обработки данных и, соответственно, появление таймаутов, известит приложение о необходимости уменьшения нагрузки.


Таким образом, происходит взаимное давление с обеих сторон взаимодействия. Этот механизм обратной связи приводит к адаптивной регуляции нагрузки.
“Если все так самоорганизуется, то откуда же тогда берутся проблемы с производительностью?”, спросит пытливый читатель. Все дело в требованиях конечных пользователей приложений. Если результирующее Response Time дискового массива будет высоким, то это приведет к увеличению времени отклика приложений. Его несоответствие формальным требованиям или даже просто субъективным ожиданиям потребителей, будет являться поводом для оптимизации использования ресурсов или модернизации не справляющегося со своей работой оборудования.

Стоит отметить, что описанный выше механизм прост только в рассмотрении результатов синтетических тестов. Ведь в реальных условиях, как требования приложений, так и характеристики дискового массива постоянно изменяются. Это приводит к непрерывной трансформации обеих зависимостей. Как следствие, точки пересечения кривых буквально мечутся по плоскости графиков. Анализировать такое поведение практически не возможно.

1 комментарий:

Примечание. Отправлять комментарии могут только участники этого блога.