... сподівався, що я можу отримати ... грубу грубу оцінку того, що нам слід працювати.
Без додаткової інформації про ваші запити та розміри даних, важко дати вам будь-яку оцінку, не кажучи вже про точну оцінку.
База даних: база даних бази даних сервера sql 2008 r2
Windows: Windows 2008 r2 Enterprise 64 біт, майже впевнений, що працює на VMware.
Процесор: процесор Intel (R) Xeon (R) процесор E7-4860 при 2,27 ГГц 2,26 ГГц (2 процесори)
Встановлена пам'ять: 4 Гб
Два процесори (я припускаю, що це випромінюється у ВМ як 2 ядра), можливо, можуть бути недооцінені. Сердечники, призначені для VM, не обов'язково відображаються безпосередньо у фізичні ядра (або навіть дозволяється використовувати 100% одного ядра, коли це потрібно!), Тому ви можете виявити, що це більш гнучкий ресурс, ніж пам'ять. Без додаткової інформації про ваше навантаження або конфігурацію обладнання та віртуалізації я б сказав, що збільшення цього до 4 було б непоганим.
Розподіл пам'яті. О, малюк. Це суттєво недостатньо для навантаження. Для самої Windows потрібен мінімум 2-3 ГБ, щоб залишатися щасливим, а кожному з 2-х користувачів, які працюють на коробці, буде потрібно щонайменше 500 Мб. І з цим ящик вже максується, і я навіть не почав розбиратися, скільки потрібна база даних .
Більшість користувачів взаємодіють із базою даних через веб-сайт asp.net та веб-сайт сервера звітів.
Ви не сказали, але якщо вони працюють в одному і тому ж полі, потрібно також враховувати вимоги до пам'яті.
Нарешті, у нас досить задіяна операція зберігання даних, яка, ймовірно, приносить 3 мільйони записів на день за допомогою пакетів SSIS, які також працюють на сервері.
Якщо припустити, що це працює в нічний час, коли в системі немає живих користувачів, я не вважаю це проблемою, якщо це не зайняло занадто багато часу. Ця частина речей - найменша стурбованість; живі користувачі важливіші.
Наші попередні запити на додаткову пам’ять були відхилені загальною відповіддю, що нам потрібно виконати більше оптимізацій запитів.
Як я демонстрував вище, поточний обсяг пам’яті, який було передбачено, є абсолютно недостатнім. У той же час, хоча на іншому кінці спектру це малоймовірно, ви зможете отримати достатню кількість пам'яті, щоб мати змогу одночасно зберігати всю пам'ять.
Незважаючи на те, що ви отримали такий бланкетний відповідь (який, до речі, мабуть, був пов'язаний з тим, наскільки переконливим було ваше обґрунтування додаткових ресурсів, а не власне власне використання ресурсів), велика ймовірність ефективності бази даних може бути покращився. І все-таки немає лише налаштування, яка могла б вирішити проблеми, які виникають зараз; пропозиція про це є для мене повним нестартером.
Я б прийняв загальний підхід до того, що обсяг пам'яті, що наразі передбачений, є нижчим від мінімально необхідного (який повинен бути виправлений якнайшвидше), і можуть бути потрібні додаткові ресурси для покращення користувацького досвіду до зручного рівня, в той час як покращуються ефективніше системи.
Ось кілька думок (у порядку нападу):
Ви виграєте, якщо зможете довести, наскільки ефективність покращується щоразу, коли ви отримуєте більше ресурсів. Слідкуйте за показниками ефективності, використовуючи журнал монітора продуктивності (зверніть увагу: частина журналу дуже важлива), включаючи час відгуку веб-сайту, якщо можете. Почніть це робити зараз , перш ніж робити щось інше. Коли ви нарешті доберетеся до мінімального обсягу пам'яті (не збираєтесь отримати 32 ГБ відразу), раптом у вас з’явилися докази того, що додана пам'ять покращила речі ... а це означає, що додавання ще більше , ймовірно, допоможе! Якщо ви не збираєте базову лінію за поточною конфігурацією, ви будете пропускати човен, коли речі стикаються до мінімально рекомендованого рівня.
Проаналізуйте статистику очікування вашого сервера . Це підкаже, яке найбільше вузьке місце в системі. Напевно, у вас буде PAGEIOLATCH_XX
найпоширеніший / найвищий час очікування, що вказує на занадто багато вводу-виводу, що робиться для отримання сторінок з диска. Це можна полегшити, додавши пам'ять, тому фізичні введення / виведення стають рідше, оскільки необхідні дані вже є в пам'яті. Незважаючи на те, що цей аналіз в значній мірі заздалегідь закінчений, той факт, що ви зібрали ці статистичні дані, дає вам більше патронів під час виправдання потреби в ресурсах.
Як я вже згадував вище, мінімальна вимога до пам'яті не виконується. Зберіть набір рекомендованих апаратних вимог для всього програмного забезпечення, яке ви працюєте, а також, можливо, також зніміть скріншоти Диспетчера завдань. Одного лише цього повинно бути достатньо, щоб виправдати принаймні на 4-8 ГБ більше на місці. Якщо вони все-таки відмовляться, спробуйте переконати їх, щоб вони дозволили спробувати це протягом тижня, і поверніть його після цього (ви збираєте статистику результативності, тому вам не потрібно буде повертати її назад, тому що ви середині тижня ' Я зможу довести, наскільки це покращило ситуацію). Якщо вони все-таки відмовляться, ви налаштовані на збій; URLT .
Якщо ви можете вивантажити частину робочого навантаження (зокрема, уникайте видалення, якщо це можливо), це збільшить обсяг пам'яті, доступний для бази даних, що є більш критичним.
Ви не зможете одразу помістити всю базу даних в пам'ять, а це означає, що вам потрібно дуже обережно встановити максимальну настройку пам'яті SQL Server, щоб запобігти перезавантаженню пам’яті , що вбиває продуктивність, як нічого іншого . Перевиконання даних фактично навіть гірше, ніж просто неможливість вмістити всі дані в пам'ять. Напевно, ви зараз в цьому сценарії просто тому, що взагалі просто немає пам’яті, і можливо, що для параметра максимальної пам'яті встановлено значення за замовчуванням (необмежене).
Оскільки у вас працює SQL Server Enterprise Edition, а пам’ять переважає, я б настійно розглядав можливість стиснення даних . Це дозволить знизити збільшення використання процесора для економії простору пам’яті (а отже, зменшення доступу до диска, який порівняно дуже повільний).
Налаштуйте базу даних. Ймовірно, структури та запити можуть використовувати поліпшення, що стосується індексування та моделей доступу. Також, якщо часто сканується та агрегується багато даних, створення індексованих подань, зведених таблиць або попередньо обчислених звітів може бути дуже корисним.
Це може бути довгим оглядом, оскільки це, ймовірно, означає більше апаратного забезпечення, але реалізувати рішення кешування. Найшвидший запит - це той, який ти ніколи не робиш .
Це лише кілька ідей. Суть полягає в тому, що тільки налаштування не вирішить тут проблем, а також не лише апаратне забезпечення, хоча остання, ймовірно, полегшить більшість негайних проблем. Це дійсно так: киньте обладнання на вирішення проблеми в короткостроковому періоді, щоб погасити пожежу, і надовго киньте налаштування проблеми, щоб виправити першопричину якнайкраще.