powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ITL waits
25 сообщений из 26, страница 1 из 2
ITL waits
    #39673605
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то голова не варит уже, поэтому спрошу здесь.

AWR показывает большое число ожиданий "ITL waits" на сегменты индекса. Подампил крайние справа блоки этого индекса и везде выделено 169 слотов (половина блока).

У нас конечно высокая конкуренция, но не более 80 сессий в параллели. Ну край 100. Откуда могут быть ожидания?

или я чего-то кардинально не понимаю?
...
Рейтинг: 0 / 0
ITL waits
    #39673618
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.Подампил крайние справа блоки этого индекса и везде выделено 169 слотов (половина блока).
У нас конечно высокая конкуренция, но не более 80 сессий в параллели. Ну край 100.
...
Рейтинг: 0 / 0
ITL waits
    #39673619
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.,

А версия какая?
...
Рейтинг: 0 / 0
ITL waits
    #39673693
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оракл не обязан проверять каждый слот свободен он или нет , особенно если он еще и помечен как грязносброшенный.
Он либо создаст новый если есть место, либо выброчно тыкнется в несколько (или несколько десятков, хз) , если не напорется на свободный, то немножко поспит и начнет заново.
Поэтому при интенсивной нагрузке наличие свободных слотов не гарантирует отсутствие ITL waits
...
Рейтинг: 0 / 0
ITL waits
    #39673743
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАвыброчно тыкнется в несколько (или несколько десятков, хз) , если не напорется на свободный, то немножко поспит и начнет заново.
Поэтому при интенсивной нагрузке наличие свободных слотов не гарантирует отсутствие ITL waits
Эээ... Наташ, пруф не затруднит?
...
Рейтинг: 0 / 0
ITL waits
    #39673751
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ITL waits
    #39673752
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теоретический вопрос: неизбежны ли Deadlock'и?
Это с участием Наташи (еще маленькой )
Но где-то был еще топик, где (опять же Ааз, но вроде как с семинара Льюиса) отмечал, что пройдя до конца списка ITL, на последнем процесс засыпает уже без таймаута, а просто навсегда, ждет когда освободится именно этот слот
...
Рейтинг: 0 / 0
ITL waits
    #39673753
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ITL waits
    #39673757
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровО, спасибоГуглу. ITL waits - первая страница.
...
Рейтинг: 0 / 0
ITL waits
    #39673761
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да оно не сильно интересно, пока это не твоя проблема
Типо примерно расклад знаешь, а как оно по разным версиям в частностях -- за всем и не уследишь (пока сам не наступишь)
...
Рейтинг: 0 / 0
ITL waits
    #39673763
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и ТС сразу -- перестроить все сегменты индекса (например в ONLINE) есть возможность?
Может и поможет...
...
Рейтинг: 0 / 0
ITL waits
    #39673772
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicВячеслав ЛюбомудровО, спасибоГуглу. ITL waits - первая страница.
Вот и я о том...
Если только Ната, конечно, не восприняла конструкцию вида "it probes, round-robin, the available slots" как
DВАвыброчно тыкнется в несколько
что очень далеко от истины, поскольку алгоритм Round-Robin - "Робин, слоняющийся по кругу" - это просто закольцованный полный перебор. Который Oracle дооснастил алгоритмами искусственного снижения конкуренции за сам список ITL при сверх-высокой (нерасчетной) конкуренции за блок.
...
Рейтинг: 0 / 0
ITL waits
    #39673777
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем так -- при куче пользователей для каждого из них выбор является случайным
...
Рейтинг: 0 / 0
ITL waits
    #39673782
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ната уже давно подзабыла подробности :)
так что не буду спорить, тем более что за изменениями в версиях фиг уследишь )
...
Рейтинг: 0 / 0
ITL waits
    #39673786
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выборочно тыкнется в несколько - это до засыпания.
где-то у меня отложилось что не на первом же занятом заснет
а откуда дровишки - уже не вспомню )
...
Рейтинг: 0 / 0
ITL waits
    #39673797
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАвыборочно тыкнется в несколько - это до засыпания.
где-то у меня отложилось что не на первом же занятом заснет
а откуда дровишки - уже не вспомню )
Нат, оно ПЕРЕБЕРЕТ ВСЕ слоты ITL в блоке (а не потыкается), не найдя среди них свободного - попробует выделить новый, не сможет - пойдет ПЕРЕБИРАТЬ ITL еще раз, но уже делая паузы (конкретное поведение на этом этапе зависит от версии), в конце концов - встанет в очередь к последнему слоту ITL, на котором сериализуются (отстаиваются) неудачники в ожидании снижения нагрузки.
Однако чтобы это случилось - активных транзакций в блок должно одновременно прийти больше, чем можно разместить слотов ITL.
А это зависит от наличия свободного места в блоке и числа транзакций.
...
Рейтинг: 0 / 0
ITL waits
    #39673800
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут-то и проявляется задница со 169 (максимум для 8k) слотами
Особенно, если гарантировано (см. пост от Elic) никогда не было больше 20 одновременных транзакций
Т.е. теория как-то с практикой не очень бьется
...
Рейтинг: 0 / 0
ITL waits
    #39673840
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровВот тут-то и проявляется задница со 169 (максимум для 8k) слотами
Особенно, если гарантировано (см. пост от Elic) никогда не было больше 20 одновременных транзакций
Т.е. теория как-то с практикой не очень бьется
1. 169 слотов - это максимум теоретический. Фактический максимум зависит от свободного места.
2. У события есть параметры. Они, если мне не изменяет склероз, позволяют (p2,p3) определить конкретный блок таблицы или индекса, задампить его и посмотреть предметно.
3. Утверждение "никогда не было более 20 одновременно" - суть оценочное суждение, не подкрепленное фактически.
Транзакции могли быть долгими, а могли короткие столпиться в блоке индекса и не быть замеченными, к разбору полетов остались только следы "очереди неудачников".

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

