Розміщення журналу транзакцій на окремому томі [твердий стан]?


12

Журнали транзакцій часто виділяються на окремому томі. Як я розумію, це обґрунтування цієї практики полягає в тому, що дані журналу транзакцій записуються послідовно - і жорсткі диски можуть виконувати операції запису із значно більшою швидкістю послідовно, а не випадковим чином. Це пов’язано з маленькою голкою всередині накопичувача, яка повинна просунути набагато меншу відстань під час запису послідовних блоків даних, на відміну від випадкових записів.

(Вибачте за наївну інтерпретацію. Просто намагаюся зрозуміти те, що я прочитав.)

Зважаючи на це ... Мені здається, що на твердотільних накопичувачах немає маленьких голок і блюдців і речей, що рухаються всередині них. Якщо моя база даних та журнал транзакцій розташовані на одному RAID 5 з восьми твердотільних дисків, чи дійсно є перевага для переміщення журналу транзакцій на його окремий том? Якщо передбачуване підвищення ефективності ґрунтується на припущенні послідовного запису скорочення відстані, яку голки рухаються, а пластини крутяться, а твердотільний привід не має жодної з цих рухомих частин, що я отримую, ізолюючи журнал?


У вас ще є автобуси та буфери для розгляду. Я б тримав їх окремо, оскільки схема вводу / виводу відрізняється. Якщо ваші програми не дуже транзакційні, ви, швидше за все, не знаєте різниці, якщо вартість - це проблема.
Ерік Хіггінс

Використовуючи термін "шина" ... ви посилаєтесь на шлях, який дані беруть з материнської плати до карти RAID?
Чад Декер

2
"чи дійсно є можливість перенести журнал транзакцій у свій окремий том?" майже напевно немає, але дійсно є швидкість в бік переміщення всього масиву до RAID10 і надійність в бік перевищення (тобто
нерозбиття

Відповіді:


10

Коротка відповідь, використовуйте один масив, навряд чи буде досягнуто підвищення продуктивності від відокремлення журналів від даних на 8 SSD-накопичувачах. Дивіться SQL на SSD: Hot and Crazy Love для більш детального (і розважального) коментаря до SSD. Зверніть особливу увагу на примітки щодо корельованих відмов SSD.

Відокремлення журналів від даних на SSD - це скоріше RPO (мета точки відновлення), ніж питання продуктивності. Поняття полягає в тому, що ви можете зменшити свій RPO, відокремлюючи журнали від даних, так що у випадку відмови масиву даних ваш масив журналів повинен / може залишатися доступним. Обережні розглядають іншу марку / модель приводу в кожному з двох масивів, щоб пом'якшити відповідність проблеми відмови, якщо RPO була критичною.

Зауваження щодо пропускної здатності шини не мають значення. Якщо вам потрібно змінити стільки вводу-виводу, у вас виникнуть більші проблеми.


-4

Є група, яка погоджується, що на жорсткому диску було б вигідно відокремитись, вони все ще стверджують, що для накопичувачів SSD це більше не потрібно.

Тож для них я хочу запитати "якщо немає жодних суперечок, то чому RAID 10? Більше не потрібно знімати! Тому достатньо лише дзеркального відображення, і, звичайно, немає необхідності у 8 дисках, 2х в базі даних розмір повинен бути достатнім! ".

Однак реальність така: якщо комусь потрібен RAID 10, це файл журналу!

Це не лише через проблему послідовного проти випадкового (див. Ресурси нижче), але це насправді дуже важливо, коли ви зрозумієте, як працюють накопичувачі SSD.

Щоб зробити коротку історію короткою (докладніший опис див. На http://arstechnica.com/information-technology/2012/06/inside-the-ssd-revolution-how-solid-state-disks-really-work/ ), SSD-накопичувач дуже ефективний при зчитуванні та написанні нулів, однак виписувати їх не так ефективно, оскільки він повинен стерти весь розділ, щоб написати навіть один!

Хоча це не проблема для загальних записів, оскільки вони так чи інакше буферизовані в пам’яті та виписані в межах кордонів сторінки, це головна проблема для файлу журналу, оскільки файл журналу обходить будь-який кеш і замість цього SQL-сервер блокує до журнали записуються на диск !, а це означає, що для кожного запису буде, ймовірно, стирання повного розділу.

Щоб оптимізувати це, я б запропонував присвятити кожному додатковому диску (крім 2x розміру бази даних, не потрібно знімати!) Для файлу журналу, таким чином він зможе обробити якомога більше за коротший проміжок часу.

СТАРИЙ ВІДПОВІДЬ

Відповідь - так, з трьох причин. 1) Випадкові та послідовні - Хоча зрозуміло, що SSD різко збільшив продуктивність для випадкових записів, все-таки проблема випадкових та послідовних записів залишається, як видно з наступних посилань та посилань:

2) Надійність - Є велика ймовірність того, що всі накопичувачі SSD будуть виходити з ладу одночасно; у цьому випадку RAID не захищає, однак, оскільки накопичувач SSD, який використовується виключно для послідовних, має інший термін служби, це може бути вашим рятувальником

