|
|
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Ситуация. Сервер - 11.2.0.3.0. Есть insert, который за 2-10 минут в зависимости от параметров из полусотни таблиц выкачивает гигабайты данных, нужным образом агрегирует и складывает пару сотен строк в таблицу агрегатов. При запуске в параллель до 20 сессий нагрузка не чувствуется. Если запускать 30 и больше сессий, начинает ощущаться нагрузка - увеличивается время выполнения и инсертов и прочих работающих сессий. Однако утилизация процессора в пределах 20%, а дисковый обмен < 50% от физической мощи. Админ собрал статистику выполнения инсерта - 300 Мб текста и порекомендовал дефрагментировать некоторые таблицы. На вопрос "чем занят сервер, если у него свободно более половины ресурсов" админ не ответил. Лишь дополнительно прокомментировал, что запросы, обрабатывающие такие объемы данных, априори не оптимальны. Т.к. совокупное время расчета при использовании 20 сессий - ~12 часов, а при 35 сессиях - ~5 часов, то есть желание научить сервер лучше использовать физические ресурсы. Вопрос. Реально ли в такой ситуации определить узкое место сервера? Если да, то куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 14:40 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
Реально. Копать AWR-отчет. Три штука за три периода: 1. без ETL 2. ETL в параллель 20 3. ETL в параллель 30 Сравнивать. Много думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 16:32 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, спасибо. На один из AWRов я глянул, но для меня это просто много буковок. А у админа похоже было куда поработать, но он не решился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 16:54 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
Egoрно для меня это просто много буковок. Вариантов два: - освоить букварь и хотя бы сравнительный анализ - нанять специалиста (полагаю, тот же xtender не откажет ...за +-скромное вознаграждение ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2018, 16:58 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
эти 50% времени сервак гоняет головки (грубо) от начала базы к концу. спросите у админа про latency (среднее/максимальное время ожидания, глубину очереди чтения....) в зависимости от количества сессий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 15:50 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
Egoр....и складывает пару сотен строк в таблицу агрегатов. для оракла 200 записей вставить - фигня значит проблема не с инсертами, а с агрегирующими селектами, по нормальному, надо те данные, что уже не будут изменяться, например, за прошлые периоды, агрегировать и материализовать а селектить только свежие данные, инсертить дельту, юнионом собирать тогда может и параллель не понадобится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:52 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
ну или, разбить данные на диапазоны, например, по контрагентам (городам, неделям) и т.д. и запускать для каждого диапазона отдельный процесс то бишь DIY parallelism ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2018, 16:55 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
Почитать миллсапа Можно зайти в EM на 2 вкладку и там сделать ASH report, только там иногда защита стоит на броузере и белый экран выходит, надо отключать Смотреть Top User Events Можно еще самому протрассировать одну из сессий и собрать с нее tkprof Трассировка чужой сессии 1)Убедитесь, что параметр TIMED_STATISTICS установлен в TRUE cmd >sqlplus sys/pwd as sysdba sql>show parameter timed_statistics 2) Убедитесь, что задан достаточный размер файлов трассировки: sql>show parameter max_dump_file_size 3) Необходимо выбрать список сессий, подключенных к базе данных, лучше выбирать по имени схемы: sql> select OSUSER,SID,SERIAL#,USERNAME,TYPE from v$session where username like '%X%'; 4) Запустите трассировку сессии: sql>execute sys.dbms_system.set_ev(sid, serial#, 10046, 12, ''); Вместо SID и SERIAL# подставьте значения из запроса 5) Запустите выполнение отчета, подождите, пока он выполнится, период лучше задать поменьше. 6) Остановите трассировку сессии: sql>execute sys.dbms_system.set_ev(sid, serial#, 10046, 0, ''); 7) Выполните поиск пути к файлам трассировки: sql>select value from v$parameter p where name='user_dump_dest'; В версии 11g обычно C:\oracle\diag\rdbms\orcl\orcl\trace. Откройте файл трассировки. Внутри файла можно найти SID и SESSION# *** SESSION ID:(428.14068) 2016-04-21 09:19:26.302 Интерпретация трассировок Выполнять из директории с трассировкой или писать полные пути к файлам. cmd>tkprof tracefile.trc reportfile.log sort=prsdsk (exedsk,fchdsk) – отсортировать запросы в порядке занятого времени Лучше всего смотреть в конце полный список ожиданий, потом уже смотреть каждый запрос отдельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 12:22 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousEgoрно для меня это просто много буковок. Вариантов два: - освоить букварь и хотя бы сравнительный анализ - нанять специалиста (полагаю, тот же xtender не откажет ...за +-скромное вознаграждение ) +1 а так-то вам сейчас вариантиков накидают, фантазия у всех отменная, задеретесь проверять версии ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 15:05 |
|
||
|
Нужен совет по анализу нагрузки сервера
|
|||
|---|---|---|---|
|
#18+
DВА, Я уже смирился. После слов andrey_anonymous стало понятно, что дело сложное запутанное, которое без дополнительных ненужных мне усилий с моей стороны никуда не сдвинется. Может если кого-то у нас это станет сильно парить, тогда глядишь поднажмем с дружками на наших админов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2018, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39648834&tid=1883807]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 507ms |

| 0 / 0 |
