Насколько хороша должна быть память?
Чтобы «сохраниться», нужно вложиться
Оперативная память хранит все данные одинаково. В серверах, которые обычно используют специальные анализаторы для обнаружения и исправления ошибок, добавленная стоимость может стать весьма значительной с учетом используемых больших объемов памяти.
Исследователи Microsoft и Университета Карнеги-Меллона уже занимаются изучением этого вопроса. Обнаружив, что полная стоимость владения ≈ 57 процентов центров обработки данных – это капитальные затраты - большинство из которых является затратами на серверы - и что процессоры и память составляют около 60 процентов стоимости сервера, то становится ясно, что сокращение расходов на память может существенно повысить эффективность капитальных затрат дата-центра.
Система исправления кода (error correcting code – ECC) также замедляет системы и, в связи с увеличением используемой RAM, повышает энергопотребление и затраты на охлаждение. Получается двойной удар.
Исследователи хотели бы выяснить, всем ли приложениям необходим одинаковый уровень помощи, который обеспечивает ECC и в случае, если нет, сколько можно было бы сэкономить с помощью разнородных систем памяти. Ключевым моментом является понимание, насколько уязвима к появлению ошибок память при данных нагрузках.
В чем заключалась замаскированная ошибка?
Не все ошибки памяти создают проблемы, не все из них даже обнаруживаются. Если ошибка переписывается до чтения, никто никогда не узнает о ее существовании. Далее пойдет речь о классификации таких ошибок памяти.
В своем тестировании команда вводит ошибки в системы памяти, чтобы определить, насколько вредны они были. Если приложение переставало работать или результаты были неверны, это считалось серьезной ошибкой.
Исследователи рассмотрели три типа рабочих нагрузок: WebSearch, Memcache и, GraphLab. Все это достаточно распространенные приложения.
В результате командой специалистов было разработано шесть крупных выводов.
- Допустимость ошибки варьируется в зависимости от приложения.
- Допустимость ошибки варьируется внутри приложения.
- Быстрый отказ ПО отличается от периодического некорректного поведения.
- Некоторые области памяти являются более безопасными, чем другие.
- Наиболее серьезные ошибки в основном уменьшают правильность.
- Восстановимость данных различается по регионам памяти.
Посмотрев на то, как приложения ведут себя в различных условиях работы памяти, группа пришла к выводу, что:
. . . использование памяти без обнаружения / коррекции ошибок (и последующего распространения ошибок на постоянное хранение) подходит для применения со следующими двумя характеристиками: (1) данные приложения ипользуются в основном только для чтения в памяти (то есть ошибки имеют низкую вероятность распространения на постоянное хранение), и (2) результат применения носит преходящий характер (то есть, сразу же используется пользователем, а затем отбрасывается).
Ряд популярных приложений, таких как поиск, потоковая передача данных, игры и социальные сети, подходят под этот профиль.
Масштаб имеет значение
После проверки различных вариантов, авторы приходят к выводу, что гетерогенная память может сохранить до 4,7% расходов на серверы, в то же время давая гарантию 99,9% доступности сервера.
Может показаться, что это не так уж и много, но если вы тратите миллиард в год на сервера, экономия накапливается.
Мало предприятий имеют достаточные мощности, чтобы такие изменения под каждое приложение стали целесообразными для сохранения 4,7 процента затрат на сервера. Но Интернет центры обработки данных хотят и будут этим заниматься.
Эти ступенчатые усовершенствования – экономят пару процентов здесь и еще пару там – будут продолжать снижение стоимости IaaS, в то время как расходы предприятий продолжат расти. Корпоративные ИТ-менеджеры должны будут стать скорее брокерами, нежели поставщиками услуг для своих корпоративных клиентов.