Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
Дано:
База tempdb расположена на 2х дисках. Быстром & маленьким D и медленном & большом Е.
На диске D расположены 8 файлов данных фиксированного размера 4 Гб каждый, и файл лога размером 8Гб, также фиксированного размера. Авторасширение файлов выключено.
На диске Е расположен 1 файл данных размером 10 Мб, и 1 файл лога, размером 10 Мб.
Авторасширение включено.

Результат.
Сервер будет использовать файлы на быстром диске, до тех пор, пока там будет свободное место. Файл на медленном диске использоваться не будет. Он начнет использоваться в случае, если файлы данных заполнятся. То же и с логом.
Но(!) сервер начнет использовать преимущественно файл на медленном диске, когда его размер станет больше 4Гб, и начнет игнорировать файлы на быстром диске.

Сервер 2014 стандарт сп2.

Всё это действо планируется как одна из мер для ускорения базы 1С, при массовом конкурентном доступе (более 200 пользователей одновременно).
В качестве маленького, но быстрого диска планируется рамдиск.
9 ноя 16, 20:59    [19876944]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
Файлы данных будет заполнять пропорционально, но тк размер 10Мб, не знаю, полезет ли он в него.
А второй файл лога начнет использовать только при переполнении первого лога.
В связи с чем сразу скажу, что размер второго файла лога дурацкий, и приращение наверное и того хуже
9 ноя 16, 21:11    [19876967]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
o-o, лог, статистически, редко переваливает за 12 Гб, и часто как раз примерно 8Гб и есть.
Планирую сделать маленький файл лога размером 10 Мб и расширение таким же.

Про файлы данных - не понял.

Сейчас размер темпдб доходит до 100 гб, иногда чуть больше.
Думаю, что после описанного выше допиливания размер будет несколько меньше, и большей частью помещаться на рамдиск.
Волнует тот момент, когда рамдиск переполнится, и голкипер на hdd раздуется больше, чем до 4 ГБ.
Как я понимаю, он станет использоваться более приоритетно.
9 ноя 16, 21:26    [19876990]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
1. Прежде чем что-то оптимизировать, нужно убедится, что это что-то является узким местом.
2. Файлы данных заполняются одновременно и пропорционально их размерам.
3. Файлы журнала заполняются последовательно.
9 ноя 16, 21:34    [19877009]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
invm,
1. Да, темпдб - одно из узких мест. Считаем это доказанным. Перенос темпдб на зеркало из 2х ssd дало прирост производительности примерно в 4 раза.
2. Ага, понял. Значит файл - голкипер на hdd должен быть 1Мб.
3. Т.е. по мере завершения транзакций, задействующих лог, расположенный на рамдиске, следующие транзакции опять будут этот файл использовать. ЧУдно.
9 ноя 16, 21:50    [19877049]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
invm
2. Файлы данных заполняются одновременно и пропорционально их размерам.

Вообще-то пропорционально свободному месту в них.
Это несколько другое, например, если добавлять файлы потом.
Ну типа если есть 2 файла по гигабайту, заполним их гигабайтом данных, в каждом будет по 500Мб.
Если я добавлю еще 2 файла по гигибайту и буду лить снова гигабайт, он уйдет в последние 2 файла, тк в них свободного места по гигабайту,
и не уйдет этот гигабайт в каждый из четырех файлов по 250Мб, типа размеры же одинаковы, раздам всем поровну.

Вот я и думаю, если свободного места в файле на втором диске всего 10Мб, когда он в него полезет?
Видимо, не сразу, а когда в тех файлах на первом диске останется примерно по 10Мб
9 ноя 16, 21:52    [19877058]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
uaggster
Планирую сделать маленький файл лога размером 10 Мб и расширение таким же.

