2015-03-18 2 views
0

У меня возникает очень своеобразное поведение при работе с импортером данных с использованием многопроцессора в python. Я считаю, что это проблема с базой данных, но я не уверен, как ее отслеживать. Ниже приводится описание процесса я делаю:Импорт данных в mysql RDS с мультипроцессором python - RDS

1) многопроцессорной файл, который запускает XX число процессоров делают части два и три

2) Queue процессор, который перебирает в SQS очереди потянув идентификатор компании. Этот идентификатор используется для вытягивания строки json, хранящейся в mysql. Эта строка json загружается как объект json и отправляется в файл разбора, который нормализует данные, чтобы его можно было импортировать в mysql в качестве нормализованных данных.

3) Анализатор/импортер компании читает через объект json и создает вставки в базу данных mysql, нормализуя данные. Это пакет, вставленный в RDS партиями размера XXX для смягчения проблем с IOPS.

Этот код запускается из экземпляра c4.Large и работает. Когда он запускается, он работает быстро (~ 30 000 вставок в минуту) без максимального ввода IOPS, CPU или других ресурсов на экземпляр RDS или ec2. Затем, через определенное время (5-30 минут), процессор RDS-сервера падает до ~ 20% и имеет странный ритм ритма. Я попытался запустить дополнительные экземпляры ec2, чтобы ускорить этот процесс, и скорость импорта остается неизменной и медленной (~ 2000 вставок за мин), поэтому я считаю, что узкое место связано с экземпляром RDS. Я попытался изменить размер экземпляра RDS от среднего до большого без изменений. Я также попытался изменить IOPS экземпляра RDS на предоставленный SSD с 10k. Это также не помогло решить проблему

Насколько я могу судить, на сервере RDS есть какие-то ограничения или ограничения. Но я не знаю, где еще искать. Нет красных флагов о том, что ограничено.

Можете ли вы указать другие потенциальные причины того, почему этот тип поведения будет происходить? Я не знаю, что еще проверить.

Текущая установка 500gb t2.medium RDS экземпляр с ~ 200 Write IOPS, процессор на ~ 20%, чтение IOPS < 20, Очередь < 1, стабильные соединения 12 дБ (это не подключается, а затем отсоединения), и много свободной памяти.

+1

t2.medium? Проверьте график кредитного баланса центрального процессора в мониторинге облачного просмотра для экземпляра RDS. CPU @ 20% с периодическим ритмом ритма «сердцебиение» настоятельно предлагает вам истощить его. –

+0

@ Michael-sqlbot - Именно это и было проблемой. Я никогда не слышал о кредите ЦП ... Я нашел эту статью, но буду признателен за любое объяснение в условиях неспециалиста, а также за советы по ее устранению и устранению проблемы. Случай c4.Large? – ccdpowell

ответ

0

Я решил это, увеличив свой тип экземпляра до экземпляра m3.Large без ограниченных кредитов ЦП. Сейчас все работает хорошо.

Смежные вопросы