Если детали не очень интересны - то можно просто перестроить индекс со скорректированными значениями pctfree и initrans.
...
Рейтинг: 0 / 0
ITL waits
    #39673948
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousНат, оно ПЕРЕБЕРЕТ ВСЕ слоты ITL в блоке (а не потыкается), не найдя среди них свободного - попробует выделить новый, не сможет - пойдет ПЕРЕБИРАТЬ ITL еще раз, но уже делая паузы (конкретное поведение на этом этапе зависит от версии), в конце концов - встанет в очередь к последнему слоту ITL, на котором сериализуются (отстаиваются) неудачники в ожидании снижения нагрузки.
Однако чтобы это случилось - активных транзакций в блок должно одновременно прийти больше, чем можно разместить слотов ITL.
А это зависит от наличия свободного места в блоке и числа транзакций.Простейший тест
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
create table qz_tab as select level as n from dual connect by level <= 170;
select count(distinct dbms_rowid.rowid_block_number(rowid)) from qz_tab;
set timing on serverout on
declare
  i int := 0;
  procedure Lck
  is
    pragma autonomous_transaction;
    m int;
    t timestamp := systimestamp;
  begin
    i := i + 1;
    select n into m from qz_tab where n = i for update nowait;
    if systimestamp - t > interval '0.5' second then
      dbms_output.put_line(i||') '||(systimestamp - t));
    end if;
    Lck;
  end Lck;
begin
  Lck;
exception
  when others then
    dbms_output.put_line('i='||i);
    raise;
end;
/
/
/
drop table qz_tab;

подтверждает это на версиях начиная с 10gR2 как минимум:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
COUNT(DISTINCTDBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID))
---------------------------------------------------
                                                  1
i=170
declare
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at line 21


Elapsed: 00:00:00.07
i=170
declare
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at line 21


Elapsed: 00:00:00.03
i=170
declare
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at line 21


Elapsed: 00:00:00.03

...
Рейтинг: 0 / 0
ITL waits
    #39674292
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие люди почтили вниманием мою ветку!

ORACLE 12.1.0.2

Слава, началось все собственно с того, что решили поднять initrans с 25 до 50. В ожидании окна решил подампить блоки, помня про тему Elic-а ожидал там уже увидеть что-то около 60 слотов. А тут максимум.

То есть ребилдить все равно. Индекс станет меньше. А с края как я понимаю он в скорости все равно разрастется до 169 слотов. ?
...
Рейтинг: 0 / 0
ITL waits
    #39674302
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разрастется только при определенных условиях, а затем будет наследоваться при делении
...
Рейтинг: 0 / 0
ITL waits
    #39674315
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous можно просто перестроить индекс со скорректированными значениями pctfree
думал про вариант:

1. перестраиваю индекс с pctfree 0.
2. меняя pctfree на 99

с учетом того что индекс только по дате (значений все равно в блок набъется дофига) - весьма сомнительная идея. кроме этого индекс придется постоянно ребилдить чтобы не распухал.
...
Рейтинг: 0 / 0
ITL waits
    #39674322
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
х.з.То есть ребилдить все равно. Индекс станет меньше. А с края как я понимаю он в скорости все равно разрастется до 169 слотов. ?reverse не предлагать?
...
Рейтинг: 0 / 0
ITL waits
    #39674324
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pctfree для индекса действует только на момент по/перестроения
...
Рейтинг: 0 / 0
ITL waits
    #39674331
х.з.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ITL waits
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]