x10 или кое-что о событиях ожидания

Update 1. В комментариях отозвался автор презентации, цитата: "главное здесь слова, жесты, мимика, а презентация всего лишь фон". 

Я случайно обнаружил весьма занятную презентацию, которую судя по url читали на вот этом событии. Я обратил внимание на слайд 23, картинку с которого вы видите слева. Текст на слайде гласит:  "суммарное время на операции ввода-вывода сократилось в 10 раз". Это, несомненно потрясающий результат. Наверняка это еще и говорит о том что скорость обработки возрастет в 10 раз, не так ли ? Сейчас мы это узнаем. 

Приглядевшись к списку событий ожидания я увидел, что складываются яблоки и апельсины - события ожидания foreground процессов вместе с ожиданиями background процессов.  Для конечного пользователя конечно же интересны только события ожидания, которые могут испытывать foreground процессы. С какой там скоростью работает db writer (если он справляется) пользователям не важно. Складывать такие события ожидания это достаточно грубая ошибка, говорящая о непонимании как архитектуры так и  response time formula : 

Время ответа конкретной сессии определяется по формуле 
R = W + S, где W суммарное время ожидания данной сессии,  S суммарное время обслуживания сессии
Некоторые события ожидания вместе с примечанием (Foreground  и/или Background) процесс могут их испытывать (картинка из книги Oracle Wait Interface)

Мы видим что (например) log file parallel write это событие ожидания для background процесса и к поэтому никак не может влиять на производительность сессии конечного пользователя.   Но автора презентации это не останавливает и он суммирует это время с  db file sequencial read.
Таким образом изо всех сил складывались события, в том числе не относящиеся к пользовательским сессиям.  Повторюсь, такая суммарная цифра бессмысленна, кроме как блеснуть ей в PowerPoint.
Теперь давайте посмотрим на действительно пользовательские события ожидания: 

- db file sequental read было 5.91  ms а превратился в cell single block physical read c 0.91 ms 
- log file sync было 26 ms а превратилось в 12 ms 
- db file scattered read было 5.3 ms а превратилось в cell multiblock physical read 2.04 ms 
- read by other session было 7 ms,  а стало 14 ms 
- direct path read - было 3 ms, стало 1 ms (хотя они все должны были бы превратиться в cell smart table scan)

Что можно сказать - у базы данных явно проблемы с log file sync, и следовало бы обратить внимание на эту проблему.   Read by Other Sesson =  7 ms это очень много, больше времен ввода-вывода. Это надо срочно исправлять, искать сегмент  за который идет такая конкуренция. Улучшились времена по вводу - выводу ? Да, соглашусь.  Теперь, если вы обратите внимание на предыдущий слайд, стр 22, вы увидите что DB CPU это 89% от всего времени, а I/O ~6%. На основании имеющихся данных, у данной базы I/O не является узким местом.Показатель Parse Cpu to Parse Elapsed ~50% косвенно подтверждает что присутствуют  проблемы с процессорным временем (возможно из-за парсинга)

Возвращаясь к Response time formula Service time занимает у нас 89% времени ожидания (например logical reads, parsing), мы же в это время пытаемся сократить в 10 раз I/O  что не даст нам видимого пользователями эффекта.

PS Мне стало интересно, как же Oracle допустил такой ляп ? Поиск подсказывает,  что данная презентация сделана на основе вот этой, с OpenWorld. И конечно оригинальная версия не содержит ничего такого и никаких в 10 раз. Видимо 10 раз появляется исключительно в результате пересечения атлантического океана -)

