AME

AME  - это сокращение от Active Memory Expansion, технология IBM, которая позволяет вам увеличить кол-во физической памяти на машине за счет..ее компрессии. IBM подошла к решению проблемы  ускорения ввода-вывода с неожиданной стороны - большинство предлагают использовать flash в качестве кэша,  IBM работает над тем, как поместить больше данных в память и таким образом уменьшить обращение   к дискам -). Немного о том,   почему обращение к DRAM и flash  - это две больше разницы:  доступ к flash имеет гораздо большую latency, потому  что мы вынуждены идти через путь обращения к обычному блочному устройству.

AME  работает начиная с Power 7 и AIX 6.1. Чтобы оценить возможный эффект - можете посмотреть мою презентацию. На примере приложения SwingBench я получил прирост кол-ва транзакций в 1.7 раза при сохранении времени отклика.




Важное дополнение: когда данная  технология появилась, компрессией занимался центральный процессор (Power 7). Если он простаивает из-за медленного ввода-вывода, имеет смысл его загрузить.

Но с выходом Power 7+ данная технология получила второе рождение. Дело в том, что в Power 7+ есть специальный акселератор (чип 842), задача которого обслуживать именно компрессию памяти.  Мое понимание (поправьте меня), что он просто стоит в разрыве между каналом обращения к памяти и делает компрессию совершенно прозрачной.

Фактически, если вы не используете этот механизм, вы не полностью задействуете возможности нового процессора!

Закончили с маркетингом, теперь серьезно. Во первых технология AME поддерживается только для Oracle 11.2. Во вторых, как только вы установили в профиле своей LPAR галочку AME и перегрузили LPAR вы увидите что у вас ...пропали страницы памяти 64K!

pagesize -fa
16M
4K

Небольшое исследование этой чертовщины показывает, что виновата переменная vmo vmm_mpsize_support которая магическим образом установилась в 0, вместо 1 (значение по умолчанию). vmo -F -r -o vmm_mpsize_support=1  после перезагрузки возвращает страницы 64K, но оказалось, что это не баг, а фича - сжимать страницы 64K может оказаться очень дорого, и поэтому, для спокойствия, в окружении Power 7  эти страницы просто выключали (страницы 16M не сжимаются по определению). Я провел несколько экспериментов с сжатием страниц 64K, но окончательный вывод, ускоряется ли приложение или замедляется, сделать мне не удалось. Я конечно же надеюсь на волшебный акселератор Power 7+, но к сожалению такого оборудования у меня пока нет.

В целом, на данный момент рекомендация звучит так - можно получить коэффициент сжатия от 1.5 до 3 (экстремальный случай), и это позволяет вам увеличить кол-во транзаций при сохранении времени отклика также в разы ( в 1.7 раза при коэффициенте 3 в моем тесте). 64K я бы с удовольствием потестировал бы на Power 7+ (вздыхает...)  и если пройдет успешно, переводим работу Oracle (и SGA и PGA) на страницы 64K, включаем AME  и получаем профит! 

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

  1. ну и какой оверхед на поддержание столь маленьких страниц (4K) будет при, скажем, 10 тыс. сессиях?

    ОтветитьУдалить