3) Конфіденція запису - Причина розміщення журналів на власному шпинделі не лише через випадкові проти послідовних, але і через суперечки щодо запису, як видно з того, що також рекомендується мати tempdb на окремому томі, який вказує що питання тут також стосується суперечки щодо написання.

І це повинно застосовуватися ще більше для файлу журналу, оскільки записує в журнал блоки транзакцій, що вважаються здійсненими, поки вони не записуються на поверхню диска.

Насправді для журналів ви можете використовувати звичайні диски жорсткого диска як білий документ Dell на веб- сайті http://www.dell.com/downloads/global/products/pvaul/en/ssd_vs_hdd_price_and_performance_study.pdf

EDIT

Microsoft рекомендує розміщувати tempdb у власному масиві для спінінгу дисків

та багато інших, і це загальноприйняте поняття в Sql Server, хоча ніхто не висловив проблеми з розщепленням масиву.

Крім того, команда SQL Server створила концепції розділів Filegroup та Partioining з єдиним наміром мати можливість перемістити їх на окремий масив.

І насправді MSDN за адресою http://msdn.microsoft.com/en-us/library/ms187087(v=sql.105) рекомендує, що може бути користь для продуктивності від розділення некластерного індексу на його власний масив (хоча це не слід сприймати як загальну пораду для кожної ситуації, лише щодо конкретних навантажень, докладнішу інформацію див. на веб-сторінці http://weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA -Monkey.aspx ).

Як таке, це просто логічне розширення, щоб сказати, що причина розлуки на спінінг-дисках не просто пов'язана з питанням послідовного проти випадкового читання, але із загальним спорним записом, що стосується і SSD-дисків.

Хоча, можливо, деякі люди не погоджуються з цією порадою і вважають, що вкладати tempdb і його власний обсяг (як Джек Дуглас) немає користі, і ви навіть можете стверджувати, що від розділення файлів журналу немає користі (як Марк Сторі -Smith), і замість цього стверджуйте, що розділення масиву набагато гірше, все ж не забувайте, що це новий підхід, що суперечить загальноприйнятому підходу, запропонованому Microsoft та спільнотою, і поки що ніхто не надав посилань на будь-які еталонні тести для його підтримки.

Отож, моє слово всім прихильним людям є, я вважаю, що це дуже неетично, щоб зняти посаду лише тому, що вона має іншу думку, ніж ваша, особливо коли 1) ваша думка суперечить загальноприйнятій теорії 2) і проти постачальників (Microsoft ) власна документація 3) і ви не надали жодного доказу, а лише думки.

Але в цьому випадку це ще смішніше, оскільки мій пост - це не що інше, як логічне продовження цієї теорії, тому той, хто вважає цю посаду порадою про ліжко, повинен, звичайно, повернутися до всіх постів, що дають пораду цій теорії, і знищити їх. .

Скажіть, хтось вирішить, що RAID - це теорія старої школи і забороняє всі повідомлення, рекомендуючи її, як це має сенс?


Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
Пол Білий 9
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.