Happy new year 2013!


Традиционно, хочу поздравить всех читателей блога с наступающим 2013 годом! 

 Год был для блога непростой, разворачивались сложные дискуссии, но, сказать по правде,  благодаря этим дискуссиям мне удается достигать неплохих результатов в своей работе.  Так что я очень признателен всем, кто оставлял комментарии!

Что касается результатов  - вы все видите на картинке выше. По моему, совсем неплохо  для человека,  который пришел  из Software сompany (Oracle на тот момент формально уже завершил сделку по приобретению Sun, но это была формальность) в ведущую Hardware company. Честно говоря, я думал, что это невозможно сделать  - слишком разные технологии, слишком разные подходы. Но, если вы знаете,  что задача имеет решение, какой  смысл ее решать?  ( ( (C) Братья Стругацкие). 

Но мы живем не одной только работой,  и хотя  в этом году я пропустил сезон водного туризма, я смог пробежать полумарафон (21 км), а также за один забег набрать высоту в ~450 метров. На следующий год стоят еще более амбициозные задачи -). Прочие жизненные достижения уходящего года предмет другого блога -) 

С наступающим новым годом, друзья! 


Читать дальше...

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  и получаем профит! 


Читать дальше...

RuOUG

На RuOUG  я послушал презентацию Ю. Пудовченко про Exadata (все презентации с RuOUG доступны тут). Хочу отметить очень высокое качество презентации. Хотя и не обошлось без слайда про ускорение в 300 раз -)), в целом презентация была очень взвешенной и основанной на реальном опыте. Безусловно рекомендую ее к просмотру. Особенно ценным, мне показались слайды с упоминанием мест в коде, с которыми могут возникнуть проблемы,  а также как понять из AWR есть ли смысл в переносе приложения на Exadata.


Единственное в чем я не согласен с Юрием, это с его определением, что Exadata storage   выполняет sql.  Возможно это чисто теоретический спор, однако мне он кажется важным.

Давайте посмотрим, что Oracle понимает под выполнением sql запроса. Слева, вы видите семантическую диаграму.

 Думаю, что большинство согласится, что parsing выполняет ядро СУБД Oracle. К фазам Optimization/Row Source Generation  кажется тоже нет претензий - делается на стороне СУБД. Надеюсь пока все согласны.

Итак, мы подошли к Execution. Насколько я понял Юрия, поскольку Exadata storage выполняет I/O это и позволяет говорить, что она выполняет sql. Однако, берем определение:  During execution, the SQL engine executes each row source in the tree produced by the row source generator.

Еще раз - все делает SQL Engine. Нужно ли говорить, что нет SQL Engine на стороне Exadata storage ? Exadata storage даже не получает текстов sql запросов, а только условия фильтрации и/или  битовые маски для join. Если же аргумент 'Exadata storage делает ввод-вывод' для вас достаточен, чтобы решить,  что это выполнение sql запроса, тогда любой storage, который делает ввод-вывод также выполняет sql запросы -)


Читать дальше...

Oaktable world

Пока в Москве идет снег (и не ходит снегоуборочная техника)  лучший способ провести время - посмотреть презентации (видео и ppt) одних из лучших технических специалистов - Cary Millsap, Jonathan Lewis, Tanel Poder (и это далеко не полный список!)

Эти презентации были записаны во время Oracle OpenWorld, но проводились в рамках  Oaktable World, в отдельном очень прикольном павильончике.

Очень, очень рекомендую!

PS
Картинка справа cлева взята из презентации Jonathan Lewis. 


Читать дальше...

Work of art

Update 1. Формальное описание позиции.

Как вы заметили, я очень долго не писал в блог. Совершенно нет времени, заказчики массового переходят на IBM Power, просто вздохнуть некогда.

Если вы  знаете как работает Oracle на AIX/ Power, я просто умоляю вас прийти на работу в  IBM в Московском офисе. Это интересно. Вы поймете, что вы ничего не знаете. Это work of art, не продажи коробок  с интеловскими серверами и предустановленным  ПО. Будете в курсе, чем один TL AIX отличается от другого, как работает Hypervisor, и вообще high-end системы. А если вы уже в курсе, то, поверьте мне, всегда найдется что изучить дальше и чем пополнить свое резюме.  Те, кто ходит на мероприятия IBM знают, что на каждом, в котором  я участвую, показывается живая демонстрация, а не только PowerPoint.

Присылайте резюме на dsvolk at gmail.com. Пишите простым языком, чтобы я понял, какой(ая) вы крутой(ая).


Не дайте погибнуть блогу! -)))))))

PS Вопросы можно будет задать лично 6 декабря на RuOUG.


Читать дальше...

OOW - Day 3 (UEK R2)

В день 3 (или 4-ый,  я, честно говоря, сбился со счета) в выступлении Edward Screven, Chief Corporate Architect for Oracle, прозвучала информация о новом TPC-C рекорде который был получен на Oracle Enterprise Kernel R2 и Oracle Database 11gR2.

В своем пресс-релизе, посвященном рекорду  Oracle указывает, что победил DB2, в то время как Cisco, которая  предоставляла серверное оборудование, указывает, что был побежден IBM Flex System -)). Что интересно, так это то, что в обоих тестах использовался один и тот же Intel Xeon (E5-2690, 8 Cores) и одинаковое кол-во  памяти (768 Gb).

Ниже я скопировал картинку из блога Cisco.  Разница в 7%. Спору нет, инженерные усилия дали свой результат. И это, кстати,  очень показательно. Давайте посмотрим, а что было разного в этих тестах:


Cisco использовал Oracle Enterprise Kernel, 11gR2, Violin memory array + SAS array.

IBM использовал Red Hat Linux, DB2, SAS + SSD диски.

