В настоящее время я вручную копирую данные с одного тома EBS на другой, имеющий меньший размер, так как у нас файловая система XFS, которую нельзя уменьшить.
Я использую экземпляр t3.micro (оптимизированный для EBS) с Amazon Linux 2 AMI, к которому подключены оба тома EBS (gp2) в дополнение к основному от экземпляра (все в одной зоне доступности)
Я уже сделал это, и на копирование 95 ГБ данных уходило около 5-10 минут (что было бы, если бы 10 минут, 162 МБ / с пропускной способности), но теперь, с теми же объемами, это происходит очень медленно.
Процесс копирования:
tar cSf - /mnt/nvme1n1p1/ | cat | (cd ../nvme2n1p1/ && tar xSBf -)
У меня он работает в фоновом режиме и проверяет одновременно с iostat -xm 5 3
Я получаю такие результаты:
avg-cpu: %user %nice %system %iowait %steal %idle
0.07 0.02 0.86 39.62 0.05 59.39
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 54.20 0.00 6.70 0.00 253.19 0.94 34.62 34.62 3.56 17.32 93.90
nvme2n1 0.00 0.28 0.06 27.20 0.00 6.71 503.98 0.14 6.67 0.31 6.68 1.22 3.32
nvme0n1 0.00 0.02 2.10 0.90 0.04 0.00 30.65 0.00 0.63 0.63 0.62 0.08 0.02
avg-cpu: %user %nice %system %iowait %steal %idle
0.10 0.00 0.70 37.54 0.00 61.66
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 46.40 0.00 5.80 0.00 256.00 1.00 43.16 43.16 0.00 21.48 99.68
nvme2n1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.90 38.66 0.10 60.34
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
nvme1n1 0.00 0.00 53.80 0.00 6.73 0.00 256.00 1.00 36.67 36.67 0.00 18.57 99.92
nvme2n1 0.00 0.00 0.00 16.00 0.00 4.00 512.00 0.03 3.20 0.00 3.20 0.80 1.28
nvme0n1 0.00 0.60 0.00 1.40 0.00 0.02 23.14 0.00 0.00 0.00 0.00 0.00 0.00
Как видите, у меня пропускная способность ниже 10 МБ / с, и она становится все меньше и меньше. Я читал о пропускной способности EBS и не могу понять, что это может быть, есть ли штрафы или что-то подобное ...
Вы знаете, что это может быть?
Заранее спасибо! :)
Дополнительная запрошенная информация:
ulimit -a
:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3700
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3700
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
df -h
:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 463M 0 463M 0% /dev
tmpfs 480M 0 480M 0% /dev/shm
tmpfs 480M 380K 480M 1% /run
tmpfs 480M 0 480M 0% /sys/fs/cgroup
/dev/nvme0n1p1 8.0G 1.1G 7.0G 13% /
tmpfs 96M 0 96M 0% /run/user/1000
/dev/nvme1n1p1 500G 93G 408G 19% /mnt/nvme1n1p1
/dev/nvme2n1p1 150G 55G 96G 37% /mnt/nvme2n1p1
EBS Burst Balance всегда + 98%.
РЕДАКТИРОВАТЬ: это перестало происходить в новое время, когда я это сделал
Откройте Amazon Cloudwatch и просмотрите «CPUCreditBalance» для экземпляра. Посмотрите общее количество доступных кредитов с частотой дискретизации каждые 5 минут. Снижается ли количество кредитов почти до нуля в какой-то момент?
Экземпляр AWS типа «T» - это пакетный тип с ограниченной производительностью. Экземпляр t2.micro зарабатывает всего 6 кредитов ЦП в час. Это означает, что ваш ЦП может работать только при устойчивом использовании 10%, иначе он поглотит все свои кредиты и замедлится до сканирования.
Увеличьте размер вашего типа экземпляра. Я бы порекомендовал перейти на экземпляр типа «C» достаточного размера, пока не будет выполнено копирование. Впоследствии вы можете вернуться к более мелкой версии.
Обновление 2019
Другой возможный и более вероятный ответ - это предел пропускной способности экземпляра, который был измерен и задокументирован. Вот. T2.micro имеет базовый уровень 0,06 Гбит / с, что составляет около 7,5 МБ / с, хотя он может увеличиваться примерно в 10 раз.
Кредиты EBS
Одна из возможностей заключается в том, что у вас закончились кредиты EBS, которые отличаются от баланса ЦП t2 / t3. Читать эта статья AWS об этом.
Добавьте «EBS Burst Balance» для всех своих томов на панель управления CloudWatch. Если какие-то из них равны нулю или близки к нулю, это ваш ответ. Если нет, продолжайте поиски.
Вот часть документации, на которую я ссылался.
Многие клиенты AWS добиваются отличных результатов с томами EBS общего назначения SSD (gp2), которые мы запустили в середине 2014 года (дополнительную информацию см. В разделе Новое эластичное блочное хранилище на основе SSD). Если вы не знаете, какой тип тома использовать для вашей рабочей нагрузки, лучше всего выбрать тома gp2 по умолчанию, поскольку они предлагают сбалансированное соотношение цена / производительность для широкого спектра рабочих нагрузок баз данных, разработки и тестирования, а также загрузочных томов. Одним из наиболее интересных аспектов этого типа объема является функция серийной съемки.
Мы разработали пакетную функцию gp2, чтобы соответствовать шаблонам ввода-вывода реальных рабочих нагрузок, которые мы наблюдали у нашей клиентской базы. Наши специалисты по анализу данных обнаружили, что объем ввода-вывода является чрезвычайно резким, кратковременным, с большим количеством простоев между пакетами. Этот непредсказуемый и прерывистый характер трафика является причиной того, что мы разработали пакетный сегмент GP2, чтобы позволить даже самым маленьким томам увеличиваться до 3000 IOPS и пополнять их пакетный сегмент во время простоя или при выполнении операций ввода-вывода на низком уровне. Конструкция Burst-Bucket позволяет нам обеспечивать стабильную и предсказуемую производительность для всех пользователей GP2. На практике очень немногие тома gp2 когда-либо полностью исчерпывают свой пакетный пакет, и теперь клиенты могут отслеживать свои шаблоны использования и соответствующим образом корректировать.
Мы много писали об оптимизации производительности для разных типов томов и различиях между тестированием и реальными рабочими нагрузками (дополнительную информацию см. В разделе «Характеристики ввода-вывода»). Как я описал в своем исходном посте, пакетные кредиты накапливаются со скоростью 3 на сконфигурированный ГБ в секунду, и каждый платит за одно чтение или одну запись. Каждый том может накапливать до 5,4 миллиона кредитов, и их можно потратить со скоростью до 3000 в секунду на каждый том. Для начала вы просто создаете тома gp2 желаемого размера, запускаете приложение, и ввод-вывод на том будет выполняться максимально быстро и эффективно.