Говорю, дурацкий размер и такое же приращение.
Если у вас объемы в лог уходят до 12Гб, вы понимаете, сколько раз придется нарастить недостающие 12-8 = 6Гб, когда приспичит, кусками по 10Мб?
Мама дорогая....
9 ноя 16, 22:02    [19877091]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
o-o, Ну да, это и нужно. Файл на hdd нужен, чтобы сервер аварийно не встал при переполнении рамдиска.
А, с учетом того, что рамдиск, скажем так, сильно быстрее, есть некоторая надежда, что объекты в темпдб будут жить в среднем меньше, и поэтому их тоже будет меньше (всякие спулинги и т.д.), одновременно находящихся в темпдб.
И, собственно, сама база тоже будет компактнее, и будет почти влезать в 40Гб рамдиска (к сожалению, максимум сколько можно выделить. И даже это скорее 32Гб будет, тогда файлы данных будут по 6Гб).
9 ноя 16, 22:04    [19877101]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
o-o
uaggster
Планирую сделать маленький файл лога размером 10 Мб и расширение таким же.

Говорю, дурацкий размер и такое же приращение.
Если у вас объемы в лог уходят до 12Гб, вы понимаете, сколько раз придется нарастить недостающие 12-8 = 6Гб, когда приспичит, кусками по 10Мб?
Мама дорогая....

Т.е. лог имеет смысл сделать 8 основной, без приращения + 6 дополнительный (к примеру) гб, с приращением мегабайт в 100?
И юзаться будет большей частью основной?
9 ноя 16, 22:09    [19877124]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
o-o
Вообще-то пропорционально свободному месту в них.
Да, конечно.
9 ноя 16, 22:15    [19877144]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
Граждане, у меня 12 - 8 = 6, это называется "приплыли", беру музыкальную паузу, а то щас еще фигни понапишу, процесс пошел
9 ноя 16, 22:18    [19877152]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
uaggster
Member

Откуда:
Сообщений: 1155
o-o
Граждане, у меня 12 - 8 = 6, это называется "приплыли", беру музыкальную паузу, а то щас еще фигни понапишу, процесс пошел

Ну... я ж написал, что обычно 8-12, иногда немного больше.
Эти дополнительные файлы будут располагаться на зеркале из 2х 170 Гб ssd. И места то, в общем, не жалко :-)
9 ноя 16, 22:24    [19877178]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
Владислав Колосов
Member

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

чем меньше приращение журнала, тем больше деградирует производительность из-за большого количества VLF - виртуальных файлов в журнала.
10 ноя 16, 10:20    [19878036]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9160
Наилучшим вариантом будет сразу задать нужный для работы размер журнала и баз без приращений. Если какая-то операция съест журнал, проведите анализ и примите меры.
10 ноя 16, 10:23    [19878048]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
Владислав Колосов
Наилучшим вариантом будет сразу задать нужный для работы размер журнала и баз без приращений. Если какая-то операция съест журнал, проведите анализ и примите меры.

Не катит.
Первое, это если он сразу задаст большой размер файла данных на втором диске, то его тут же заюзает сервер, а у ТС задача лезть на медленный диск только если не хватило места на первом.
Ну и запретить автоприращение это получить сюрприз в виде остановки работы, вот это нафига интересно?
Неужели без экстрима никак?
А просто проверять временами размер файлов на втором диске это не вариат, адреналина маловато выработается?
10 ноя 16, 10:40    [19878104]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
сейчас расскажу, какой "анализ" может выйти из всего этого.

речь не о какой-то вашей *личной* базе, а о темпдб,
она одна на весь сервер.
и сливать в темпдб может кто угодно,
а пострадать от этого может вообще третье лицо.

у наших деятелей темпдб лежит на диске в 100Гб (смешно, да)
были сконфигурированы 8 файлов по 10Гб и лог 1Гб.
вылезти за 100Гб невозможно (ура, экстрим!)
автоприращение правда оставили (спасибо, братья)

однажды моя начальница узнала, что сортировка больших объемов идет в темпдб.
ну не верить же на слово, правда?
она тут же забабахала селект * из 400Гб-таблицы с сортировкой.
через несколько минут получила переполнение темпдб, все ок, отвалилась и ладно.
и все бы хорошо, но в тот день она сама нагадила, сама отвалилась, никому не призналась.
никто и не заметил.