Т.е. ни одной похожей буквы, кроме  буквы Linux.

Посмотрите на Think Times ниже:  я честно говоря не вижу отличий. 7% о которых пишут, и это действительно так, выражается в Maximum Qualified Throughput. Но, повторюсь, по временам отклика - мне кажется одинаково.

Т.е. если вы изо всех сил выбираете, какой вам взять Linux, да на каком железе будет лучше, да еще и не дай бог какую взять БД для своего проекта - вы рискуете промахнуться на 7%.  Это совсем немного, принимая во внимание цены, и то, что оптимизацией кода получить ускорение в разы - не проблема. Выбирать по производительности стало бессмысленно, по крайне мере для небольших систем. Еще раз, 7% разницы в максимальной пропускной способности при совершенно разных конфигурациях.  Лучше обратить внимание на то, с чем вам удобнее работать, где лучше поддержка, виртуализация  и прочее. IBM кстати, очень стала пропагандировать PowerLinux именно из-за виртуализации и консолидации приложений  в первую очередь. Набор мелких коробок  наверно будет быстрее чем одна большая, в которой собраны все задачки, но потери в управляемости, гибкости, надежности будут несравненно выше.


PS обратите внимание на размещение файлов Oracle: redo на sas, файлы данных на violin memory

Результаты: IBM








Результаты: Oracle/Cisco













Поздравляю команду Oracle/Cisco с отличным результатом!

Полная версия видео с OOW


Читать дальше...

OOW - Day 2

В этом году почему то не сделали доступными презентации с OOW, так что следить за происходящим не так просто.

Конечно самое интересное - что приготовили для нас в Database 12c. Я ожидал услышать что-то реально интересно в интервью Andrew Mendelsohn ...но оно очень высокоуровневое оказалось, к большому сожалению.  В целом там было несколько пунктов:
- Cloud (без комментариев -) есть официальный пресс-релиз)
- Pluggable Database (с демонстрацией)
- Database heat map и Automatic Data Optimization. Теперь можно составить правила по которым, если какая-то  секция (partition) долго не обновляется,  ее будут пережимать из обычной компресс в columnar query, а затем и в columnar archive. Думаю, что это магия конечно потребует Exadata

- Real Application Testing (но демо не было и что там нового осталось непонятным. Очевидно возможность проигрывать сразу несколько записанных workload, но точно нельзя сказать)

Я считаю, что можно потратить 15 минут времени и посмотреть 50 минутное выступление -)

На самом деле в 12c сделали грандиозное кол-во изменений, некоторые ужасно интересные, но информации по ним я найти пока не могу: режим Far Sync для Standby, Application Continuity - приложение сможет повторять запросы автоматически в случае потери узла RAC (сейчас только select), Global Data Services - балансировки между Active DataGuard  базами данных (?)

Update 1. Опубликовали SPARC roadmap, все развивается, будут и T -series, и M-series, но...в 2013 году. Или я нашел старый roadmap, или планы изменились - все ожидали объявление T5 на этой неделе. 


Читать дальше...

IBM, October 3

C 3 октября IBM начнет  целую серию объявлений об новых продуктах  и обновлении старых. В том числе будет объявлен и  Power 7+ 




Невозможно становится за всем уследить, хоть бери отпуск -)))


Читать дальше...

OOW - Day 1



Выступил Ларри и сразу в бой:  выложил несколько анонсов. Перечисляю те, которые мне удалось запомнить:
- Cloud Computing - теперь Oracle будет готво не только дать вам в аренду где то там далеко свои приложения, но привезти к Вам и поставить Exadata + Exalogic, поддерживать и взимать плату за использование (надо понимать и приложений Oracle в том числе). Идея отличная - вопрос цены -)






- Pluggable Database Architecture - теперь несколько баз данных можно будет объединить в рамках одних background процессов и SGA (?). Технических подробностей нет. Мысль здравая, много баз данных жрут много ресурсов, а если у вас нет нормальной виртуализации (на Exadata) то вам совсем плохо.


- Новая Exadata - тут тебе и write cache, и даже возможность купить 1/8 и обновить до 1/4. Это когда вам поставляют 1/4 но блокируют в bios половину ядер. Удачный маркетинговый ход.




Чтобы не отступать от традиции всех запутать Ларри сообщил, что в новой Exadata будет 26 Tb memory и in - memory database. На самом деле 4 Tb memory и 22 Tb flash (наверно будет использоваться database flash cache)  и иерархическое управление памятью. Обещают cделать write cache для тех у кого Exadata X-2/V2 за счет обновления software.




- Напоследок - традиционное - железо у IBM совсем негодное. На слайде все верно, за исключением:
- ядро Power <> ядру Intel
- Ларри забыл про $10,000 за диск на Exadata Software. При этом слайдом выше явно говорится, что на этих самых дисках и хранить то уже нечего - все будет на flash. Не знаю, как будут выходить из этой немного неловкой ситуации -)


Выступление, как и всегда, у Ларри отличное вышло! 


Читать дальше...

Oracle OpenWorld: 30 сентября - 4 октября

Осталось 2 дня до OpenWorld.
Если вы не смогли задушить жабу убедить свое начальство, что вам жизненно необходимо поехать в OOW  - то как и мне, вам остается смотреть Oracle OpenWorld Live -)

По опыту прошлого года - там все весьма оперативно выкладывают. Также в прошлом году в свободном доступе появились и презентации с OOW.  Буду обновлять этот пост как только будет появляться ссылки на материалы. Вы тоже пишите, если что найдете -)


Update 1. Сегодня (ночью) выступает Ларри.
Update 2. В OEL 6.3 в качестве root file system - brtfs
Update 3. Нас ожидают объявление T5, Database 12c, обновление Exadata.
Update 4. Live on YouTube



