|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Помогите выбрать процессоры для 2-х процессорного сервера. Выбор между Intel Xeon 5130 (2.00ГГц, 4МБ, 1333МГц) и Intel Xeon E5310 (1.60ГГц, 2x4МБ, 1066МГц). Основная задача уменьшить время расчета отчетов. База OLTP. Отчеты фактически для OLAP. Смогут ли 8 ядер быть быстрее 4-х при указаном снижении частот? СУБД MS SQL2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2007, 13:26 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Для начала промониторте загрузку сервера. Может и не в процессорах дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2007, 13:43 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Спасибо за совет. Посмотрю еще разок свой действующий сервер "с пристрастием" :) Однако толку, ИМХО, мало. Сейчас сервер на Р4 и его поведение в многопоточности другое. При этом сервер будет уже другой. Насколько эффективно SQL2000 нагрузит 8 ядер? Теоретические выкладки по сравнению железа я и сам могу сделать, просто интересует может кто тестировал 4-х ядерники с 1 и 2 процессорами в SQL2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2007, 14:23 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
ИМХО 4-хядерники хороши, если имеется достаточно большое количество клиентов, которые что-то делают с базой. В этом случае сохраняется приемлемое время отклика сервера. Если же систему используют 1-2 человека для отчетности, то лучше взять 2-хядерники с большей частотой. Например 5140. Они не сильно дороже 5130, на фоне общей стоимости системы - вообще смех. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2007, 14:33 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
new_jeep Насколько эффективно SQL2000 нагрузит 8 ядер? Теоретические выкладки по сравнению железа я и сам могу сделать, просто интересует может кто тестировал 4-х ядерники с 1 и 2 процессорами в SQL2000. Как уже и писали выше, зависит от запросов. Но могу сказать, что на 4-х двухядерных, правда Opteron, SQL 2000 вполне себе нормально работает. Клиентов 80-120. Основная нагрузка OLTP. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2007, 22:08 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
при малом числе коннектов может оказаться часть процессоров незагруженными. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2007, 17:57 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Чем больше юзероф - тем больше толку от 4-х ядер. А чтоп прально аценить - Профайлер и Перфоманс монитор в руки - и вперед. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2007, 16:02 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
8-ми ядер очепятка ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2007, 16:02 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
new_jeepНасколько эффективно SQL2000 нагрузит 8 ядер? Вообще от запросов зависит. Некоторые распараллеливаются, некоторые - нет. Как правило, чем хуже (безнадежнее) запрос, тем лучше он распараллеливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 00:47 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
MasterZiv new_jeepНасколько эффективно SQL2000 нагрузит 8 ядер? Вообще от запросов зависит. Некоторые распараллеливаются, некоторые - нет. Как правило, чем хуже (безнадежнее) запрос, тем лучше он распараллеливается. выставите стоимость, при превышении которой запросы будут распаралеливаться, енсли поставите 1 - то вообще почти все запросы будут паралелиться - тока толку может от этого и не быть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 10:03 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
кстати так и не нашел инфу как и при каких условиях происходит распаралеливание запроса на процы. в статье в переводе гладченко про шедуллеры говорится что каждый из коннектов может пользовать только один шедуллер и соответственно один проц, кроме случая использования расширенной хранимой процедуры. отсюда возникло подозрение что распаралеливание запроса от стоимости это разбивка на несколько потоков в рамках одного проца, переключаемых по необходимости ожидания io. Может обсудим? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 12:14 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Если запрос сложный, с кучей подзапросов и объединений, то независимые подзапросы уйдут на свободные процессоры, если таковые есть. Тут и обсуждать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 12:36 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
смотрим http://www.sql.ru/articles/mssql/2005/101906InsideSQLServer2000UMS.shtml статья Процесс подключения Когда клиент подключается к SQL Server, он назначается одному из планировщиков UMS. Эвристика выбора не замысловата: тот планировщик, у которого меньше всего подключений, получает новое подключение. Как только подключение связано с планировщиком, оно никогда не уходит с этого планировщика. Независимо от того, будет ли связанный с подключением планировщик занят и будут ли в системе существовать не активные планировщики, UMS никогда не будет перемещать spid между планировщиками. Это означает, что могут быть такие сценарии развития событий, в которых SQL Server, запущенный на симметричной многопроцессорной системе, не сможет работать эффективно из-за того, что приложение открывает много постоянных подключений, которые не исполняют полезную работу. Например, если на компьютере с двумя процессорами, приложение - клиент SQL Server открывает четыре постоянных подключения к серверу, и два из них выполняют 90 % всей работы, то после того, как эти два подключения попадают на одного и того же планировщика, будет наблюдаться картина, когда один процессор будет утилизироваться, в то время как другой остается относительно не загруженным. Решение подобных ситуации состоит в том, чтобы равномерно балансировать нагрузку подключений, а не сохранять постоянные подключения, когда рабочая нагрузка неравномерна . Отключение и повторное подключение, вот единственный способ перемещать spid от одного планировщика другому. Такое перемещение не гарантирует, что в результате переподключений задача попадёт на то же самый планировщик, поскольку это зависит от числа пользователей у других планировщиков. Как только spid назначен планировщику, дальнейшее его обслуживание зависит от состояния списка исполнителей, и от того, было ли достигнуто задаваемое в конфигурации значение максимального числа рабочих потоков SQL Server (max. worker threads). Если исполнитель в этот момент числится доступным в списке исполнителей, он забирает запрос на подключение, и работает с ним. Если ни один из исполнителей не доступен, и максимальный порог потоков ещё не был достигнут, будет создан новый исполнитель, и уже он займётся обслуживанием запроса. Если нет доступных исполнителей и максимальное число потоков уже достигнуто, запрос на подключение будет помещен в список ожидающих и будет обслужен в порядке поступления, когда станет доступен исполнитель. Клиентские подключения обслуживаются в UMS как логические (а не физические) пользователи. Это нормальная практика, т.к. желательно иметь большое соотношение логических пользователей к числу исполнителей UMS. Тогда SQL Server, имея стандартное максимально число возможных потоков - 255, сможет обслуживать сотни или тысячи пользователей. и нигде нет ни слова от том что может происходить распаралеливание между процессорами отсюда и гипотеза а не миф ли это, возможно имеется в виду паралельное выполнение в нескольких потоках одного проца ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 12:48 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
MsDatabaseruи нигде нет ни слова от том что может происходить распаралеливание между процессорами отсюда и гипотеза а не миф ли это, возможно имеется в виду паралельное выполнение в нескольких потоках одного проца обращаемся к BOL SQL Server 2005 обеспечивает параллельную обработку запросов, оптимизирующую выполнение запросов и операции с индексами на компьютерах, где установлено несколько микропроцессоров (ЦП). Благодаря возможностям параллельной обработки запроса и операций с индексами при помощи нескольких потоков операционной системы SQL Server выполняет эти операции быстрее и эффективнее. Во время оптимизации запроса SQL Server пытается обнаружить запросы и операции с индексами, которые можно ускорить за счет параллельного выполнения. Для таких запросов SQL Server вставляет в план выполнения операторы обмена, чтобы подготовить запрос к параллельной обработке. Операторы обмена служат для управления процессом, перераспределения данных и управления потоком. К ним относятся логические операторы Distribute Streams, Repartition Streams и Gather Streams (в виде подтипов), один или несколько из которых появляются в выводе инструкции Showplan плана запроса для параллельного запроса. После вставки операторов обмена получается план параллельного выполнения запроса. План параллельного выполнения запроса может использовать несколько потоков. План последовательного выполнения, который используется для обработки непараллельных запросов, использует только один поток. Фактическое количество потоков параллельного выполнения запроса определяется при инициализации плана выполнения запроса и зависит от сложности и степени параллелизма плана. Степень параллелизма определяет максимальное количество используемых ЦП, а не количество используемых потоков. Степень параллелизма устанавливается на уровне сервера и изменяется системной хранимой процедурой sp_configure. Это значение можно переопределить для отдельных инструкций запроса или индекса при помощи подсказки в запросе MAXDOP или параметра индекса MAXDOP. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 13:24 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
а почему ? тут авторSQLServer 2000 UMS.shtml а тут авторSQL Server 2005 обеспечивает ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 13:34 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Проверить очень просто - на большой базе создайте сложный запрос с подзапросами и выполните, мониторя загрузку процессоров. И все вопросы сразу пропадут. Заодно посмотрите план выполнения запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 13:47 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
вообще вопрос был про 2000. авторПомогите выбрать процессоры для 2-х процессорного сервера. Выбор между Intel Xeon 5130 (2.00ГГц, 4МБ, 1333МГц) и Intel Xeon E5310 (1.60ГГц, 2x4МБ, 1066МГц). Основная задача уменьшить время расчета отчетов. База OLTP. Отчеты фактически для OLAP. Смогут ли 8 ядер быть быстрее 4-х при указаном снижении частот? СУБД MS SQL2000 . актуально ли распаралеливание на цпу для него? или только на потоки? самолично пока только проверяю особенности перехода на 2005, продакшен пока не запущен. а за инфу спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 15:38 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
Почему?а почему ? тут авторSQLServer 2000 UMS.shtml а тут авторSQL Server 2005 обеспечивает ну вот вам BOL от 2000 Microsoft® SQL Server™ 2000 detects the best degree of parallelism for each instance of a parallel query execution automatically by considering: Is SQL Server running on a computer with more than one microprocessor or CPU, such as a symmetric multiprocessing computer (SMP)? Only computers with more than one CPU can use parallel queries. What is the number of concurrent users active on the SQL Server installation at this moment? SQL Server monitors CPU usage and adjusts the degree of parallelism at the query startup time. Lower degrees of parallelism are chosen if CPU usage is high. Is there sufficient memory available for parallel query execution? Each query requires a certain amount of memory to execute. Executing a parallel query requires more memory than a nonparallel query. The amount of memory required for executing a parallel query increases with the degree of parallelism. If the memory requirement of the parallel plan for a given degree of parallelism cannot be satisfied, SQL Server decreases the degree of parallelism automatically or completely abandons the parallel plan for the query in the given workload context and executes the serial plan. What is the type of query executed? Queries heavily consuming CPU cycles are the best candidates for a parallel query. For example, joins of large tables, substantial aggregations, and sorting of large result sets are good candidates. Simple queries, often found in transaction processing applications, find the additional coordination required to execute a query in parallel outweigh the potential performance boost. To distinguish between queries that benefit from parallelism and those that do not benefit, SQL Server compares the estimated cost of executing the query with the cost threshold for parallelism value. Although not recommended, users can change the default value of 5 using sp_configure. Is there a sufficient amount of rows processed in the given stream? If the query optimizer determines the number of rows in a stream is too low, it does not introduce exchange operators to distribute the stream. Consequently, the operators in this stream are executed serially. Executing the operators in a serial plan avoids scenarios when the startup, distribution, and coordination cost exceeds the gains achieved by parallel operator execution. The INSERT, UPDATE, and DELETE operators are executed serially; however, the WHERE clause of either an UPDATE or DELETE, or SELECT portion of an INSERT statement may be executed in parallel. The actual data changes are then serially applied to the database. Static and keyset cursors can be populated by parallel execution plans. However, the behavior of dynamic cursors can be provided only by serial execution. The query optimizer always generates a serial execution plan for a query that is part of a dynamic cursor. At execution time, SQL Server determines if the current system workload and configuration information allow for parallel query execution. If parallel query execution is warranted, SQL Server determines the optimal number of threads and spreads the execution of the parallel query across those threads. When a query starts executing on multiple threads for parallel execution, the query uses the same number of threads until completion. SQL Server reexamines the optimal number of thread decisions each time a query execution plan is retrieved from the procedure cache. For example, one execution of a query can result in use of a serial plan, a later execution of the same query can result in a parallel plan using three threads, and a third execution can result in a parallel plan using four threads. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 15:41 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
и еще тоже из 2000 BOL max degree of parallelism Option Use the max degree of parallelism option to limit the number of processors (a maximum of 32) to use in parallel plan execution. The default value is 0, which uses the actual number of available CPUs. Set max degree of parallelism to 1 to suppress parallel plan generation. Set the value to a number greater than 1 to restrict the maximum number of processors used by a single query execution. If a value greater than the number of available CPUs is specified, the actual number of available CPUs is used. Note If the affinity mask option is not set to the default, it may restrict the number of CPUs available to Microsoft® SQL Server™ on a symmetric multiprocessor (SMP) systems. Change max degree of parallelism rarely for servers running on an SMP computer. If your computer has only one processor, the max degree of parallelism value is ignored. max degree of parallelism is an advanced option. If you are using the sp_configure system stored procedure to change the setting, you can change max degree of parallelism only when show advanced options is set to 1. The setting takes effect immediately (without a server stop and restart). в общем читайте BOL - там все написано, ключевое слово parallelism ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 15:44 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
бол это понятно. как понимать статью про UMS. почему сказано что использование множества коннектов есть единственный способ балансирования межпроцессорной нагрузки ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 16:05 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
MsDatabaseruбол это понятно. как понимать статью про UMS. почему сказано что использование множества коннектов есть единственный способ балансирования межпроцессорной нагрузки ну а какие еще способы вы знаете? вот предположем у вас есть 2 кучи - первая - пшено, 2-я камни, разных размеров, форм и веса у вас задача - уравновесить весы, что будет проще уравновесить? 1000 крупинок или 3 камня? помойму - это должно быть очевидно ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 16:13 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
методика разумна, но я не об этом, насколько я понял, в статье говорится что когда сервер работает в режиме UMS то запросы получаемые планировщиком от связанного с ним коннекта могут быть выполнены на другом процессоре только в случае наличия в нем расширенной хранимой процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 16:24 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
MsDatabaseruметодика разумна, но я не об этом, насколько я понял, в статье говорится что когда сервер работает в режиме UMS то запросы получаемые планировщиком от связанного с ним коннекта могут быть выполнены на другом процессоре только в случае наличия в нем расширенной хранимой процедуры. ничего неи понял про расширенную хранимую процндуру тынц на источник е? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 16:34 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
непмню откуда инфа в статье только UMS пытается ограничить число активных потоков до одного на процессор. Есть исключения из этого правила, например, полнотекстовый поиск, проверка правил безопасности, вызовы xproc, запросы к прилинкованным серверам и так далее. Но в нормальном режиме работы система позволяет одновременно существовать только одному потоку на процессор. т.е. тут все равно в рамках одного проца ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 17:32 |
|
Выбор процессора для сервера под SQL
|
|||
---|---|---|---|
#18+
SQL Server умеет при выполнении запроса создавать дополнительные потоки при условии возможности распараллеливания этого запроса. А уж созданые потоки заюзают необходимые им процессоры из числа доступных. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2007, 17:46 |
|
|
start [/forum/topic.php?fid=30&fpage=91&tid=1532371]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 274ms |
total: | 394ms |
0 / 0 |