Ограничение загрузки процессора

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Denis
Сообщения: 18
Зарегистрирован: 02 дек 2004, 14:11

Ограничение загрузки процессора

Сообщение Denis » 03 июн 2005, 22:27

Всем доброго времени суток!

Имею следующую проблему:Есть база данных, к которой подключается ~40 чоловек. Где-то половина из них это операторы, которые принимают заказы по телефону и вводят данные в базу. Вторая половина редактированием и в водом данных занимается в меньшей степени, но любит периодически снимать всякого рода отчеты и т.п., что может приводить практически к 100% загрузке процессора и вызывать тем самым торможение в работе (а с ним и жуткое) первой половины. Вопрос, можно ли как-то ограничить ресурсы процессора, выделяемые на выполнения запроса, чтобы операторы, вводящие данные не очень сильно мучались? Или какие еще могут быть варианты создание условий, чтобы не страдал ввод данных и можно было снимать отчеты?
Использую FireBird 1.0 на Win2000Srv. Программа написана на Delphi7 с использованием компонент доступа IBX

С уваженим, Денис.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 03 июн 2005, 22:45

Сменить ориентацию с SuperServer на Classic. Почитать на www.ibase.ru про разницу между ними, заценить необходимый объём RAM, возможно придётся увеличить. По моей практике, 1 гиг для беспроблемной работы в таких условиях понадобится и его скорее всего хватит. Проверить на реальной нагрузке. Если положительный эффект окажется недостаточным, поставить перед руководством вопрос о переходе на двухпроцессорное железо (для Super не имеет никакого смысла).

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 06 июн 2005, 06:14

Merlin писал(а):Сменить ориентацию с SuperServer на Classic. Почитать на www.ibase.ru про разницу между ними, заценить необходимый объём RAM, возможно придётся увеличить. По моей практике, 1 гиг для беспроблемной работы в таких условиях понадобится и его скорее всего хватит. Проверить на реальной нагрузке. Если положительный эффект окажется недостаточным, поставить перед руководством вопрос о переходе на двухпроцессорное железо (для Super не имеет никакого смысла).
Мы через это проходили. Действительно, после перехода на FireBird 1.5.2 CS проблема была снята. Хотел бы поделиться еще одним наблюдением. При использовании CS на двухпроцессрном сервере мы наблюдали практически равномерную загрузку процессоров. При проверке тех же режимов работы с SS второй процессор по нашим наблюдениям также брал на себя часть нагрузки, хотя и меньшую, чем в CS. Ранее, при работе в FireBird 1.0.2 у нас совершенно точно грузился только один процессор. Может ли кто сказать, это корректное наблюдение, или мы где-то не то посмотрели.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 06 июн 2005, 08:32

Как раз все хорошо согласуется с теорией :)
При проверке тех же режимов работы с SS второй процессор по нашим наблюдениям также брал на себя часть нагрузки, хотя и меньшую, чем в CS.
Он не брал часть нагрузки, просто процесс фб сервера тупо ездил с одного камня на второй :wink: потом обратно... и так много раз в секунду :lol:

sag
Сообщения: 116
Зарегистрирован: 02 ноя 2004, 11:42

Re: Ограничение загрузки процессора

Сообщение sag » 06 июн 2005, 08:38

Denis писал(а):Вопрос, можно ли как-то ограничить ресурсы процессора, выделяемые на выполнения запроса, чтобы операторы, вводящие данные не очень сильно мучались?
Про переход на cs ты уже в курсе.
Когда мы работали на ss, часто применяли следующий трюк. Особопрожерливые запросы ”загоняли” в ХП, если запускать эти ХП в “чистом виде”, то, естественно, наблюдалась постоянная 100%-ая загрузка процессора, при этом другие пользователи нервно курили. Так вот, стали в таких ХП вставлять вызов udf-ки, которая состоит только из вызова sleep(0), при этом загрузка процессора при выполнении этой ХП "дергается" от 60 до 90%, сама ХП выполняется чуть подольше, но другие пользователи чувствуют себя значительно легче. Попробуй, может в твоем случае поможет.
Denis писал(а):Или какие еще могут быть варианты создание условий, чтобы не страдал ввод данных и можно было снимать отчеты?
Пользуясь ХП можно попробовать извратиться и задействовать генераторы в качестве флажка останова этой самой ХП.

Denis
Сообщения: 18
Зарегистрирован: 02 дек 2004, 14:11

Сообщение Denis » 08 июн 2005, 15:30

В общем, вместе с переходом на CS получился и переход на двухпроцессорное железо. Получилось очень даже неплохо. "Подвисания" вроде как прекратились. Всем большое спасибо за советы. А насчет ограничения процессорного времени, выделяемого на выполнение запроса, я так понял, что никак нельзя. Ну, или почти никак :-)
Когда мы работали на ss, часто применяли следующий трюк. Особопрожерливые запросы ”загоняли” в ХП, если запускать эти ХП в “чистом виде”, то, естественно, наблюдалась постоянная 100%-ая загрузка процессора, при этом другие пользователи нервно курили. Так вот, стали в таких ХП вставлять вызов udf-ки, которая состоит только из вызова sleep(0), при этом загрузка процессора при выполнении этой ХП "дергается" от 60 до 90%, сама ХП выполняется чуть подольше, но другие пользователи чувствуют себя значительно легче. Попробуй, может в твоем случае поможет.
Это я тоже попробую, т.к. остались некоторые операции, которые пытаются грузить, теперь уже 2 процессора, до 100% :-)

С уважением, Денис.

Данилов Юрий
Сообщения: 31
Зарегистрирован: 27 окт 2004, 11:56

Сообщение Данилов Юрий » 08 июн 2005, 15:45

Denis писал(а):Это я тоже попробую, т.к. остались некоторые операции, которые пытаются грузить, теперь уже 2 процессора, до 100% :-)

С уважением, Денис.
Снявши голову, по волосам не плачут.
В том смысле, что ежели серверу нужно M секунд на отработку конкретного запроса, то ограничивать его в этом потреблении ресурса процессора - лишь затягивать процесс. Перешел на классик - и ОСь уже прилично разруливает долгоиграющие процессы, более равномерно распределяя между ними процессорный ресурс. Перешел на двухголовый сервер - увеличил в два раза процессорный ресурс. Чего тебе еще надобно, старче?
Дальнейшие улучшения - только через оптимизацию кода.

Ответить