Читать дальше...

читатели vs считатели

На последней конференции Hot Chips Oracle и IBM предоставили описания своих будущих процессоров. Oracle обещает 16  cores и до 8 сокетов в одной машине.  IBM обещает до двух раз  больше производительности (вообще интересно, в чем они ее меряли ?) по сравнению с Power 7.

Для тех кто умеет считать, 16 cores T5 больше чем 8 cores Poweer 7+ ,  а учитывая processor core factor вопрос где же надо запускать нашу любимую СУБД можно считать закрытым.  Для тех кто умеет читать рекомендую мурзилку (ненавижу того,  кто так сложно ее написал!). L3 cache в Power 7+  в 10 раз больше, чем у T5.  Я люблю такие сравнения , в 10 раз больше -)))

Update 1. Простая мурзилка про Power 7+.  






Читать дальше...

IBM покупает Texas Memory Systems (TMS)



Если что-нибудь подобное представленное на картинке выше подключить к Power 740 ... я хочу такую машинку !  Если почитать сайт TMS можно обнаружить 1U flash с capacity 12 Tb. Проблемы хранилищ становятся всего лишь проблемой денег -)  (шутка)

PS В тоже время IBM работает над новым типом памяти...интересно какой подход победит в результате -)


Читать дальше...

AIX CPU Performance Management


Соверешенно потрясающий курс - AIX CPU Performance Management




Читать дальше...

Exadata Case Study - IDS

Прекрасная ссылка - IDS рассказывает о внедрении Exadata. Так им очень дорога репутация, то я очень верю их рассказу. Очень неплохие показатели - сразу заработало в 3 раза быстрее, компрессия помогла им сжать данные от 50% до 80%.

Для пытливых - указывается объем данных в 50 Tb, было приобретено 4 half Rack, в том числе для 'test and integration enviroment' + Expansion Rack.  

Это очень важно, что появляются такие документы, это дает представление о том, сколько реально железа прийдется купить заказчику. Так что, достижения TCO - это всего лишь вопрос скидок -) 


Читать дальше...

DNFS. Часть 2

Я уже писал про DNFS. Так вот, оказалось, что в  мае этого года Oracle анонсировал Sun ZFS Backup Appliance -  специализированное решение для  резервного копирования Exadata.  Вы конечно не поверите, но судя по документации,  этот самый Appliance подключается к Exadata ...по NFS.  Over Infiniband конечно же. Мое понимание (пожалуйста поправьте меня), что там IP over Infiniband. И этот самый Appliance просто представляет собой большую группу FRA в ASM.  Так вот следуюший логический шаг - это выкинуть Infiniband и перейти на 10GBE. Надеюсь,  Oracle так и сделает через год.

Для безденежных донов мне кажется это самый лучший способ  осуществлять резервное копирование их систем на основе  Linux x86  - цеплять внешний NFS как дисковую группу FRA в ASM.  Кстати FRA можно далее копировать на ленту!


Читать дальше...

The Walking Dead

Oracle через суд обязали продолжать выпускать новые продукты для Intanium.  Хочу напомнить, что Oracle никогда не отказывался продолжать поддерживать существующие продукты в соответствии с lifetime support policy.  Однако  Oracle уже ответил на решение суда: (простыми словами, точный перевод мне не по силам) "В суде не было ничего, чтобы изменило наше мнение и мы будем подавать аппеляцию".

Итого, радость преждевременна - обязать то обязали, но ничего реально происходить пока не будет. Причин для волнения у заказчиков Itanium тоже пока небольшие: как я уже писал,  для Oracle Database 11.2 Premier support закончится в 2015 году, а extended в 2018 (отличия смотри в Oracle Tech Support Policy). Для 10.2 -   дата конца света немного ближе, в 2013.


Читать дальше...

IBM AIX with Oracle Database performance: a beginner’s guide

Пока я тут с трудом раз в неделю пишу по 1 посту про Oracle Database on AIX коллеги успевают написать целую статью: IBM AIX with Oracle Database performance: a beginner’s guide. Кстати, и вовсе у не такой и beginner's как скромничает автор - там тебе и примеры с OSWatcher, и Nmon, и Responce Time формула. Главное - это наличие разобранных примеров.
Наверно, можно найти в этом документе какие-то шероховатости, но в целом я очень доволен и рекомендую к изучению.

В качестве демонстрации шероховатостей я захотел придраться вот к этой формуле (стр 3):
"
On Power 7 system performance is degraded when Number of Active Sessions  >  4 x Number of Cores x 3. 
"
4 - это максимально возможное число одновременных потоков для Power 7.
3 - это магическая константа, которую я также долго использовал для определения загруженности процессоров на старых Sun машинах - если на каждый поток приходится больше 3 ожидающих процессов  - значит  процессоры не справляются. Ну по порядку:

0. К сожалению, нет точной цифры сколько пользовательских задач (мы понимаем, что задачи это сессии Oracle)  на thread приводят к его 100% утилизации. Скорее, можно было бы говорить сколько потоков на ядро, но и таких оценок официально нет.  Представляется вероятным, что скорее всего это будет где то между 4 и  8. Другими словами, 4 ядра в режиме SMT OFF у меня выдерживали 32 одновременно работающие задачи (коэфф 8),  и эти же 4 ядра в режиме SMT 4 справлялись с 64 потоками (кoэф 4). Процессор Power 7 вообще потрясающе устойчив к большим загрузкам. 256 ядерная машина может работать в 100% загрузке затрачивая  на ядро порядка 7% (и это при некоторых отягощяющих обстоятельствах)

Есть еще одно обстоятельство: правду о загрузке LPAR дает только команда