16 комментариев:

  1. Уважаемый Дмитрий,

    никогда не считал, что по вспомогательным наглядным средствам можно понять как и что рассказывал выступающий. PowerPoint это всё же именно вспомогательное наглядное средство. И главное здесь слова, жесты, мимика, а презентация всего лишь фон. Поэтому мне не совсем понятно почему в последнее время вы упорно выискиваете неверно установленные точки и запятые в pdf-ах чужих презентаций. Хотелось бы больше конструктива по сути, а не на порой совсем не значащих деталях. С интересом жду завершения Вами работы, которая называется cpu speed - work in progress

    - Очень странно, что разобравшись в деталях предоставленного фрагмента AWR отчета Вы не обратили внимание, что числа на этих двух слайдах разные, т. е. данные вполне могут представлены из, по крайней мере двух разных запусков. А еще особенность данных в таблице в том, что это агрегация с 4-х экземпляров Oracle RAC. Не будучи уверенным, что данные с разных слайдов в принципе можно сопоставлять, нельзя делать выводов.
    Соответствия между слайдами нет — был выдернут случайный AWR и представлен он был с одной единственной целью — продемонстрировать число, которое обведено красным. При этом можно было безбоязненно взять любой отчет с любого теста, которые мы проводили в течении этого года — результат практически один.

    - Что касается корректности сведения в одну таблицу ожиданий foreground и background процессов, то тут возможно вы правы. Но сути это не меняет, в связи с тем, что вклад в общие ожидания background процессов ничтожно мало - 0.65% из 32.69% для продуктива. В то же время на тестовом стенде это значение выше. Получается «несколько» другая цифра – гораздо больше 10;

    - На тестовой системе действительно были проблемы, но очевидно, что проблемы эти были связаны не с вводом/выводом. И проблем с «log file sync» нет совсем. 0.4% - это не проблема. Что касается 12мс, так это связанно совсем с другими проблемами, а не с дисковыми операциями — гляньте «log file parallel write», а там вполне допустимый ~3ms.

    - По поводу «источника»: 4 слайда из 28 основных (к тому же в самом конце) — слишком смело, что бы утверждать, что источником была именно та презентация. FUD

    ОтветитьУдалить
  2. Вячеслав Рассказов22/5/11 1:11 PM

    log file parallel write является составной частью log file sync и входит во время отклика. Часто забывают про этот double counting. Столь большая разница между log file parallel write и log file sync может быть связана с перегруженными CPU.

    ОтветитьУдалить
  3. >og file parallel write является составной частью log file sync и входит во время отклика. Часто забывают про этот double counting.

    Я был бы благодарен за какую-нибудь ссылку на эту тему. Я про это забыл

    >большая разница между log file parallel write и log file sync может быть связана с перегруженными CPU.

    Wow ! Я тоже думаю что CPU были перегружены, но как вы сделали этот вывод? Можете пояснить ?

    ОтветитьУдалить
  4. >И главное здесь слова, жесты, мимика, а презентация всего лишь фон

    Спасибо за пояснения. К жестам и мимике претензий нет.

    ОтветитьУдалить
  5. Вячеслав Рассказов23/5/11 1:13 PM

    >Я был бы благодарен за какую-нибудь ссылку на эту тему. Я про это забыл

    Хорошая презентация по LGWR есть у Tanel Poder:
    http://files.e2sn.com/slides/Tanel_Poder_log_file_sync.pdf
    >Wow ! Я тоже думаю что CPU были перегружены, но как вы сделали этот вывод? Можете пояснить ?
    Log file sync состоит из работы на CPU, нахождения в runqueue foreground процесса и записи на диск LGWR (IO). Обычно на CPU тратится меньше времени, чем на IO. При перегруженных CPU, больших очередях, часто Log file sync растет, при неизменном log file parallel write. Есть правда еще piggyback commit, про который хорошо написал James Morle:
    http://jamesmorle.wordpress.com/2010/06/02/log-file-sync-and-awr-not-good-bedfellows/

    ОтветитьУдалить
  6. Анонимный23/5/11 3:11 PM

    [булшит on]

    В UK наступил lunch time и теперь настала моя очередь "потявкать в комментариях" :^)

    Берется случайная реплика из поста, например вот эта:

    >> Видимо 10 раз появляется исключительно
    >> в результате пересечения атлантического океана -)

    Так... И начинаем прикапываться...

    Берем какой-нибудь документ в формате PDF, например вот этот:

    http://www.oracle.com/us/products/database/exadata-reference-booklet-400018.pdf

    И тупо цитируем:

    "BNP Baribas: Runs 17x Faster on Exadata"

    "Thomson Reuters: Runs 11x faster on Exadata"

    Что мы имеем: Центры данных BNP Baribas и Thomson Reuters находятся в Европе, т.е. с нашей стороны атлантического океана, поэтому предположение "видимо 10 раз появляется исключительно в результате пересечения атлантического океана" не верно.

    "Мне стало интересно, как же IBM допустил такой ляп?"

    [булшит off]

    ОтветитьУдалить
  7. Обнаружил, что некто Дмитрий Волков писал про десятикратное ускорение на Exadata еще в 2009 году.
    http://www.dsvolk.ru/oracle/wp/tech/exadata/Exadata2_technical_deep_dive.pdf

    Наврал?

    ОтветитьУдалить
  8. Андрей,

    >писал про десятикратное ускорение на >Exadata еще в 2009 году.

    Ты действительно не видишь разницы между этими двумя презентациями? Спустя 2 года я горжусь той презентацией, она клевая - спасибо что поднял ссылку. У меня даже просили перевести ее на английский -)


    > Наврал
    Exadata дает и x10 кратное и x17 кратное ускорение как написано в документах Oracle. И это факт. Маркетинг Oracle всегда сообщает факты. Одна маленькая деталь - что это означает: x10 кратное ускорение чего и по сравнению с чем. В данном случае в презентации на которую я указал есть грубая ошибка и это тоже факт.

    Спасибо что написал.

    PS Я тут почитал еще презентации ...

    ОтветитьУдалить
  9. Анонимный23/5/11 11:48 PM

    Forrester Research выпустил еще одно исследование, где приводятся данные реальных заказчиков по улучшению производительности и коэффициентам компрессии Exadata:

    http://www.oracle.com/us/corporate/analystreports/infrastructure/forrester-exadata-402072.pdf

    До уровня анализа конкретных событий ожидания отчет не опускается. Просто приводятся цифры во сколько раз ускорилось и во сколько раз сжалось. По сравнению с чем тоже не указывается. Цифры сильно "прыгают", что понятно.

    Приведены также некоторые мысли про аналогичные решения у других игроков, например у IBM после покупки Netezza и про перспективы. Просто большая картинка рынка, но все-таки с конкретными цифрами.

    Например, мне всегда было интересно от чего отталкиваться при подсчете экономической выгоды от повышения управляемости системы при переходе на Exadata. В этом отчете есть цифра: "Some (customers) claim a 20% lower administration requirement with Oracle Exadata especially around tuning, backup, and consolidation." Понятно, что это из серии "средняя температура по больнице", но когда я буду делать свой следующий расчет я наверное сошлюсь на данные Forrester. Все-таки это независимое исследование. Если у Заказчика будет свое мнение о цифре в 20%, то я потом подставлю цифру заказчика.

    Может кому будет интересно.

    Кстати, отчет сделал тот же аналитик, который занимается метрикой количества баз данных на одного DBA. Был про это пост недавно (см. пост с меткой Databases-Per-DBA)

    ОтветитьУдалить
  10. >Forrester Research

    Риторический вопрос - какое отношение этот доклад имеет к данному посту ? Мы понимаем что никакого.

    Я уже написал несколько раз что полностью подписываюсь под числами 10, 17, 32 и 54. Все эти числа были измерены, мне также понятно. Подписываюсь. У меня нет претензии ни к одному слайду на котором просто написано в 10 раз.

    Я прошу только одного - расскажите мне с данными какого хрена эти числа значат.

    Хорошо, читаю твой доклад. Sogeti USA, (страница 5) использовала 6 GB of RAM на T5240. Переехала на half Exadata. Если я не ошибся (из доклада не очень ясно) они увеличили память под базу данных в (4 * 70 Gb) в 40 раз (?) Ничего нет удивительного что у них все стало работать в 20 раз быстрее. И я тут же подпишусь под этим. Вы можете везде публиковать что человек из IBM согласен что Exadata работает в 20 раз быстрее.. потому что вы поставили в 40 раз больше памяти. Упала утилизация CPU в 10 раз ? Конечно. Я что буду спорить ? Это факт, потому что вместо не слишком подходящих под СУБД T2 процессоров вы поставили Xeon (это я же писал в блоге ранее).


    Я прошу чтобы люди выступающие на технологическом дне Oracle знали про события ожидания, это не сложно, можно книжку почитать и приводили AWR полностью. Давайте без мимики и жестов...

    PS
    Как только "IBM will roll out an OLTP database appliance based on DB2 and the Netezza"
    я вам расскажу как он работает. И если он будет работать хреново - я так и напишу, будьте уверены

    ОтветитьУдалить
  11. Проглядел упомятнутую здесь презентацию на явные ляпы
    http://www.dsvolk.ru/oracle/wp/tech/exadata/Exadata2_technical_deep_dive.pdf

    Безусловно они есть.
    слайд №17: Производительность: • От 10X для хранилищ данных • До 20X для OLTP приложений - хотелось бы узнать источник такого смелого заявления об увеличении производительности OLTP в 20 раз, ну или обоснования автора утверждения

    слайд №19: Sun Oracle Database Machine - ... исключает необходимость проектирования хранилища - очень оптимистично, хранилища больше не нужны, просто валим все данные в одну кучу. Это настоящий прорыв :)

    слайд №35: Кэш БД (DRAM ) • 576 GB сырой емкости • До 4TB сжатых данных (HCC) - хотелось бы поподробней о формуле вычисления сжатых данных в кэше буферов. Даже, если взять средний коэффициент сжатия в 10 раз, то получается, что из 576 GB в кэш необходимо выделить 400GB. При этом на ОС, PGA и другие области памяти экземпляра остается 176GB, что составляет 22GB на узел. Это еще без учета того, что HCC всё же позиционируется для данных, которые в основном не предназначены для хранения в кэше буферов. Остается удивляться, что автор не понимает основ работы хранилищ данных.

    Уверен, что на этом блоге еще много каких ляпов можно найти.

    ОтветитьУдалить
  12. >слайд 17
    http://www.oracle.com/us/corporate/press/036688

    >слайд 19
    MOS 1094934.1

    >слайд 35
    MOS 1067520.1

    >много каких ляпов можно найти.
    Конечно, посты Данилова полны ляпов -)

    ОтветитьУдалить
  13. Анонимный24/5/11 12:28 PM

    Как я и думал – имитация аргументированного ответа
    http://www.oracle.com/us/corporate/press/036688
    А можно по подробней? Где именно Вы здесь увидели 20x для OLTP?
    Если бы Вы разбирались в архитектуре Exadata и тонкостях формирования "Время ответа конкретной сессии", то наверняка бы знали, что оснований для 20x увеличения производительности OLTP у Exadata просто нет. Для ускорения дисковых чтений коротких OLTP запросов прекрасно работает Smart Flash Cache, но на реальных тестах тяжелых OLTP, которые я видел, время одиночного чтения составляет 0.7-0.8 мс. Вместе с тем, на подобных тестах на IBM и HP с использованием HighEnd дисковых массивов это показатель крутится в пределах 5 мс. Т.е. имеем ускорение максимум в 7-8 раз. Т.е. даже, если исключить влияние других факторов "Время ответа конкретной сессии" теоретически выше этого Вы не поднимитесь. Ну, если конечно не рассматривать варианта простого расширения системных ресурсов, но вы этот подход при сравнении недавно здесь раскритиковали в пух и прах
    Реальные же тесты показывают примерный паритет High-End систем. Но Exadata практически дает гарантию огромного запаса по вводу/выводу + возможность гибкого расширения + консолидации с помощью I/O Resource Manager + использования smart scan для выполнения в отчетов и пакетов в реальном времени.

    MOS 1094934.1
    Вообще-то документ называется “Oracle Sun Database Machine Application Best Practices for Data Warehousing”, что в корне противоречит самому Вашему высказыванию. Не могли бы Вы привести конкретные фразы, из чего вы сделали такие удивительные выводы. И неужели Ваш гигантский опыт позволил Вам просто реально поверить в подобную чушь?

    MOS 1067520.1 - Oracle Sun Database Machine Performance Best Practices
    Пытаюсь в этом коротком сугубо техническом документе найти маркетинговую чушь про 4ТБ в КЭШе буферов.
    Вообще ни в одном документе не встречал подобной ерунды. Ваше изобретение?

    ОтветитьУдалить
  14. >20x для OLTP
    Откройте для себя уже свои корпоративные веб сайты:
    http://www.sun.com/launch/2009-0915/index.jsp

    Фразу
    "20x increase in random I/O"

    достаточно ясно видно ?

    ОтветитьУдалить
  15. В самом блоге вы высокомерно заявили, что увеличение скорости ввода/вывода в N раз еще не значит увеличения в N раз производительности в целом, а там написано "20x increase in random I/O", а у Вас про OLTP - Это раз!

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

    Как на счет других ляпов из презентации, которой Вы гордитесь? Они гораздо сногсшибательней, что эти пресловутые 20x. Ведь реальную скорость можно только на тестах измерить, а тут концептуальная чушь!

    ОтветитьУдалить
  16. >Это раз!

    В слайде написано: "до 20x раз" а не "в 20x раз"
    Посмотрите внимательно.

    Мне понятно ваше внезапное желание поймать меня на презентации 2009 года когда Exadata еще не было в России и не было ни у кого доступа к ней, но это не получится. И вовсе не потому что я большой эксперт -)

    Я закрываю тут комментарии, продолжим где-нибудь еще. Спасибо.

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