Данный пост навеян чтением MS SQL and VMware best practices. Остальные мысли, как говорится, под катом 🙂
VMware проанализировало множество внедренных серверов SQL и выяснило следующие закономерности:
– SQL сервер обычно запущен на двух физических ядрах;
– Средняя загрузка процессора меньше 6%, 85% SQL серверов используют менее 10% процессора, 95% используют менее 30%;
– В среднем, на сервер установлено 3,1 гигабайта оперативной памяти, используется 60%;
– Среднее количество операций ввода/вывода – 20 IOPS, у 95%процентов серверов – меньше 100 IOPS;
– Средний сетевой трафик составляет3.2Мбит/сек.
Так что виртуализовать SQL очень даже имеет смысл!
Также в документе очень интересная таблица по поводу восстановления работоспособности сервиса после сбоя.
Failover clustering – не меньше 30 секунд;
Database Mirroring – меньше 3 секунд;
Log Shipping – время не указывается.
Replication – время не указывается.
Достаточно хорошим выбором является Database Mirroring. Быстрее восстановление, чем у кластера, стоит меньше (отсутствует необходимость в общем сторадже). Естественно, что балансировки нагрузки ни при кластеризации, ни при зеркалировании баз данных не происходит. Для балансировки Log Shipping и Replication выглядят лучше, но у них гораздо большее время при восстановлении и возможна потеря данных.
Есть над чем подумать…