У нас є виробничий сервер БД на SQL 2005. Все працює нормально деякий час, але через пару тижнів ми спостерігаємо помітне падіння продуктивності. Тільки перезапуск SQL Server приводить продуктивність у норму.
Деякі відомості:
- Працює понад 1200 баз даних (переважно одиночний орендар, декілька орендарів). Перш ніж хтось читає лекції про переїзд лише до орендарів, є поважні причини збереження цієї структури ......
- Оперативна пам’ять - 16 ГБ. Після перезавантаження SQL Server не займе багато часу, щоб повернутися до 15 Гб.
- Активні підключення до БД - це близько 80 з'єднань - що, на нашу думку, є досить здоровим, враховуючи, що є один пул підключень на веб-сервері за процес - тому у нас не виникає проблем із витоком з'єднання.
Ми спробували кілька речей у не пікові часи: - Запустіть DBCC DROPCLEANBUFFERS (з CHECKPOINT), щоб очистити кеш даних. Це не має ефекту, а також не очищає використання оперативної пам'яті). - Запустіть FREEPROCCACHE та FREESYSTEMCACHE, щоб очистити плани запитів і збережений кеш-пам'ять. Без ефекту.
Очевидно, що перезапуск SQL Server не є ідеальним в активному виробничому середовищі. Нам щось не вистачає. Хтось ще пройде через це?
ОНОВЛЕННЯ: 28 квітня 2012 р. Досі вирішується ця проблема. Я знизив пам'ять для SQL Server до 10 Гб, щоб виключити суперечки з ОС. Я наближаюся до його звуження, але мені потрібна допомога в наступному кроці.
Ось що я виявив, після перезавантаження SQL Server файл сторінки коливається між 12,3 ГБ і 12,5 ГБ. Так буде залишатися цілими днями. Загальна кількість потоків серверів буде зависати між 850 і 930 - також стабільна і стабільна протягом днів (sqlserver постійно знаходиться між 55 і 85 з тих, що залежать від трафіку).
Потім, є "подія". Я поняття не маю, що це за подія, я не можу бачити це в журналах, і я не бачу нічого послідовного в день тижня або час, коли це трапиться, але весь пильний файл сторінки сторінки переходить на 14.1 або 14.2 GB, а нитки переходять до між 1750 і 1785 роками.
Перевіряючи perfom, коли це відбувається, понад 900 з цих потоків є sqlserver. Тож я переходжу до sp_who2, щоб побачити, звідки беруться ці потоки ... і є лише використані 80 або близько db-з'єднань.
Отже .... чи є у когось ідеї, як я можу знайти, де решта цих 900 потоків на SQL сервері, і що вони роблять?
ОНОВЛЕННЯ: червень-01-2012 Проблема все ще вирішується . Для тих, хто все ще читає це питання, проблема з перескакуванням ниток вирішена. Це було викликано автоматизованим програмним забезпеченням для резервного копіювання ComVault. Це створювало потік, намагаючись створити резервну копію баз даних, яких вже не було (вона підтримувала список попередніх баз даних), а не просто резервне копіювання поточних баз даних.
Але - питання все ще залишається, і нам доводиться перезапускати кожен тиждень, давати або займати кілька днів. Робота з командою Rackspace, щоб дізнатися, чи можуть вони пролити світло.