lparstat

System configuration: type=Dedicated mode=Capped smt=Off lcpu=256 mem=2020352MB 

%user  %sys  %wait  %idle
----- ----- ------ ------
  0.5   0.7    0.3   98.5 


А правду о загрузке фического ядра дает специальный регистр PURR. Если вы задумаетесь, то поймете, что можно вполне увидеть 4 потока одного ядра загруженные на 100%, это же не значит, что ядро загружено на 400%, так ли  ?


1. Теперь  необходимо убедиться, а сколько действительно  работает потоков - режим smt может быть как выключен, так и включен в 2 и 4.  В AWR на AIX число потоков показывается в колонке CPUs, число ядер - в колонке  Cores -)


Однако, это самый простой случай в мире, когда у нас в нашу LPAR выделены физические ядра и наша LPAR - dedicated. Это значит, что другие задачи в других LPAR не могут претендовать на ресурсы наших ядер (Cores).

Однако весьма распространены ситуации, когда LPAR сделаны как shared , или dedicated donation. Надо быть тут очень внимательным чтобы не попасться в ловушку -)


2.   Average Active Sessions определятся как DB Time/Elapsed Time. Прекрасные ссылки (первая, вторая) из которых можно найти, что в DB Time входят не только время on CPU, но и I/O wait, и время на прочие ожидания.


Если рассмотреть как вырожденный случай, систему в которой сессии постоянно ждут ввода-вывода (db file sequencial read/db file scattered read) DB Time получится высокий и мы сможем прийти к заключению что проблемы с загрузкой процессоров, в то время как они с вводом-выводом.

Повторю - статья мне понравилась, рекомендую. Нормальный баланс между объемом информации и детальностью изложения. 


Читать дальше...

только правда, ничего кроме правды

В начале было слово. И слово это было: в 20 раз. В 20 раз быстрее. 
Источник: http://www.oracle.com/us/corporate/advertising/412m-exd-eurortl-sec-1556931.pdf

Правда, немного подумав, Oracle решил взять свое слово обратно, ну а затем,  что и  5 раз будет достаточно


И, чтобы уж совсем быть уверенным добавил, цитата: "Oracle, the “sponsor will select the queries for measurement"", что в переводе на русский язык значит: я сам выберу те запросы,  которые окажутся у меня быстрее.
Я также обратил внимание, что ничего не говорится о числе пользователей - предполагается запускать единичные запросы ? Или я что то пропустил ?

Но даже это не важно. Важно то, что несмотря на то, что Exadata, цитата: "Exadata is optimized for Oracle Data Warehouse and OLTP database workloads", сравнивать хотят именно производительность Warehouse. Это гениально, я считаю. Ответным ходом было бы сравнить производительность Netezza против T4 -)

PS. Тем временем те, кому надо просто и без геморроя, чтобы стало быстрее, ставят SSD диски. Проект миграции между Power 550 и Power 740 занял 6 часов.  Цитата: "end-of-year batch jobs dropping from a minimum of eight hours to just one hour".  Почему я про это вспомнил ? Да в этом европейском ритейлере наверняка стояла Power 550. Данных найти мне не удалось, но по времени выходит, что больше нечему там еще было быть. 


Читать дальше...

Oracle on AIX. Part 2. Memory.

IBM Development совместно с Oracle Development обнаружили, что при совпадении некоторых условий работа Oracle Database 11.2 на AIX 7 может замедляться по происшествии нескольких дней.  Проявления этого замедления могут быть разные, в том числе (но не обязательно) медленный login в базу данных через sqlnet. Или крайне медленные операции parse. Странные вещи короче, которые проходят после рестарта Oracle.

Условия:  AIX 7, TL0 или TL1, Oracle 11.2.0.3 (строго, в 11.2.0.2 такой ошибки не случается).

Рекомендация: выключить параметр shm_1tb_unsh_enable.

vmo -r -o shm_1tb_unsh_enable=0

Для того, чтобы разобраться есть ли в вашей системе эта проблема (обратите внимание еще раз на версии ОС и СУБД) можно выдать следующую команду:

echo "pfhdata -lsa" | kdb 

Если в обведенных красном колонках будут не нулевые значения - применяйте параметр.


Читать дальше...

Oracle on AIX. I/O. Part I

Update 1. disk_asynch_io=true (значение по умолчанию) рекомендуется для любых вариантов установки Oracle on AIX


Update 2. AIX6 + 10GR2 все в порядке, детали в комментариях. Кажется проблема только с 11gR2 .


Если вы эксплуатируете  Oracle on AIX вы обязаны прочитать вот эту whitepaper. Замечательный документ.  Однако в нем есть несколько тонких моментов. Один из них - рекомендации по монтированию файловой системы для файлов данных. Стр 55 в частности сообщает:


Это абсолютно правильное сообщение.
Oracle Support также  согласен с вышеприведенной рекомендацией (MOS ID 960055.1)


Здесь нужно сделать маленькое отступление, чтобы понять, почему так много уделяется внимания этому вопросу. Без указание опции cio производительность СУБД Oracle во многих слуаях была неудовлетворительной. C опциями монтирования по умолчанию происходило двойное кэшировние данных, в кэше файловой системы и buffer cache Oracle. Дополнительно. такая конструкция  потребляет лишнее процессорное время.   Кстати, это же справедливо  и для  СУБД DB2 -).   Многие заказчики почему-то забывали   про это, и данная рекомендация всегда была одной из первых которая выдавалась в случае наличия проблем.

Итак - вывод очевиден, теперь filesystemio_options=setall и никаких больше cio?
Однако инженеры IBM из Montpelier, считают по другому, их строгая рекомендация использовать  filesystemio_options=async и строго cio. Один из заказчиков попросил аргументировать.  Пожалуйста !