и вот в воскресенье стартует чекдб
и отваливается по причине нехвата места в файле лога темпдб.
до этого хватало, прикольно, да?
нашим админам фиолетово, отвалилось чекдб, ну и черт с ним.
и пойди угадай теперь, в чем же дело.
а дело все в том, что у нас любят перегружать сервер, но не любят смотреть, докуда вырастают файлы.
ну и лог видимо подрастает во время работы чекдб до нужного размера, только кто ж на это смотрит?
(это до сих пор загадка для меня, зачем чекдб хочет так много именно ЛОГА темпдб)

в то воскресенье лог не смог подрасти, сколько надо, т.к. оставленные на все 100Гб забили *файлы данных* темпдб,
спасибо начальнице с ее сортировкой.

теперь внимание, вопрос:
как бы вы проанализировали,
что же такое произошло и почему чекдб всегда нормально отрабатывало,
а тут вдруг полетело?
в воскресенье поезд давно ушел, пойди узнай, кто нагадил.
а лечится у нас все перезагрузкой сервера.

итого: сервер перегрузили, темпдб создалось как и раньше, чекдб не отваливается.
решили проблему?
да нифига.
завтра другой деятель заколбасит подобный сорт и все повторится.
-----
автоприрост должен быть.
размер файлов в процессе работы надо проверять.
если бы они смотрели, докуда растет лог темдб,
и выставили этот размер как начальный размер лога,
вот тогда бы решили проблему.
10 ноя 16, 11:13    [19878242]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o,

вроде и не пятница, а уже про начальницу :)
10 ноя 16, 11:19    [19878282]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
архивариус
Member

Откуда:
Сообщений: 175
uaggster
Дано:
База tempdb расположена на 2х дисках. Быстром & маленьким D и медленном & большом Е.
uaggster
На диске D расположены 8 файлов данных фиксированного размера 4 Гб каждый
1. На 2014 не вижу смысла в нескольких файлах данных на одном диске, проблема была до 2014(или 2012)
1.1. issue called page contention on GAM, SGAM, or PFS pages
1.2. Correctly adding data files to tempdb
2. Один большой файл на быстром диске - большая часть нагрузки будет на этот файл, меньшая на файл на медленном диске (чего и хотите добиться). URL выше.
uaggster
, и файл лога размером 8Гб, также фиксированного размера. Авторасширение файлов выключено.
На диске Е расположен 1 файл данных размером 10 Мб, и 1 файл лога, размером 10 Мб.
Авторасширение включено.

Результат.
Сервер будет использовать файлы на быстром диске, до тех пор, пока там будет свободное место. Файл на медленном диске использоваться не будет. Он начнет использоваться в случае, если файлы данных заполнятся. То же и с логом.
Но(!) сервер начнет использовать преимущественно файл на медленном диске, когда его размер станет больше 4Гб, и начнет игнорировать файлы на быстром диске.

Сервер 2014 стандарт сп2.

Всё это действо планируется как одна из мер для ускорения базы 1С, при массовом конкурентном доступе (более 200 пользователей одновременно).
В качестве маленького, но быстрого диска планируется рамдиск.
3. По логам:
3.1. Multiple log files and why they’re bad
3.2. Importance of proper transaction log size management
3.3. По фрагментации VLF с 2012 или 2014 вроде не актуально стало, ссылки нет.
10 ноя 16, 11:42    [19878419]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
а я и не про пятницы, я про "счастливые" воскресенья
да и картинок давно не было, как-то серо на форуме, щас исправим.

вот оно, я все еррорлоги себе в копилку собираю,
нету фильтра на дату, только на ошибку,
смотрите, он жалуется на маленький лог tempdb только по воскресеньям,
это чекдб по всем базам.

К сообщению приложен файл. Размер - 103Kb
10 ноя 16, 11:46    [19878458]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
архивариус
1. На 2014 не вижу смысла в нескольких файлах данных на одном диске, проблема была до 2014(или 2012)
1.1. issue called page contention on GAM, SGAM, or PFS pages
1.2. Correctly adding data files to tempdb

простите, в какой именно из этих двух статей написано, что в 2012/2014 или только в 2014
отпала необходимость в куче файлов, и как же там решено tempddb contention?
можно прямо цитатой, потому что я не вижу.
спасибо.
10 ноя 16, 11:52    [19878492]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
архивариус
Member

