Якщо говорити з досвіду, який є скромним, але я думаю, що варто поділитися, головне вузьке місце з базами даних SQL (тут Sybase та SQL сервер) - це зберігання.
Але я думаю, що справедливо, що хтось спочатку орієнтує їх налаштування, перш ніж робити помилкові припущення. У моєму випадку використання процесора ніколи не піднімалося досить високо, щоб виправдати оновлення процесора найближчим часом. Натомість я перейшов з одного накопичувача до RAID 1, а потім до RAID 10 +, а також від 8 ГБ до 16 ГБ оперативної пам’яті.
Усі ці оновлення RAID допомогли скоротити попередній час очікування в 2–6 разів. Я підозрюю, що оновлення до SSD буде ще кращим. Якщо ви подумаєте над цим, все це може бути зменшено до (теоретичної) пропускної здатності. Ваша комбінація [(швидкість оперативної пам’яті + розмір оперативної пам’яті + контролер пам’яті пам’яті) до CPU] має обмеження пропускної здатності, яке було б найважливішим фактором операцій зчитування, коли ваші дані повинні завжди кешуватися, ваш конкретний (RAID) сховище має обмеження пропускної здатності ( впливає на зчитування, коли кеш пропущено, і записування під час промивання або коли багато клієнтів записують багато даних разом).
Нормалізуйте всі ці межі якомога більше (зближте їх так, щоб у вас не було витрачених даремно ресурсів) та підніміть їх якнайбільше (оновіть там, де це потрібно, і лише за потреби, не дозволяйте ресурсам витрачатися даремно, якщо система перемогла ' не зможу їх використати, оскільки якесь інше вузьке місце перешкоджає). Зрештою, вашим найгіршим вузьким місцем буде найменш працююча (з найменшою пропускною здатністю) підсистема сервера у вашій конкретній конфігурації.
Я можу також додати, що в процесі оновлення я створив окремі конфігурації RAID для файлів бази даних та файлів журналу баз даних. Причиною стало те, що файли журналів баз даних мають тенденцію до інтенсивного запису. Файл журналу використовується для відновлення бази даних після збоїв, і завжди він записується негайно як транзакція, здійснена перед тим, як будь-які дані записуються у файл бази даних.
Файл журналу також використовується деякими серверами реплікації бази даних, але більшість реплікацій не відбувається моментально, але часто, тому вплив на продуктивність читання тут мінімальний. Принаймні я так думаю. Я зробив мінімальний бенчмаркінг, роблячи це оновлення ще раз, рекомендую кожному спочатку орієнтирам їх різних конфігурацій і спочатку оновити сховище, потім оперативну пам’ять та мережеве посилання, перш ніж замислюватися над оновленням своїх процесорів.
Після більш широких оновлень більш ніж на 5 серверах я повернувся, щоб поділитися своїм досвідом. Я, безумовно, все ще виступаю за те, щоб спочатку оновити накопичувач, потім оперативну пам’ять, а потім процесор. Причина - це невідповідність пропускної здатності в системі між накопичувачем, оперативною пам’яттю та процесором у порядку від найнижчого до найвищого. Тому я оновив купу серверів з RAID10 та подвійних RAID1 на SSD.
Те, як я це зробив через проблеми з витратами (у мене є ще 20 серверів для оновлення), - це перемістити дані бази даних та файли об’єктів на SSD (так, лише один SSD в RAID0) та перемістити журнал транзакцій плюс tempdb в 4xHDD RAID10 конфігурація. Я перевіряв tempdb на SSD, а також чудові результати (насправді дуже приємні результати з більш ніж 15 разів швидшими запитами іноді, даючи кілька звітів, що займають секунди замість хвилин у минулому), але пізніше перемістив tempdb на диск RAID10, оскільки інтенсивних проблем з накопиченням SSD.
Тому я в основному спостерігав у 10-15 разів швидший час відповідей на деякі найдовші запити. SSD чудово підходить для швидкого зчитування даних в оперативній пам’яті, оскільки SQL Server не вносить дані в оперативну пам’ять, доки не вимагається, і, звичайно, дані спочатку потрібно завантажувати в оперативну пам’ять, щоб обробити процесор (пізніше, в кеш-пам'ять L1, L2, L3) , тож SSD допомагають скоротити цей початковий час очікування величезним фактором. А також жорсткі диски також допомагають скоротити час заміни ... очищення оперативної пам’яті та завантаження нових даних, особливо якщо ваша база даних більша, ніж може вміститися в оперативній пам’яті.
Загалом, ми дуже задоволені і працювали так на протязі декількох місяців у вигляді повільного процесу міграції, щоб сервери могли працювати, щоб я міг збирати інформацію про рівень зносу, перш ніж переключити всі мої сервери на цю конфігурацію. І це просто SQL Server Express! : D - Просто переконайтеся, що ваші SSD можуть надавати постійні IOPS, тому що це ще одна річ, яка робить величезну різницю (просто google це). Ось чому я вибрав SSD серії Intel DC (DataCenter).