Итого, рассматриваем конфигурации:
#1, filesystemio_options=setall, опция монтирования rw
#2, filesystemio_options=async, опция монтирования  cio

Использовалась Oracle Database 11.2.0.2, AIX 7. Для начала мы провели эксперимент используется ли кэш файловой системы. Оказалось, что в обоих случаях он не использовался. Т.е. кажется что рекомендация #1 имеет право на жизнь. Правда при более внимательном рассмотрении оказалось, что при использовании рекомендации #1 ...не используется Async I/O. Мониторинг проводился командой:

iostat -A 1 | awk '/avg/ {if(x!=1){print; getline; print; x=1}else{getline; print}}'
aio: avgc avfc maxgc maxfc maxreqs avg-cpu: % user % sys % idle % iowait physc % entc
      0.0  0.0     0     0      48             0.3   1.8   97.9      0.0   0.0    4.4
      0.0  0.0     0     0      48             0.2   1.8   97.9      0.0   0.0    4.5

Данная команда показывает кол-во асинхронных операций ввода-вывода.  Опять нужно сделать небольшое отступление, что в AIX  есть несколько вариантов Async I/O. Исторически в AIX существали async I/O сервера и async I/O шел черех них (AIX 5). Однако позже (AIX 6) сделали  kernel async I/O для сырых устройств и, главное файловой системы.  Так вот оказывается, если у вас идет async I/O для сырых устройств то не нулевые значения появляются в колонке avfc, а если kernel file system asycn I/O то в колонке avgc.  В обоих случаях, если async I/O - kernel, то async I/O сервера (процессы aioserver)  не поднимаются.  Мониторить кол-во aio серверов удобно в nmon,  там показывают пиковое кол-во активных (в идеальном случае должно быть близким к 0).

При помощи команды lsof удалось выяснить, как именно открывает Oracle файлы данных в варианте #1:

oracle  39846142 oracle   12u  VREG     R,W,CIO,DSYN,LG,0x800000000;CX   39,1 1069555712   33 /oradata/data (/dev/dsvolkssdlv)



grep -i "0x800" vmount.h
#define VFS_DIO         0x80000000      /* O_DIRECT mount               */


На мой взгляд это объясняет все происходящее: вариант #1 работает с direct I/O, что для AIX не слишком оптимально.  Это значит, что все описанное в IBM whitepaper и MOS верно, но не самый оптимальный вариант. Вариант #2 сохраняет оптимальный ввод-вывод, формально называемый file system fast patch async I/O.

Резюме: пожалуйста продолжайте использовать опции монтирования cio для размещения файлов данных Oracle на AIX. 


Читать дальше...

DNFS

DNFS (direct NFS)  это новая возможность 11gR2, и надеюсь вы о ней слышали.   Все, что содержало  слово NFS для меня, как  способ хранения файлов  данных,  не существовало. Oracle тоже устал от не оптимальности протокола NFS  и решил включить поддержку прямо в ядро СУБД.

Все это было здорово, но как то меня не зацепило.  На этой неделе я  несколько раз натыкался на то, как же DNFS это здорово.

Для начала была статья  от компании Netapp, по ходу которой  выясняется, что DNFS over 10GBE  чуть ли не однозначно "рвет" все остальные комбинации.  Совершенно техническая статья, масса подобностей и параметров. OET на графике это число транзакций.


Я тут же вспомнил, что с помощью DNFS можно даже сделать  клон базы данных, не используя возможность storage (если storage этого делать не умеет). И наконец, благодаря опечатке Oracle в одном из патчей, можно было попробовать Hybrid Columnar Compression на таблицах, подключенных по DNFS. Это была бы серьезная заявка на победу DNFS над всеми остальными, но Oracle, к сожалению, опечатку исправил (я так думаю). 

Если вам все это понравилось, то рекомендую вот эту заметку для начала. 

Все круто. Можно брать. Остается две заминочки:

 - не нашел сравнения DNFS с iSCSI.
- не понятно как устроить требуемую балансировку сетевых адаптеров (или это все гораздо ниже лежит и можно выдать уже агрегированный link для использования Oracle  ? )

Желающие поделиться опытом - you are welcome !



Читать дальше...

UEK + 11.2.0.3

Update 1: Oracle Linux 6.3 RPMs Now Available

Cегодня уже каждый ребенок знает, что такое Unbreakable  Enterprise Kernel (UEK)  и почему нужно использовать его и только его.  Но сухой язык фактов хотелось бы разбавить чем-нибудь красивым, и лучшего источника,  чем блок Vim Coekaerts не найти. Здесь Vim рассказывает как они делали рекорд TPC-C, а здесь показывает  новую и фантастическую возможность запуска нескольких виртуальных машин, формально требующих больше памяти, чем есть в dom0 (Требуется OVM 3  и UEK R2). Кстати, несколько лет назад я встречался с Vim на одном из семинаров, и скажу вам, что он находясь в ранге тогда еще самого обычного Vice President of Oracle приезжал рассказывать про то, зачем Oracle стал делать свой дистрибутив  Linux. В майке и джинсах. Он успевает делать карьеру занимаясь любимыми техническими вещами. Я немного ему завидую.

Но вернемся к теме поста. Так как понятно, что я хотел поставить СУБД, то решил проверить сертификацию. И вовсе не зря, оказывается.  11gR2 сертифицирована пока только с UEK R1.

Проверим, что там с 11gR2 64 bit

Все в порядке, UEK 2 сертифицирована. Это даже и лучше, серьезные парни используют только 64 bit версии!

Так как я экспериментировал, то  я  использовал последнюю версию  VirtualBox, где указал для своей виртуальной машины следующие настройки:


(хинт: если начать имя виртуальной машины с комбинации OEL VirtualBox сразу понимает, о чем идет речь) 

Не забываем указать правильный media source, 


И через какие 10-15 минут у нас появляется Oracle Linux 6.
Посмотрим на uname -a и отметим, что в у нас по умолчанию теперь грузится ядро которое называется el6uek.x86_64 !  UEK теперь ядро по умолчанию ! Это удобно, кстати.

Как опять таки знает все прогрессивное человечество, Oracle позволяет бесплатно обновлять Oracle Linux, поэтому я это и немедленно выполнил


# cd /etc/yum.repos.d
# wget http://public-yum.oracle.com/public-yum-ol6.repo
# yum update 


Радость оказалось неполной, и мой kernel хоть и обновился, но все таки не оказался последним.

Пришлось явно указать, что проводить обновление и с репозитория UEK (а это отдельный репозиторий от Oracle Linux 6 !)  тоже:

[ol6_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL6/UEK/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6
gpgcheck=1
enabled=1



Наконец я увидел то, что хотел:


[root@ora112 ~]# uname -a
Linux ora112 2.6.39-100.10.1.el6uek.x86_64 #1 SMP Wed Jun 20 02:17:42 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

Дальше я попытался найти пакет oracle-validated, который в OEL5 устанавливал параметры ядра перед установкой базы данных, но ...не смог. После короткой перепалки с google, удалось осознать, что уже давно этот пакет называется oracle-rdbms-server-11gR2-preinstall. После его установки обновились правильным образом параметры ядра, завелся пользователь oracle и группы dba, oinstall.  Казалось бы, бери и ставить Oracle Database 11.2.0.3, доступный как patchset 10404530  с сайта support.oracle.com ? Э....нет.

Старожилы со стажем  помнят этот прикол, для остальных сообщу, что инсталлятору 64 bit версии нужны некоторые 32 bit пакеты. Спокойно, это все документировано, так что не нужно грязи. Чтобы поставить 32 bit пакеты удобнее всего опять таки воспользоваться yum, разрешив репозиторий 32 bit версии Oracle Linux 6.

Дальше все штатно, runInstaller, install software only, бум!  Что это так бумкнуло ?

INFO: /usr/bin/ld: skipping incompatible /u01/app/oracle/product/11.2.0/lib//libctx11.a when searching for -lctx11
/usr/bin/ld: skipping incompatible /u01/app/oracle/product/11.2.0/lib/libctx11.a when searching for -lctx11
/usr/bin/ld: cannot find -lctx11
collect2: ld returned 1 exit status


Не нашел пока, что с этим делать, но можно игнорировать. Далее не забываем в файле /etc/fstab установить строчку вида

shmfs      /dev/shm        tmpfs   size=2g         0

и вы готовы запускать dbca.  Опустим формальности, и попросим поставить базу клонированием, что гораздо быстрее. Бум!

ORA-06553: PLS-801: internal error [56319]

Как оказывается, это известная проблема и для нее есть workaround, но это когда клонирование делаешь сам, а его не делает  инсталлятор.  Обойти мне это удалось, только сделав custom database, что даже лучше, поскольку я смог выбрать только нужные мне опции ! Custome database всегда лучше !

И вот оно счастие:


[oracle@ora112 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.3.0 Production on Mon Jun 25 13:45:37 2012


Читать дальше...

бум !

В Апреле IBM анонсировала новые SSD диски и новую дисковую полку. 
Характеристики диска вы видете на картинке ниже (и даже есть сравнение с HDD). 



Обратите внимание на Latency - 0.2 ms, очень неплохо.  Диски эти сделаны по технологии eMLC, обычно на такие диски IBM дает гарантию 5 лет непрерывной записи.  Размер сектора обещают весьма странный 528byte, что дает надежду, что на них нормально заработают redo (redo на AIX поддерживают только 512 bytes, что пока делает не очень осмысленным их использование на SSD с размером блока 4K).  Кстати эти диски на write также производительнее чем HDD ! 

Ну и такие диски теперь можно поставить в 1U полку, которая как результат выдает  400K IOPS  (100% read 4K блоком)  и содержит 11 Tb сырых данных. 



К машине класса Power 740 (16 ядер, 2 сокета)  можно подключить две таких полки. Кстати, эти же две полки можно подключить одновременно к двум Power 740 - и вуаля, стройте кластер, хотите HA, хотите RAC - всего у нас будет 4 сокета, RAC бесплатно в составе Standard Edition.

Попробую суммировать - 800K IOPS, 9GB/s bandwith, RAC включен по вашему желанию.  Ба, да это же  Exadata Half Rack  !   Вместо 11 Linux машин (4 + 7)  за которыми нужно следить и патчить  - две (одна для варианта HA).   Любая версия Oracle которая вам нужна. Все данные уже на  SSD, ничего кэшировать не нужно.  Виртуализация. Сравнение по ядрам с Exadata 1/2 - читать здесь. Сравнение стоимости  - читать здесь.  Не хватает места  ? Никто не запрещает подключить к Power  машинкам еще и  Storwise, но и это скоро не понадобится, поскольку эти полки  научатся сами перекладывать горячие данные к себе на SSD с подключенных HDD полок.

Update 1.  World Record EBS Batch Benchmark. Использовалась машинка SunFire X4270 M3 подключенная к ssd дискам. Хочу напомнить, что  SunFire X4270 M2 - это Exadata storage cell. Те в собственных тестах Oracle  переключился на ssd вместе flash и Exadata storage. 


Читать дальше...

одной строкой

Здесь можно бесплатно скачать Expert Oracle Database Architecture, 2nd Edition by Tom Kyte.  Не знаю чего вы ждете, если еще не скачали.

А.Бачин представил новый журнал, который будет во многом посвящен технологиям компании Oracle.  Много полезного, очень рекомендую.  


Читать дальше...

какая то разводка ...

Извините, но слов из песни (в данном случае Шнура) не выкинешь. Сейчас поясню на конкретном примере. Когда приходят к заказчику и говорят - смотри какая у нас зверюшка, да мы тебе еще и скидку на лицензии дадим - если кто против, то я только за ( (С) Шнур опять таки). Но заказчик пошел очень умный. И говорит  - а вот если без вашей зверюшки,  сколько мне понадобится ядер ?  И вот тут начинается какая то разводка  сплошная техническая ошибка.

Конкретный пример - документ,  написанный для очень уважаемого заказчика очень уважаемым партнером. Уважаемый партнер берет Exadata Half Rack  в котором как мы знаем стоит 48 Intel Cores и ..немедленно к ним добавляет  еще ядра на ячейках - и говорит заказчику - смотри, сколько нам нужно ядер без Exadata !  Я когда документ  увидел, сразу вспомнил что с такой логикой уже где то встречался. А вот где:

">Во-первых в Exadata Half Rack не 48, а 132 ядра. (84 на ячейках)"  см комментарии к этому посту.

Я тогда подумал, что это шутка такая, складывать ядра в storage с ядрами для СУБД, чтобы унять так сказать сотрудника IBM -), но увидев это в документе для заказчика, понял, что в это действительно кто-то верит.

Правда заключается в том, что ядра в ячейках не обрабатывают sql запросы, не умеют их разбирать. Ядра в ячейках занимаются вводом-выводом, иногда компрессией-декомпрессией - но не sql запросами.

Наверно не все знают, что в современных дисковых массивах не гнушаются ставить те же самые Intel процессоры.  См например картинку слева - это контроллер дискового массива Storwise (производства IBM). Там установлен процессор Intel Jasper Forest. Кому нибудь приходило в голову складывать его Intel ядра при сайзинге ? Пока, к счастью нет. Предчувствую  радостные крики, что благодаря sql offload и компрессии меньше приходится работать центральным процессорам. Вполне вероятно, вопрос в том насколько нам это поможет -)