Откуда:
Сообщений: 175
o-o
архивариус
1. На 2014 не вижу смысла в нескольких файлах данных на одном диске, проблема была до 2014(или 2012)
1.1. issue called page contention on GAM, SGAM, or PFS pages
1.2. Correctly adding data files to tempdb

простите, в какой именно из этих двух статей написано, что в 2012/2014 или только в 2014
отпала необходимость в куче файлов, и как же там решено tempddb contention?
можно прямо цитатой, потому что я не вижу.
спасибо.

там описана суть проблемы, зачем били на много файлов.
Статью в какой версии это пофиксили поищу, но возможно не быстро...
10 ноя 16, 11:56    [19878507]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
архивариус
По логам:
3.1. Multiple log files and why they’re bad

Randal
What I care about is performing a restore during disaster recovery. If the log files don't exist, they must be created and zero-initialized, and twice if you restore a diff backup too as both the full and diff restores zero out the log. If the first log file is as big as it can be, and there's a second log file still, that's potentially a lot of log file to zero initialize, which translates into more downtime during disaster recovery.

извините, у нас в темпдб происходит crash recovery?
ссылочку можно?
---
я не оспариваю Рэндала,
я интересуюсь, как написанное соотносится с происходящим в *темпдб*
10 ноя 16, 11:58    [19878515]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
o-o
архивариус
1. На 2014 не вижу смысла в нескольких файлах данных на одном диске, проблема была до 2014(или 2012)
1.1. issue called page contention on GAM, SGAM, or PFS pages
1.2. Correctly adding data files to tempdb

простите, в какой именно из этих двух статей написано, что в 2012/2014 или только в 2014
отпала необходимость в куче файлов, и как же там решено tempddb contention?
можно прямо цитатой, потому что я не вижу.
спасибо.

ну там точно такого нет. И вряд ли есть решение с конкуренцией, хотя ядро допилили прилично...
ну для 2012 рекомендация та же https://support.microsoft.com/en-us/kb/2154845
10 ноя 16, 12:03    [19878533]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
архивариус
o-o
пропущено...

простите, в какой именно из этих двух статей написано, что в 2012/2014 или только в 2014
отпала необходимость в куче файлов, и как же там решено tempddb contention?
можно прямо цитатой, потому что я не вижу.
спасибо.

там описана суть проблемы, зачем били на много файлов.
Статью в какой версии это пофиксили поищу, но возможно не быстро...

так я вроде как раз понимаю, почему происходит это tempdb contention.
я кучу объектов одновременно хочу разместить,
и это ж мне надо отобразить все allocated pages в IAM и PFS.
так если у меня один файл, я долблюсь в одно место,
а если 8 файлов, то в 8 мест.
мне интересно, как это пофиксили в старших версияx,
я понимаю, что если в 8 разных мест, то нагрузка в 8 раз уменьшилась,
а еще как?
---
про CRASH RECOVERY IN TEMPDB я знаю наверняка, ссылку вы не найдетe,
темпдб пересоздается при рестарте и НЕ рекаверится.
а про tempdb contention ну мало ли, что изобрели.
я честно не знаю, буду ждать ответ.
можно без ссылки, на пальцах, в чем суть разруливания
10 ноя 16, 12:05    [19878544]     Ответить | Цитировать Сообщить модератору
 Re: Правильно ли я понимаю, как MSSQL будет работать с tempdb?  [new]
o-o
Guest
TaPaK
o-o
пропущено...

простите, в какой именно из этих двух статей написано, что в 2012/2014 или только в 2014
отпала необходимость в куче файлов, и как же там решено tempddb contention?
можно прямо цитатой, потому что я не вижу.
спасибо.

ну там точно такого нет. И вряд ли есть решение с конкуренцией, хотя ядро допилили прилично...
ну для 2012 рекомендация та же https://support.microsoft.com/en-us/kb/2154845

у нас постоянно мысли сходятся в последнее время
[img]http://www.en.kolobok.us/smiles/standart/drinks.gif[/img]
10 ноя 16, 12:07    [19878552]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить