Гость
Форумы / [игнор отключен] [закрыт для гостей] / 1C + MS SQL 2000. При выполнении запросов нагружается только один процессор / 14 сообщений из 14, страница 1 из 1
08.12.2008, 13:22
    #35699907
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Заметил сегодня такую вещь. При выполнении тяжелых запросов, когда SQL нагружается 1С-кой в серьез и надолго - на SQL сервере нагружается строго один процессор. Т.е. прямо в диспетчере задач (или в счетчиках производительности) видно, что загрузка одного проца 100%, остальных практически ноль. И вообще складывается мнение, что при подключении к SQL серверу соединению выделяется конкретный процессор и все запросы идут строго на нем. Т.к. при одновременном запуске отчета в 2х приложениях ситуация бывает 2х видов: нагружены 2 процессора и время формирования каждого отчета почти не меняется или загружен по прежнему только 1 процессор и тогда время формирования каждого сильно возрастает, т.е. или "повезло" сесть на разные процессоры или нет - не знаю как более по научному объяснить.

Система: 2003 x86 R2 со всеми обновлениями SQL 2000 SP4, в настройках Affinity mask разрешены все процы, Parallelism: Use all available processors, minimum query plan threshold - 5 (все по умолчанию)

Железо: Asus NCCH-DR (чипсет Intel Canterwood-ES E7210), 2 x XEON 3Ghz HT включен

Все цепляются по сети. Что это может быть?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
08.12.2008, 15:00
    #35700231
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
штатное поведение скивела, ба распаралеливание запросов ОДНОГО соединения штука весьма спорная и в большинстве случаев просто невозможная.
...
Рейтинг: 0 / 0
08.12.2008, 15:04
    #35700239
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
да пусть не параллелит, но почему строго один процессор грузит?
...
Рейтинг: 0 / 0
08.12.2008, 15:09
    #35700257
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
и почему все запросы одного соединения выполняются только на одном и том же процессоре? независимо от его загруженности и незагруженности остальных?
...
Рейтинг: 0 / 0
10.12.2008, 10:24
    #35704571
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
На распареллеливание запроса (одного!) расходуются дополнительные ресурсы SQL сервера. В том числе время. Поэтому SQL сервер использует распараллеливание только в том случае, когда ожидаемое (в соответствии с планом выполнения запроса и накопленными статистиками) время выполнения запроса превысит значение "minimum query plan threshold". По умолчанию это значение установлено в 5 секунд. Для того, чтобы ожидаемое и фактическое время выполнения запроса больше соответствовали друг другу и чтобы план выполнения запроса был наилучшим образом оптимизирован, нужно не только обновить статистики, но и после этого установить флаг принудительной перекомпиляции необходимых хранимых процедур и VIEW (тогда план запроса может быть перестроен на план с распараллеливанием, даже если раньше на меньших объемах план запроса был построен без распараллеливания).
Однако, обращаю Ваше внимание на то, что 1С при формировании отчета формирует не один запрос, а множество запросов в цикле. Если каждый из планируемое время каждого запроса меньше 5 секунд, их распараллеливание задействовано не будет. Выполнять же это множество запросов параллельно SQL-сервер также не может, поскольку у него нет информации о том, являются ли они взаимозависимыми и не влияют ли результаты выполнения одних запросов на параметры следующих. Одним словом, управлять распараллеливанием множества запросов должен не SQL сервер, а приложение, отправляющее на сервер эти запросы.
На возможность одновременного выполнения запросов в разных сессиях или в одной сессии, но с асинхронным выполнением, оказывают также уровни изоляции транзакций.

Пытаться включить принудительное распараллеливание кратковременных запросов установкой параметра minimum query plan threshold, например, в 1 секунду, не рекомендую. В этом случае время фактическое выполнения запросов, скорее всего, увеличится, поскольку дополнительные затраты времени на распараллеливание и синхронизацию данных, формируемых в разных потоках вычислений, превысят выигрыш от более быстрого выполнения каждого из параллельных потоков.
...
Рейтинг: 0 / 0
10.12.2008, 10:37
    #35704613
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
да, еще...
Проверьте в Enterprise Manager в свойствах SQL-сервера, стоят ли галочки на всех процессорах (помечены ли они как доступные SQL-серверу) + переключатель "use all available processors".
...
Рейтинг: 0 / 0
10.12.2008, 11:48
    #35704859
Егоров Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Sk0rpПри выполнении тяжелых запросов

Не совсем верно. Скорее тяжелых обработок . Которые порождают лавину мелких запросов к sql в одном подключении. Из-за мелочности запросов - SQL их и не параллелит. Но из-за большого их потока - грузится только один проц. Ну и еще не рекомендовал бы включать HT на серваке с SQL.
...
Рейтинг: 0 / 0
10.12.2008, 11:57
    #35704911
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
2(Garya) Я возможно не достаточно точно выразился. И не настаиваю на распараллеливании одного запроса. Как правильно уточнил Егоров Александр - это лавина (десятки тысяч) мелких запросов.
При этом по счетчикам: средняя загрузка одного ядра 100%, остальных 0%.
Если установить сервер на другом компе, то при остальных равных условиях (Винда и SQL с одних и тех же дистрибутивов, настройки SQL теже самые) во время выполнения этого же отчета нагрузка всех ядер примерно равномерная (в сумме теже 100%), что позволяет всем остальным более или менее нормально продолжать работу. - вот этого и хочется добиться.
...
Рейтинг: 0 / 0
10.12.2008, 15:35
    #35705777
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Sk0rp... - вот этого и хочется добиться.А что с галочками? И с переключателем "use all processors"?

И еще сообщите какой edition и какая при установке MS SQL указана схема лицензирования - на число юзеров или на число процессоров.
...
Рейтинг: 0 / 0
10.12.2008, 16:06
    #35705905
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
GaryaSk0rp... - вот этого и хочется добиться.А что с галочками? И с переключателем "use all processors"?
И еще сообщите какой edition и какая при установке MS SQL указана схема лицензирования - на число юзеров или на число процессоров.
Так я же в шапке написал "Affinity mask разрешены все процы, Parallelism: Use all available processors"
Enterprise edition, схема лицензирования "на юзеров"
...
Рейтинг: 0 / 0
12.12.2008, 14:29
    #35710992
Vodkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Sk0rp,

А имя сервера часом не с цифры (1) начинается?
Аналогичная ситуевина с 2005-м SQL и тоже на R2...
...
Рейтинг: 0 / 0
12.12.2008, 19:29
    #35711985
Sk0rp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Vodkin,
нет, имя только из латинских букв.

Проблема решилась переустановкой SQL сервера в такой последовательности: убрали HT, снесли SQL, поставили SQL, включили HT - после этого на тех же отчетах загружаться стали все процессоры.
Что было - так никто и не понял.

Но вот, что еще было замечено: до переустановки в счетчиках производительности SQLServer:SQL Statistics:Batch Requests/sec - был в среднем 3000, пики до 6000; после переустановки при тех же условиях среднее значение стало 300, максимальный пик не превышает 1200.
Связано одно с другим или нет - тоже не знаю.
...
Рейтинг: 0 / 0
19.12.2008, 10:56
    #35724050
Андрейй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Егоров Александр, Где включается НТ на сервере SQL
...
Рейтинг: 0 / 0
19.12.2008, 11:24
    #35724154
Андрейй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C + MS SQL 2000. При выполнении запросов нагружается только один процессор
Егоров Александр, Где включается НТ на сервере SQL
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / 1C + MS SQL 2000. При выполнении запросов нагружается только один процессор / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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