Запуск базы данных SQL Server 1 ТБ на сервере AWS EC2 C5.4xl (16 виртуальных ЦП / 32 ГБ). Полное резервное копирование приближается к 3 часам, поэтому я решил, что мне нужно изучить несколько резервных копий файлов. Я ожидал поэкспериментировать с размерами, типами и числами EBS, но быстро обнаружил, что все они дают мне одинаковые результаты.
Используя Windows Resource Monitor, при запуске резервного копирования SQL Server я вижу около 140 000 бит / с чтения из файла данных и в совокупности 130–135 000 операций записи в файлы / диски резервного копирования. Кажется, не имеет значения, что я меняю, я всегда попадаю в одни и те же числа. 2 файла, 4 файла, диски IOP, пропускная способность дисков не имеет значения.
Я, наконец, сообразил, что, возможно, все это замедляет мой диск с данными. Вы можете писать так же быстро, как читаете, верно? Поэтому я обновил его до диска IOPS и удвоил его с 3000 до 6000 IOPS. Без изменений. По-прежнему ограничивается скоростью чтения 140 МБ / сек ...
Я просто борюсь с жестким и быстрым ограничением AWS? Я пробовал этот тест на нескольких машинах разного размера и, несмотря на это, достиг того же (приблизительно) ограничения в 270 МБ / с.
Тест данных Drive:
Пример теста одного из резервных дисков (1 из 4):
Ваши файлы данных могут считываться со скоростью 260 МБ / с, поэтому вот что я попробую дальше:
Сначала запустите резервную копию NUL, например:
BACKUP DATABASE MyDb TO DISK='NUL:'
Это выполняет считываемую часть резервной копии, но никуда не записывает ее, поэтому запись не замедляет ее. (Имейте в виду, что это действительно настоящая резервная копия, поэтому, если вы делаете дифференциальные резервные копии, вы не хотите этого делать или хотите делать это в базе данных, которая не находится в производстве.)
В конце этой резервной копии вы увидите число МБ / с. Вот как быстро могут выполняться ваши резервные копии при чтении из хранилища. Вы должны увидеть, что она приближается к получаемой вами пропускной способности последовательного чтения CrystalDiskMark.
260 МБ / с - это не очень много - это примерно предел одного тома GP2. Вы упомянули, что используете C5.4xl, и предел пропускной способности EBS в любом случае составляет 437 МБ / с - вы можете распределить данные по двум томам GP2, а затем улучшить (но не в 2 раза) пропускную способность чтения. Для более высокой пропускной способности чтения вам необходимо изменить типы экземпляров. Если вы считаете это, используйте столбцы пропускной способности EBS и пропускной способности EBS на ec2instances.info.
Теперь вернемся к вашим тестам: как только вы сможете получить резервную копию на нулевом уровне, работающем со скоростью 250-260 МБ / с, теперь проверьте записи. Обязательно используйте сжатие резервных копий и выполните запись в целевую резервную копию на другом томе EBS. Поскольку ваш C5.4xl имеет пропускную способность до 437 МБ / с (при условии, что у вас настроена оптимизация EBS), вы сможете получить около 170 МБ / с при записи на том записи, но это должен быть другой том GP2. (Если вы попытаетесь записать на тот же том, ваша пропускная способность выйдет из ограничения в 260 МБ / с для одного тома.)