Возмем, для определенности, банковскую систему. Пик ее работы по CPU (а значит и запас на который нам нужно рассчитать ядра) приходится на день, когда все операционисты заняты вводом  платежей. Кэш базы данных максимально разогрет, все данные там, работаю только процессоры работающие на стороне СУБД. Процент ожидания ввода-вывода минимален.  По большому счету мне все равно что у меня на storage - у меня не хватает CPU на парсинг, логические чтения, блокировки.   Я привел график загрузки CPU одного из заказчиков - вы можете легко увидеть, что пик загрузки совпадает с минимум ожиданий по I/O.  Увы - ядра в storage, каим бы он не бы умным,  ничем не помогают в пике работы реального приложения. Возможно повторю всем известную истину, что расчет по CPU для любой системы делается для ее пиковой нагрузки, в прочее время нагрузка на CPU никого не интересует, в конце концов уплачено, и пусть они работают.


Вы думаете, это все что я хотел сказать ?  Нет - не дождетесь. Коллеги, которые так рьяно складывают ядра из разных частей своей системы совершенно упустили из виду,  что в Exadata стоит RAC.   Мелочь какая. В рассматриваемой нами Exadata Half Rack 4 узла кластера. Те кто ходил на семинары RAC Deep Dive for Developers знают, что масштабирование в кластере зависит от числа узлов. Для двух узлов коэффициент от 1.3 до 1.7, для 4- х узлов - в районе 3. В среднем по больнице.  Это значит, чтобы достичь такой же производительности как в single instance на 36 Cores в RAC  в 4-х узлах нужно взять 48.   Известное мне исключение из этого правила  - это SAP, приложение которое масштабируется практически линейно.  К сожалению это еще не все. 48 Cores нельзя в 4-х узловом кластере держать в загрузке 100% - во первых потому что кластер будет перегружаться, во вторых если один из узлов выйдет из строя, кто-то должен взять на себя его нагрузку. Итого, эффективная загрузка 48 Cores может быть только 75%.  Итого, пересчитываем, учитывая потери на RAC и максимальную возможную нагрузку - получаем 27 эффективных Cores для монолитной системы.  Или 54 потока.  Если вы вспомните я оценил коэффициент масштабирования в x3, возможно вам повезет и он будет выше, но оценка понятна.


Машина IBM Power 740  имеет 16 Cores на борту и 64 потока, а поэтому справится с пиковой нагрузкой так же эффективно как  Exadata Half Rack. Стоимости различаются на порядок.  Как же быть со storage ? В следующем посте я покажу вам storage c 800K IOPS подключенный к к Power 740 бесплатным бонусом вам пойдет виртуализация, которой просто нет в Exadata.

Exadata плохая ? Вовсе нет, в конце дня на ней можно будет очень быстро закрыть день, быстрее чем на обычном storage (за одним исключением).  Дорогое удовольствие правда получается, проще процедуру переписать если не устраивает.   RAC плохой ? Нет конечно, изначальная идея его была что его собирают на железе, которой ничего не стоит и тогда он оказывается выгоднее, чем один большой ящик.  Просто на основе отличных технологий сейчас занимаются какими то разводками -) 


Читать дальше...

IBM PureSystems

IBM официально анонсировало семейство систем Pure Systems.  На данный момент в семейство входят две системы: PureFlex (для запуска баз данных) и PureApplication (для запуска приложений). Все это лучше всего разглядывать на официальном сайте.


