Передача сотен RDS mysql db одновременно - PullRequest
0 голосов
/ 16 октября 2018

У меня есть база данных с около миллиона записей заданий, которые выполняются в очереди.Ежедневно создается и выполняется около 50 000 новых рабочих мест.Я запускаю десятки спотовых экземпляров aws, и задания выполняются с работниками супервизора (по 6).

Общее соединение с базой данных составляет 260 одновременно, а тип экземпляра rds mysql - t2.medium.Когда работы еще не выполняются или рабочие места еще не созданы, рабочие выходят через несколько секунд, а новые рабочие снова проверяют наличие рабочих мест и т. Д.

Я заметил, что существует крупнаязамедление, когда все они подключаются одновременно, т.е. запрос может занять 8 секунд вместо 20 мс.Затем, как только все экземпляры подключены к БД, все снова выглядит нормально.Итак, вопрос в том, как мне справиться с этим, чтобы база данных всегда была супер быстрой?

Стоит ли пытаться запускать рабочих не одновременно и добавлять случайные сны до выхода рабочих?

Кроме того, поскольку существует много операций чтения / записи, следует ли масштабировать базу данных с помощью балансировщиков нагрузки и реплик чтения?

1 Ответ

0 голосов
/ 16 октября 2018

Замедление, вероятно, вызвано типом экземпляра, который вы используете. Экземпляры семейства T2 устойчивы , что означает, что при устойчивой нагрузке в течение длительных периодов баланс кредитов ЦП истощится, а экземпляр станет медленнее.

Вам определенно следует обновить свойтип экземпляра для другого класса (например, семейство m5), поэтому производительность экземпляра будет стабильной при устойчивых нагрузках.

...