Экземпляру AWS DMS не хватает памяти - PullRequest
2 голосов
/ 12 мая 2019

Я недавно начал работать с AWS Data Migration Service (DMS) и столкнулся с некоторыми проблемами.

В настоящее время предпринимается попытка перенести 10 ГБ Oracle DB в AWS RDS Postgres. Работает, но имеет сумасшедшие (?) Требования к памяти. Такое ощущение, что он загружает всю БД в память ... Начинается с dms.r4.large (15,5 ГБ), но can not allocate memory после прибл. 98% .... будет работать гладко с dms.r4.xlarge (30,5 ГБ)

memory consumption during replication task run

Как вы можете видеть на скриншоте (объем свободной памяти, минимум), экземпляр постоянно работает "полностью", прежде чем вся память освобождается, когда задача завершается (или падает).

Есть ли какие-либо настройки, чтобы изменить это, и почему это ведет себя так? Это делает всю задачу ненужной дорогой ...

1 Ответ

2 голосов
/ 20 мая 2019

Как подтвердил AWS, это действительно была ошибка с последним движком (v3.1.3). AWS предоставил следующие дополнительные сведения для оценки фактических требований к памяти:

Режим Full LOB (с использованием однорядной вставки + обновление, скорость фиксации)

Память: (число столбцов в таблице) x (количество параллельных таблиц, по умолчанию 8) x (размер фрагмента lob) x (частота коммитов при полной загрузке) = 2 * 8 * 64 (к) * 10000 К

Примечание. Возможно, вы захотите уменьшить «Коэффициент фиксации при полной загрузке». значение, потому что мы выделяем память, используя примерно вышеупомянутый метод

Ограниченный режим LOB (с использованием массива)

Память: (количество столбцов в таблице) x (номер таблицы в параллельно, по умолчанию 8) x maxlobSize x bulkArraySize = 2 * 8 * 4096 (k) *1000* 1012 *

...