Есть сервер БД (mssql).
На нем крутятся порядка 10 баз для 5 разных систем.
Периодически бывают дикие тормоза а-ля селект топ 1 не работает.
Сейчас столкнулись, что иногда быстро пофиксить проблему не удается, т.к. причины тормозов могут быть разные и главное у нас нет экспертов,
которые могут смотреть на проблему в общем: проблема железа или же ef запросы криво строит или же селекты в процедуре криво написаны.
Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки.
Кто-то подскажет может?
Может кто имел опыт и подскажет как искать проблему или ресурсы, книги?
Здравствуйте, merge, Вы писали:
M>Есть сервер БД (mssql). M>На нем крутятся порядка 10 баз для 5 разных систем.
На одном инстансе?
M>Периодически бывают дикие тормоза а-ля селект топ 1 не работает.
Настройки инстанса какие?
Посмотри для начала ограничения максимальной памяти. Если она не ограничена,
поставь ограничение, чтобы у ОС был хотя бы гигабайт своей памяти, плюс сколько
нужно другим приложениям. Иначе дикий своп, ЦПУ под 100%, и тормоза как ты описал.
M>Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки.
Есть. И даже не за очень приличные деньги. ИМХО, вполне скромные.
Иногда и бесплатные советы помогают.
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, merge, Вы писали:
M>>Есть сервер БД (mssql). M>>На нем крутятся порядка 10 баз для 5 разных систем. _AB>На одном инстансе?
да.
M>>Периодически бывают дикие тормоза а-ля селект топ 1 не работает. _AB>Настройки инстанса какие?
_AB>Посмотри для начала ограничения максимальной памяти. Если она не ограничена, _AB>поставь ограничение, чтобы у ОС был хотя бы гигабайт своей памяти, плюс сколько _AB>нужно другим приложениям. Иначе дикий своп, ЦПУ под 100%, и тормоза как ты описал.
память 0 — 2147483647 мб.
"сколько нужно другим приложениям" — это сложно понять. веб и дб на разных серверах. ок — допустим 500мб норм?
M>>Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки. _AB>Есть. И даже не за очень приличные деньги. ИМХО, вполне скромные. _AB>Иногда и бесплатные советы помогают.
_AB>Пройдись по этой книге. Для начала, ИМХО, сойдет. _AB>https://www.brentozar.com/archive/2008/03/sql-server-2005-setup-checklist-part-1-before-the-install/
_AB>Там не всё ты будешь делать, конечно. Но ознакомиться с тем, что там есть и иметь представление о том, _AB>что там написано, вполне полезно.
Здравствуйте, merge, Вы писали:
M>"сколько нужно другим приложениям" — это сложно понять. веб и дб на разных серверах. ок — допустим 500мб норм?
Если других нет приложений, то оставь для начала 1.5 ГБ, пожалуй.
Посмотри — улучшения должны быть практически мгновенными.
Если не поможет — увеличь до 2.
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, merge, Вы писали:
M>>"сколько нужно другим приложениям" — это сложно понять. веб и дб на разных серверах. ок — допустим 500мб норм? _AB>Если других нет приложений, то оставь для начала 1.5 ГБ, пожалуй. _AB>Посмотри — улучшения должны быть практически мгновенными. _AB>Если не поможет — увеличь до 2.
_AB>Вообще, сколько всего памяти на сервере?
Здравствуйте, _ABC_, Вы писали:
_AB>Здравствуйте, merge, Вы писали:
M>>"сколько нужно другим приложениям" — это сложно понять. веб и дб на разных серверах. ок — допустим 500мб норм? _AB>Если других нет приложений, то оставь для начала 1.5 ГБ, пожалуй. _AB>Посмотри — улучшения должны быть практически мгновенными. _AB>Если не поможет — увеличь до 2.
_AB>Вообще, сколько всего памяти на сервере?
самое интересное, что сейчас 98% памяти занято и всё под сиквел. а цп — 71%.
получается памяти не хватает или сиквел ее не отдает однажды получив?
Здравствуйте, merge, Вы писали:
M>получается памяти не хватает или сиквел ее не отдает однажды получив?
Второе, он скушает все что ты ему отдал и раз скушав не захочет отдавать. Т.е. это не означает что ему плохо. Поэтому важно в настройках сиквела указать максимально доступный объем памяти.
Почитать можно бесплатную в pdf "Troubleshooting SQL Server: A Guide for the Accidental DBA".
Здравствуйте, merge, Вы писали:
M>получается памяти не хватает или сиквел ее не отдает однажды получив?
Не отдает. Пока в своп всё падать не будет — не отдаст. Да и потом не особо щедрым будет.
С 96ГБ можно ОС 4ГБ отдать и помониторить.
Здравствуйте, merge, Вы писали:
M>Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки. M>Кто-то подскажет может?
Я такой
M>Может кто имел опыт и подскажет как искать проблему или ресурсы, книги?
Главный ресурс MS SQL books online, но читать заманаешься.
Мне больше всего помогли видео оп MS SQL на plauralsight. Там многие вещи разжеваны и даны ссылки ан правильные статьи по оптимизаци.
Начните с локализации проблемы. Откройте activity monitor в SSMS и смотрите что происходит во время зависаний. Также обынй виндовый perfmon можем помочь.
Здравствуйте, merge, Вы писали:
M>самое интересное, что сейчас 98% памяти занято и всё под сиквел. а цп — 71%.
Объем баз какой?
Какой профиль запросов — соотношение чтения \ записи, тяжелых аналитических \ простых SELECT TOP 1 запросов?
M>получается памяти не хватает или сиквел ее не отдает однажды получив?
Не отдает. Настройте макс объем памяти, чтобы системе оставалось.
Здравствуйте, merge, Вы писали:
M>Есть сервер БД (mssql). M>На нем крутятся порядка 10 баз для 5 разных систем. M>Периодически бывают дикие тормоза а-ля селект топ 1 не работает. M>Сейчас столкнулись, что иногда быстро пофиксить проблему не удается, т.к. причины тормозов могут быть разные и главное у нас нет экспертов, M>которые могут смотреть на проблему в общем: проблема железа или же ef запросы криво строит или же селекты в процедуре криво написаны.
M>Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки. M>Кто-то подскажет может?
M>Может кто имел опыт и подскажет как искать проблему или ресурсы, книги?
M>Спасибо
У всех вендоров БД есть такие ребята. Я работал по Java, но пересекался с ребятами из MySQL. База то какая?
Здравствуйте, Aib, Вы писали:
Aib>Здравствуйте, merge, Вы писали:
M>>Есть сервер БД (mssql). Aib>У всех вендоров БД есть такие ребята. Я работал по Java, но пересекался с ребятами из MySQL. База то какая?
Здравствуйте, merge, Вы писали:
M>Есть сервер БД (mssql). M>На нем крутятся порядка 10 баз для 5 разных систем.
Ну, уже плохо, ты даже не будешь знать, какая из систем тормозит...
Надо 5 серверов по одной базе каждый.
M>Вопрос такой: слышал есть эксперты по оптимизации, которые за короткие сроки и приличные деньги могут находить проблемные участки. M>Кто-то подскажет может?
Ну я таким занимался, но это НЕ короткое время, и соотв. деньги немалые.
M>Может кто имел опыт и подскажет как искать проблему или ресурсы, книги?
Не, надо долго и нудно изучать систему, поведение её, структуру БД, запросы,
мониторить, настраивать, ....
В общем, долго толочь воду в ступе, пока она наконец вся не высохнет.
Идея проста: запрос либо выполняется и кушает проц, либо ждет.
Ждать он может много чего, пока осовбодиться ядро, память, диск, произойдет сетевой ио, локов, латчей и т.д.