Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 11g - job - выполнить, когда сервер будет не сильно загружен. / 8 сообщений из 8, страница 1 из 1
20.08.2017, 18:49
    #39508093
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
Мне еще не доводилось создавать в Oracle джобы,
но вот пришлось заняться задачей, где они предполагаются.

И сразу возник вопрос:
- А можно-ли назначить задание примерно в такой формулировке:
"Выполни [эту] хранимую процедуру, когда будешь не сильно занят,
но к такому-то числу, во столько-то часов результат уже должен быть готов".
(небольшая просрочка в моем случае допускается - будем указывать время готовности с запасом).

Есть-ли что-то уже готовое на эту тему, или мне
придется писать свой механизм сбора статистики загруженности сервера в определенные дни и часы,
самому учитывать статистику выполнения указанной процедуры, смотреть какие еще задания назначены
и на какое время, чтобы не запуститься одновременно с ними, или все-таки разрешить запуститься одновременно,
если конкурирующие - не очень ресурсоемкие задачи.
(т.е. - нужно иметь статистику их выполнения и оценивать ее).

Так же учитывать приоритеты по рабочим/не рабочим часам и дням недели.
Если свободно ночное время на сервере - то лучше выполнить ночью, чем днем.
Если свободно время в выходной день - то лучше выполнить в выходной.
---
Э... пока писал, подумалось, что это вряд-ли есть в Oracle.
Тогда, если не трудно - подскажите, пожалуйста, какие инструменты сбора статистики загруженности сервера мне нужно будет
использовать при написании такого хитрого планировщика.
...
Рейтинг: 0 / 0
20.08.2017, 18:56
    #39508097
Sheriffua
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
А что под нагрузкой понимать? Кол-во запросов выполняемых в определенный момент времени или что-то другое - процессор, дисковая система или все в комплексе?
...
Рейтинг: 0 / 0
20.08.2017, 19:17
    #39508103
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
Sheriffua,
Думаю, это комплексная оценка по CPU и дисковым операциям.
Смысл такого "smart lazy sheduling" в том, чтобы при автоматической подготовке отчета к нужной дате,
не создавать тормоза в рабочее время на базе - чтобы сотрудники и клиенты не жаловались, что все тормозит и висит.

Можно просто ночью делать, но "ночью поработать" - таких желающих тоже полно, и получается,
что" то густо то пусто".
То одновременно запустятся несколько тяжелых процедур, то ничего не делает сервер.
Как-то распределять задачи более равномерно, и делать это не вручную, а автоматически.
---
Можно было-бы делать отчеты на копии базы,
но выбить ресурс для ее создания пока не могу.
...
Рейтинг: 0 / 0
20.08.2017, 19:31
    #39508109
trace.log
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
ART-CODE,
В разве нельзя в вашем случае использовать профили, в которых задавать нагрузку для ваших задач.
...
Рейтинг: 0 / 0
20.08.2017, 19:36
    #39508111
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
ART-CODE,

[оставляя за скобками разумность постановки задачи автоматизации такого рода]

смотрите в сторону v$active_session_history и агрегата по нему за посление N секунд. например, раз в минуту. и, если всё устраивает, запускайте свой джоб. и даже если нагрузка вдруг сильно возрастёт, вы, воспользовавшись той же вьюхой, сможете прибить свой джоб. или прямо в джобе разбить объём работы на мелкие кусочки и перед началом каждого справляться о нагрузке за последнее время. по результатам - выполнить очередную порцию работы или dbms_lock.sleep на какое-то время.
...
Рейтинг: 0 / 0
20.08.2017, 19:58
    #39508121
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
По честноку:
Managing Resources with Oracle Database Resource Manager + Oracle Scheduler Concepts (time window)

Но,
1) если у Вас не exadata - управлять загрузкой ввода/вывода Вы не сможете, только CPU
2) Если задача не влезает в windows, то нужно будет предусмотреть chain job, чтобы как-то обработать эту ситуацию, например стукнуть админу, или поднять ее приоритет
3) отчетные, или не требующие online данных задачи, лучше выносить на standby/clone/snapshot database
...
Рейтинг: 0 / 0
20.08.2017, 20:00
    #39508122
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
trace.logART-CODE,
В разве нельзя в вашем случае использовать профили, в которых задавать нагрузку для ваших задач.
oracle profile - это quota, грубо - сожрал ресурс, тебя пристрелили
...
Рейтинг: 0 / 0
21.08.2017, 00:05
    #39508192
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
11g - job - выполнить, когда сервер будет не сильно загружен.
Спасибо за советы и ссылки.
Подумаю об этом.
В том числе и о целесообразности :)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 11g - job - выполнить, когда сервер будет не сильно загружен. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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