Наверно вам покажется, что вы это где то видели уже ? (здесь и здесь). И да и нет.  Маркетинговая идея мне кажется похожей, а вот дальше начинаются весьма серьезные отличия. Давайте на них и посмотрим.



Слева вы видите устройство PureFlex - Compute node, Storage node, Management appliance, networking. Первое и очень важное - в качестве Compute node могут выступать как x86 сервера, так и Power сервера. Второе важное отличие - Storage node это штатный и всем уже известный массив Storwise v7000.

Следующий важный вопрос - а что за ПО там стоит ? И тут (внимание, барабанная дробь) - вы увидите, что  IBM не ограничивает заказчика в устновке какого-либо программного обеспечения на PureFlex System. На выбор предоставляется 4 операционных системы (AIX, IBM i, Windows, Linux) и 4 технологии виртуализации (Power VM, KVM, VMware, Microsoft HyperV). Какую комбинацию использовать  выбирает заказчик. Лично я долго не мог поверить, что IBM практически никак не ограничивает заказчика в выборе,  пока не прочитал cnet, цитата:

"
IBM, however, aims to make PureSystems more open. The family of systems supports four operating systems, Power7 processors and Intel chips and four hypervisors.
"

Я хочу обратить ваше внимание, что компания которая придумала самые закрытые и проепритарные системы в мире (mainframe) теперь предлагает совершенно открытое решение! Мне кажется это очень важный поворот, гораздо важнее сколько там стоит дисков и карточек.

Еще одним серъезным отличием от систем другой известной компании является то, что одновременно с выходом PureSystems были опубликованы benchmarks, в частности SAP и TPC-C.

Хотите прочитать документацию обо всех компонентах системы ? Пожалуйста.

Но нам то с вами важно другое, как там запускать нашу любимую базу данных ? Что скажет Oracle ? Где сертификация на все это ? А вот где:



Так как Oracle сертифицирует операционные системы, а все компоненты PureFlex штатные, то никакой дополнительной сертификации не требуется - можно брать и использовать.

Вместо заключения: это совершенно открытая система, с возможностью делать так, как нужно уважаемому заказчику. Установливать то ПО, которое нужно заказчику и лицензировать именно столько ресурсов сколько нужно заказчику, а  а не все сколько стоит. Вы по прежнему можете взять и сделать свою систему 1С на Oracle Database в десять раз дешевле, чем вам предложит Oracle -). Техническое описание, тесты - все есть с самого начала.  IBM сделало открытую систему - это основное. Можно выбирать сколько вам нужно памяти, дисков, даже какие вам нравятся процессоры ! Это просто очень здорово.

PS  Сколько стоит ? - здесь есть оценки.  


Читать дальше...

Oracle on Oracle

После необдуманно брошенной фразы,  что заказчики массово переводят свои системы с Oracle Database   на технику IBM   я получил такой комментарий:
"
Oracle on Oracle -- оно и дешевле, и одного вендора потом трясти...
"

А ведь и действительно, должно быть так ?

Возьмем одно из самый популярных в нашей стране приложение  1C (см причем здесь 1С ниже в update 1).  Из  презентации Oracle  следует, что 8 ядер Power 7 на машине Power 750 могут вытянуть 950 пользователей. Много это или мало ? Судя по сайту 1C есть организации в которых по несколько тысяч пользователей 1C, максимум указанный на сайте - 5000.

Тогда давайте предположим что одна из таких крупных организаций решила выбрать железо для 1C.  Давайте предположим, что нам нужно ~4000 пользователей, а значит нам нужно добить нашу Power 750 до 32 ядер.  32 ядра Power это примерно 64 ядра Intel, но мы можем согласиться и на 48 ядер -)

Конечно интересно сколько будет стоит недавно сертифицированная интегрированная инженерная система от Oracle. 

В Exadata Half Rack стоит как раз 48 ядер, удачное совпадение !   По прайс листу Half Rack стоит:
Hardware $625K
Exadata software = 84 drives *10K = $840K
Oracle Software  48*0,5 *(47,500 + 11,500 +23,750 )  = 1,986,000

Итого: 3,451,000

Теперь внимание, Power 750 + DS5300 + лицензии Oracle (Standard Edition, Power 750 это 4 сокета, см ниже требованя к 1С) будет стоить... в 10 раз меньше  !   Я не ошибся, x10 раз меньше. У меня есть доступ к конфигуратору IBM -)

Вот вам и инженерные системы. Вся информация взята из материалов  Oracle.

Можно все что угодно рассказывать про smart scan и compression, можно играть скидками, разница в разы по прежнему останется.

Они могут быть лучше, быстрее, красивее  - но дешевле ? увольте -))

Как же продают такие инженерные системы ?  Возмем известный пример системы "Малина":

"
Кроме того, принималось во внимание, что в случае аварийного сбоя традиционный RAC-кластер СУБД Oracle способен возобновить работу через 15—30 минут, а в Oracle Exadata это происходит практически мгновенно.
 "

Нужно ли говорить, что предыдущее утверждение неверно ? Думаю, что читатели блога это знают и без меня. Искусство продаж, понимаешь -)))

Можно ли придумать обратную ситуацию - конечно можно, иначе бы все покупали только IBM -)

Update 1. Судя по комментариям, оказывается не все знали, что произошло эпохальное событие - сертификация 1C на Exadata.  Вот я попробовал прикинуть экономическую сторону этого решения. Ведь зачем то сертификацию  сделали, не так ли ?

Также в комментариях встал вопрос про использование опций Exadata для ERP. Цитата вот отсюда:

Update 2. Требования 1С к Oracle Database


Update 3. Oracle Application Standard Benchmark, откуда можно взять оценку производительности Intel - Power для ERP.


Читать дальше...