|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
Всем привет! У нашего сервера Oracle произошло резкое падения производительности. Абсолютно все запросы выполняются в десятки раз медленнее. DBA у нас на аутсорсинге и он явно не справляется. Я хочу сам попытаться найти причину. Но у меня есть возможность только выполнять запросы с правами администратора. Другие инструменты мне не доступны. Как можно с помощью запросов определить хотя бы общее состояние сервера? И, по возможности, найти причину падения производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:24 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 09:49 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
Как минимум посмотреть список сессий. Какие запросы сейчас выполняются. Вполне возможно, что банально кто-то 100500 раз запустил "тяжелый" отчет, вот серверу и поплохело Но вообще, вопрос слишком фундаментальный. В документации администратора все view описаны. Ну и есть тулзы (я не админ, т.ч. конкретнее не подскажу), которые "для чайников" показывают какую-то статистику с сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:26 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
p.s. с отчетами в свое время "боролся" с помощью Resource Manager'а (требуется Oracle Enterprise Edition). Отчетным запросам, которые долго выполняются, снижал приоритет до минимума. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:29 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
ПавелZZ, могли поплыть планы напр, было заточено на NL, но оракля предпочел hash почему, причины могут быть разными 1) таблицы выросли, и бд решила что так дешевле 2) пересобрали/устарела статистика 3) поменяли параметры базы 4) ... ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:44 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
ПавелZZ, 2 Day DBA - 10 Monitoring and Tuning the Database : https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/monitoring-and-tuning-the-database.html#GUID-95716F9A-C500-4CCD-AC3F-6541E3191E40 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:21 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
ПавелZZ Всем привет! У нашего сервера Oracle произошло резкое падения производительности. Абсолютно все запросы выполняются в десятки раз медленнее. Вообще, прежде чем лезть в саму базу, имеет смысл "осмотреть пациента наружно". Вы к сожалению ничего не указали про сервер (физический / виртуальный, вендор, модель, параметры / спецификации), диски (внутренние / внешний SAN), версию OS (какой-то *nix / Linux / Windows) и версию самой базы. Часто когда "все стало медленно", причина в том что банально села батарейка в дисковом контроллере и он перестал кешировать, скорость I/O может и в 10 раз упасть. Если сервер виртуальный - может появился "noisy neighbour" (ака "шумный сосед"), т.е. кто-то ещё на этом же гипервизоре (другой виртуальный сервер) стал потреблять намного больше ресурсов чем до этого, а гипервизор не совсем честно изолирует виртуалки друг от друга и Вашему Oracle серверу стало не хватать ресурсов. Или просто ещё одну виртуальную машину запустили на этом же гипервизоре, и начался overallocation / overprovisioning. Или тоже самое на SAN (если используется) - кто-то ещё, какая-то другая система, стала утилизировать SAN сильно больше чем до этого, и все остальные системы кто использует этот же SAN стали испытывать деградацию производительности I/O. ПавелZZ Как можно с помощью запросов определить хотя бы общее состояние сервера? И, по возможности, найти причину падения производительности. Можно посмотреть, что сама база "думает" про сервер на котором работает. Есть системное представление, содержащее значения т.н. System Stats - называется SYS.AUX_STATS$, заполняется при вызове системного пакета DBMS_STATS.GATHER_SYSTEM_STATS. Содержит значения в неких внутренних оракловских "попугаях", как база оценивает производительность CPU и пропускную способность I/O. Если тот Ваш "DBA, который на аутсорсе и который не справляется" позаботился заранее, то у Вас должна быть документация по базе (и серверу), где значения из этой вьюхи записаны (IMHO это считается хорошим тоном делать такую документацию по всем обслуживаемым базам клиента, как минимум я так работаю со своими клиентами). Если Вы сейчас ещё раз запустите DBMS_STATS.GATHER_SYSTEM_STATS, значения в AUX_STATS$ обновятся, и Вы сможете сравнить, что изменилось (если изменилось!) и дальше уже думать, чинить HW, или все же с железом все нормально и что-то "поплыло" в самой базе (планы, как было сказано выше, статистика, просто нагрузка выросла / количество одновременных параллельных сессий и тд). Кстати, давно-давно тут на форуме было общенародное "мерянье сами_понимаете_чем" (в хорошем смысле) - народ собирал статистику по их серверам и как их параметры Oracle отображает в представлении AUX_STATS$ - суть 2 поля там важны, CPUSPEEDNW и IOSEEKTIM. Сам тред: https://www.sql.ru/forum/682014-a/cpuspeed-na-intel-xeon-5500-nehalem Тред этот от 2009 года (последние сообщения в 2012 году), померили даже старенькую Exadata X2, в общем 10-12 лет назад уже, так что все цифры что представлены там не сильно актуальны и представляют интерес скорее в общеобразовательном плане. К тому же тогда небыло ещё виртуализации, как минимум в том виде что мы знаем и используем её сейчас. Там все цифры с реальных физических серверов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:39 |
|
Как найти причину падения производительности сервера Oracle
|
|||
---|---|---|---|
#18+
Если Вы сейчас ещё раз запустите DBMS_STATS.GATHER_SYSTEM_STATS, значения в AUX_STATS$ обновятся, и Вы сможете сравнить, что изменилось (если изменилось!) и дальше уже думать, чинить HW, или все же с железом все нормально и что-то "поплыло" в самой базе IMHO У сервера есть админ. Хороший/плохой/справляется/не справляется но он есть. Что либо менять в конфигурациях/статистики и так далее сервера - может делать или админ, или, как минимум, только по согласованию в присутствие админа. Посмотреть представления, попытаться вычленить медленные запросы, попытаться разобраться, что именно тормозит (даже не важна причина почему так стало) - еще можно. Но без админа или его разрешения лезть на сервер и что-то там менять (а сбор статистики явно что-то поменяет) - за такое можно (и обоснованно) просто увольнять. В независимости от того, справляется админ или нет. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 14:00 |
|
|
start [/forum/topic.php?fid=52&msg=40094694&tid=1879934]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 232ms |
total: | 375ms |
0 / 0 |