|
|
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Ситуация печальная. Есть корпоративная система, сейчас с нею работают около 400 человек. Работали. Потому что сегодня утром она внезапно впала в кому. Ясно, что контролируемых данных очень много, попытаюсь коротко описать хоть что-то. Есть две машины, работают на виртуальных машинах VmWare - сервер БД Oracle 11.2.0.4 - на сервере приложений Apache TomCat в составе Spring Boot 1.5.4 С базой данных сервер приложений работает через стандартный пул Apache Tomcat. Всё работало "как часы" и при гораздо больших нагрузках уже не менее полугода, но: - пару месяцев назад была подобная ситуация, но пару часов вдруг само собой всё нормализовалось. - через две недели ситуация повторилась, и на этот раз система была в коме около шести часов. - сегодня её не удаётся завести вовсе Симптомы следующие: - запросы выполняются на порядок дольше - мониторинг на гипервизоре и внутри самой VM показывает "высокие операции чтения" с диска (скорость чтения возрастает на 1-2 порядка от обычного). - по данным мониторинга на стороне гипервизора проблемы ввода вывода в обоих случаях начались ночью – при минимально нагруженной системе (через некоторое время после завершения операций бэкапа ВМ а затем базы) Возможно, проблемы в среде виртуализации. Но есть ещё момент. На БД много не оптимизировано - многие запросы можно было бы улучшить, в том числе не проиндексированы некоторые базовые таблицы: "забивали" на это, т.к. в ближайших планах был перевод запросов к Elastic Search. Может ли БД так резко менять своё поведение только по причине неоптимизированных запросов? Как подобные ситуации отлавливать, где можно узнать о произошедших изменениях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 13:08 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTe- мониторинг на гипервизоре и внутри самой VM показывает "высокие операции чтения" с диска (скорость чтения возрастает на 1-2 порядка от обычного). Какие процессы и какие файлы читают? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 13:26 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Может всё же проблема с носителями? RAID стоит? Какой? А разработчик далеко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 13:28 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeСитуация печальная. Есть корпоративная система, сейчас с нею работают около 400 человек. Работали. Потому что сегодня утром она внезапно впала в кому. Ясно, что контролируемых данных очень много, попытаюсь коротко описать хоть что-то. Есть две машины, работают на виртуальных машинах VmWare - сервер БД Oracle 11.2.0.4 - на сервере приложений Apache TomCat в составе Spring Boot 1.5.4 С базой данных сервер приложений работает через стандартный пул Apache Tomcat. Всё работало "как часы" и при гораздо больших нагрузках уже не менее полугода, но: - пару месяцев назад была подобная ситуация, но пару часов вдруг само собой всё нормализовалось. - через две недели ситуация повторилась, и на этот раз система была в коме около шести часов. - сегодня её не удаётся завести вовсе Симптомы следующие: - запросы выполняются на порядок дольше - мониторинг на гипервизоре и внутри самой VM показывает "высокие операции чтения" с диска (скорость чтения возрастает на 1-2 порядка от обычного). - по данным мониторинга на стороне гипервизора проблемы ввода вывода в обоих случаях начались ночью – при минимально нагруженной системе (через некоторое время после завершения операций бэкапа ВМ а затем базы) Возможно, проблемы в среде виртуализации. Но есть ещё момент. На БД много не оптимизировано - многие запросы можно было бы улучшить, в том числе не проиндексированы некоторые базовые таблицы: "забивали" на это, т.к. в ближайших планах был перевод запросов к Elastic Search. Может ли БД так резко менять своё поведение только по причине неоптимизированных запросов? Как подобные ситуации отлавливать, где можно узнать о произошедших изменениях? при болезни, для диагностики, обычно начинают с осмотра и анализов Причиной может быть что угодно: кривой запрос воткнутый разработчиком протухшая батарейки рейда слетевшая статистика БД, в результате которой поплыли планы увеличилось количества запросов, естественно от увеличившегося количества клиентов, или DOS атаки, в результате которой банально кончилась память и начался swapping системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 14:23 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Это далеко не все причины, которые могли привести к такому поведению начните с описания системы, версии ОС и ПО и так далее результаты мониторинга (например /var/log/sa файлы) отчеты awr или statspack ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 14:26 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Vadim Lejninпри болезни, для диагностики, обычно начинают с осмотра и анализов Вот отсюда все проблемы... Начинать всегда надо с поиска специалиста ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 15:15 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
http://www.oracle.com/technetwork/database/manageability/dba-best-practices-ow08-129450.pdf Слайд 10 "Click on the Big Stuff", так будет понятнее. я голосую за serial direct path, но без statspack/awr ничего утверждать нельзя. Ну, кроме батарейки на рейде. Та точно на запрашиваемый базой объём чтения не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2018, 21:01 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Спасибо всем за ответы с вариантами. Уточню немного по своему вопросу. Конечно же, мы контролируем много параметров, просто не понятно, что же сюда можно написать. Nagios для VM, сейчас переключили на stand by - дубликат, который находится в нашей зоне контроля, т.е. свой гипервизор и хранилка своя Система заработала, но тормоза неимоверные. Поэтому и возникло подозрение, что раз по факту поменяли виртуальную среду и всё особо не наладилось - дело всё-таки в неоптимизированных запросах (отсутствие индексов). Как ещё подсказали нам немного более опытные в оракле коллеги, "взглядом со стороны" - на пальцах, в оракле свой "искусственный интеллект", и предположение такое, что в какой-то момент оракл поменял план запросов, потому что посчитал, что так оптимальнее. Как "вернуть всё взад, отключив ИИ" - они не в курсе. Вообще, всё это лишь предположение. Запросы неоптимальные у нас есть, как водится, оптимизация откладывалась на потом (по иронии судьбы как раз за два дня до краха не developer-версии БД начата реорганизация таблиц для подготовки к индексации). В production- версии есть таблицы с сотнями тысяч элементов, к которым обращается запрос, и они не проиндексированы. Принято решение провести оптимизацию до конца. Это ещё как раз до конца недели, печально то, что система стоит, она нужна ежедневно, и сейчас боле трёхсот человек конкретно попали. Смущает неожиданность перехода БД в такое состояние. Нагрузки на процы и память нет и не было, "объёмы чтения" - были на порядок меньше. Прирост в базе данных ежедневный небольшой (это документы, поручения по ним). Что произошло и как можно вернуть всё взад хотя бы на два дня? Сейчас ещё докидаем памяти в два раза больше, но память и так не нагружена. Может, ещё какие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 06:41 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTe В production- версии есть таблицы с сотнями тысяч элементов, к которым обращается запрос, и они не проиндексированы. имхо с "сотнями тысяч" оракля и "без индексов" должен справлятся гляньте какой запрос более всего тормозит, и "проиндексируйте" таблички, хуже на 100тысяч не станет ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 09:32 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Vadim Lejninанализовавтор привел результаты анализов - "скорость чтения возрастает...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 09:44 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeЗдравствуйте! Спасибо всем за ответы с вариантами. Уточню немного по своему вопросу. Конечно же, мы контролируем много параметров, просто не понятно, что же сюда можно написать. Nagios для VM, сейчас переключили на stand by - дубликат, который находится в нашей зоне контроля, т.е. свой гипервизор и хранилка своя Система заработала, но тормоза неимоверные. Поэтому и возникло подозрение, что раз по факту поменяли виртуальную среду и всё особо не наладилось - дело всё-таки в неоптимизированных запросах (отсутствие индексов). Как ещё подсказали нам немного более опытные в оракле коллеги, "взглядом со стороны" - на пальцах, в оракле свой "искусственный интеллект", и предположение такое, что в какой-то момент оракл поменял план запросов, потому что посчитал, что так оптимальнее. Как "вернуть всё взад, отключив ИИ" - они не в курсе. Вообще, всё это лишь предположение. Запросы неоптимальные у нас есть, как водится, оптимизация откладывалась на потом (по иронии судьбы как раз за два дня до краха не developer-версии БД начата реорганизация таблиц для подготовки к индексации). В production- версии есть таблицы с сотнями тысяч элементов, к которым обращается запрос, и они не проиндексированы. Принято решение провести оптимизацию до конца. Это ещё как раз до конца недели, печально то, что система стоит, она нужна ежедневно, и сейчас боле трёхсот человек конкретно попали. Смущает неожиданность перехода БД в такое состояние. Нагрузки на процы и память нет и не было, "объёмы чтения" - были на порядок меньше. Прирост в базе данных ежедневный небольшой (это документы, поручения по ним). Что произошло и как можно вернуть всё взад хотя бы на два дня? Сейчас ещё докидаем памяти в два раза больше, но память и так не нагружена. Может, ещё какие варианты? 1) Системная статистика, для unix систем установи sysstat пакет начнет собираться в фоновом режиме sar, нагрузка минимальная достаточно прикрепить /var/log/sa/saDD файл, где DD - интересующее число месяца и можно будет посмотреть большое количество параметров нагрузки системы это удобнее чем разбираться в обобщенных портянках систем мониторинга Код: plsql 1. 2) Статистика базы Если куплен diagnostic pack и у Вас Enterprise Edition, то сбор awr отечета иначе statspack Код: plsql 1. устанавливаете создаете несколько снимков статистики в момент максимальной нагрузки получаете отчет, с которым можно работать 3) дополнительно приложить alert.log базы Без этого, гадание на кофейной гуще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 10:10 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeЕсть две машины, работают на виртуальных машинах VmWare - сервер БД Oracle 11.2.0.4 ...BTW Компания Oracle не признает VmWare средой, обеспечивающей жесткое выделение ресурсов (hard partitioning). Это исключает ограниченное лицензирование Oracle Database. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 15:37 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, забыл отписаться. Тему скинул нашим ребятам, многое было очень полезно. Оптимизация (внезапно был найден способ проиндексировать, "временно") - вернула системе работоспособность. Экспериментировать на продакшн сервере мы не будем, возможно, позже, после полноценной индексации и появления свободного времени будем воссоздавать подобную ситуацию на тестовом сервере, чтобы понять, что же всё-таки происходит. Тогда тему эту подниму. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2018, 08:06 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Печально, но история имеет продолжение. Как написал выше, некоторые таблицы были проиндексированы и это разгрузило базу данных. Однако, по всей видимости проблема была далеко не только в отсутствии индексов. А именно в "самоуправстве"(??) БД Oracle Сегодня с утра наблюдали ситуацию, когда БД Oracle на нашей БД самопроизвольно перестал использовать индексы, читая данные напрямую с диска . Это было видно в enterprise-менеджере Была перезапущена БД Oracle в надежде, что правильная работа служб (в том числе Oracle SQL Advisor) восстановится. Результат: 1. С виду ничего не изменилось. 2. Кроме того, после перезагрузки в энтерпрайз-менеджере перестали отображаться планы запросов (!!). Выходит так, что по неизвестной пока причине эта ситуация повторяется с периодичностью по средам (смешно, ага) раз в 2 недели, и, возможно, именно это пока для нас непредсказуемое поведение Oracle и являлось одной из главных причин всех предыдущих сбоев Переключили на standby клон БД в собственной среде, и почему-то это позволило восстановить работоспособность системы: после непродолжительного (порядка 5 минут) чтения данных со скоростью до 400 Mбит в секунду, при обычной нагрузке на сервер прежняя работоспособность БД Oracle была восстановлена. Планы запросов стали отображаться. В настоящее время в спешном порядке разбираемся с настройками Oracle, но пока не видно на горизонте решения..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:16 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTe, А Вы Awr report читали, если по средам, может у Вас бекап настроен на среду. Посмотрите кто грузит базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:39 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeБыла перезапущена БД Oracle в надежде, что А хост перезагружали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:43 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeповторяется с периодичностью по средам (смешно, ага) раз в 2 недели Ну и смотрите, какие maintaince задачи настроены с таким расписанием, от сбора статистики в базе, до скрипта на гипервизоре, бэкапящего виртуалки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 15:09 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Да конечно, все планировщики пересмотрели в первую очередь. Ни на гипервизоре, ни в оракле ничего не находим. Процедуры бекапов и т.п. проводятся каждую ночь. проблемы же начинаются каждую вторую среду утром:) Может, конечно, плохо ищем. И дело в том, что у нас на заводе много (купленных) систем работает на oracle, администрируют базы много лет и ничего подобного не случалось. Есть и самописные системы, например, АСУ управления производством, там двузвенка т.о. запросы нативные и хинтуются вручную. в чём отличия? у нас самописная, но трёхзвенка :) AnTeЕсть две машины, работают на виртуальных машинах VmWare - сервер БД Oracle 11.2.0.4 - на сервере приложений Apache TomCat в составе Spring Boot 1.5.4 С базой данных сервер приложений работает через стандартный пул Apache Tomcat. к Oracle запросы генерирует Hibernate. Основные самые "тяжёлые" запросы написаны вручную, но большинство - сгенерированные hibernate, без хинтов, с надеждой, что Adviser всё правильно разрулит. Что-то в этой связке не так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 06:20 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
Думаем, что виновник - оптимизатор. Возможно, собирал статистику по ночам, когда нагрузки нет. https://oracle-patches.ru/блоги/77-настройка-производительности/3078-ручной-и-автоматический-сбор-статистики-оптимизатора-в-базе-данных-oracle Настраиваем.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 09:03 |
|
||
|
Большие операции чтения с диска
|
|||
|---|---|---|---|
|
#18+
AnTeДумаем, что виновник - оптимизатор. Возможно, собирал статистику по ночам, когда нагрузки нет. https://oracle-patches.ru/блоги/77-настройка-производительности/3078-ручной-и-автоматический-сбор-статистики-оптимизатора-в-базе-данных-oracle Настраиваем.... Какой же бред =( Найдите себе уже спеца, пока базу окончательно не доломали. Кого-то, кто хотя бы умеет планы читать и знает разницу между объектной и системной статистикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 10:08 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39632300&tid=1884119]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 380ms |

| 0 / 0 |
