Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
Всем привет! Занимаемся тут оптимизацией сиквела (MS SQL 2012)! Вопрос вообщем такой, заметили тенденцию, что при подключении к серверу 150 пользователей в секунду, CPU загружается почти на 100%. Может кто нить сталкивался с такой проблемкой, и если можно тыкните направление движения! Спасибо.
25 июл 14, 18:06    [16359193]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
gandjustas
Member

Откуда:
Сообщений: 857
Блог
temoxa
Всем привет! Занимаемся тут оптимизацией сиквела (MS SQL 2012)! Вопрос вообщем такой, заметили тенденцию, что при подключении к серверу 150 пользователей в секунду, CPU загружается почти на 100%. Может кто нить сталкивался с такой проблемкой, и если можно тыкните направление движения! Спасибо.


Для начала смотреть wait statistics, а потом делать выводы.
Эти 150 пользователей что делают? Скорее всего запросы какие-то. Высокая нагрузка на процессор может быть по разным причинам.
25 июл 14, 18:10    [16359205]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
temoxa
Вопрос вообщем такой, заметили тенденцию, что при подключении к серверу 150 пользователей в секунду, CPU загружается почти на 100%. Может кто нить сталкивался с такой проблемкой, и если можно тыкните направление движения!
Ну естественно сталкивались, при возрастании количества запросов нагрузка возрастает :-)

Причины обычно могут быть две:
1) массовые перекомпиляции
2) тяжёлые для процессора запросы.

Направление простое - смотреть профайлером что делается на сервере, и думать.
Например, можно отловить запросы, которые потребляют много CPU
Или можно увидеть, что на сервер текут широкой рекой непараметризированные ad-hoc запросы, и сервер не может закешировать их планы выполнения...
25 июл 14, 23:18    [16360059]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
temoxa
150 пользователей в секунду

Т.е. у вас именно 150 _подключений_ в секунду ?
25 июл 14, 23:29    [16360088]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
+ дополню: spinlock contention
26 июл 14, 01:22    [16360289]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
Glory, начинает погружаться CPU как только подключений к бд приближается у ~150 пользователей/сек... при меньшем количестве все более менее нормально работает...
27 июл 14, 18:17    [16363243]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
В продолжении тематики о производительности хотелось бы услышать мнения про размещение файлов бд и влияния этого на производительность. По бест практис лучше все размещать фалы бд, лог файла и файла темповой бд на разных ФИЗИЧЕСКИХ дисках. Кто прочувствовыл это на практике? Есть ли прирост в производительности? Может есть еще какие нить советы по размещению и настройки файлов бд... Спасибо.
27 июл 14, 18:20    [16363258]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
mag2000
Member

Откуда:
Сообщений: 182
temoxa,
автор
Кто прочувствовыл это на практике?

Это чувствуют очень многие. Не зря же это называют Best Practics.
Но, если у вас сервер без должной нагрузки, то вы можете ничего не почувствовать даже, если у вас все файлы на одном RAID5, например.
28 июл 14, 09:59    [16364603]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
Некоторые клиенты имеют привычку спамить запросы о структуре данных из системных таблиц при подключении. Неудивительно, что проц ложится при этом. Смотрите профайлером, что происходит.
28 июл 14, 12:10    [16365389]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
Владислав Колосов, что из себя представляют эти запросы? Как их можно идентифицировать Profilerом? Спасибо.
28 июл 14, 13:52    [16366089]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
temoxa
Владислав Колосов, что из себя представляют эти запросы? Как их можно идентифицировать Profilerом? Спасибо.

Запросы к INFORMATION_SCHEMA , sys.objects, etc.
Обычно всякие ормы этим занимаются, хотя разработчики имеют возможность отключать такое поведение, но.
28 июл 14, 14:22    [16366290]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
Ken@t, Спасибо.
29 июл 14, 12:22    [16370497]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Crimean
Member

Откуда:
Сообщений: 13147
+1 к "смотреть надо"
а то вдруг там постоянные коннект - дисконнект. или метаданные какие-то прикладуха в комментах кидает а это формально разные запросы и компиляции.. очень много вариантов может быть
29 июл 14, 12:30    [16370544]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
В профайлере вываливается EventClass = 15 c пустым TextData, но с большим значением Duration... В принципе вся работа идет через вызов хранимок, схема по профайлеру такая:
1) EventClass TextData
10 exec sp_reset_connection
2) EventClass TextData
14 -- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed
3) вызов хранимки
EventClass TextData
10 exec sp
4) EventClass TextData
15 NULL
29 июл 14, 17:41    [16372623]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
temoxa
Member

Откуда:
Сообщений: 405
И вот в таком русле вызываются процедуры... 15 EventClass ни на что влияет? Читал что это Logout, а вот почему стока занимает по времени?
29 июл 14, 17:43    [16372634]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Crimean
Member

Откуда:
Сообщений: 13147
temoxa,

трас сохраняем в trc файл, зипуем и атачим к посту здесь или выкладываем куда и даем ссылку для скачивания. а то вашу "шифровку" читать крайне затруднительно
а 15 тип - это логаут. там будет много всего. и это ничего не показывает
29 июл 14, 17:45    [16372641]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8723
автор
почему стока занимает по времени


Стока, скока коннект длился.
29 июл 14, 18:47    [16372890]     Ответить | Цитировать Сообщить модератору
 Re: Нагрузка SQL Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31912
temoxa
Читал что это Logout, а вот почему стока занимает по времени?
В принципе нестрашно, но может свидетельствовать об ошибке управления коннектами из приложения (не делается логаут, и коннект закрывается после прохода сборщика мусора), которая может привести к ошибке отказа в коннекте.

Для диагностики черезмерной загрузки процессора смотрите на значение CPU
29 июл 14, 19:29    [16373018]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить