У меня есть база данных с около миллиона записей заданий, которые выполняются в очереди.Ежедневно создается и выполняется около 50 000 новых рабочих мест.Я запускаю десятки спотовых экземпляров aws, и задания выполняются с работниками супервизора (по 6).
Общее соединение с базой данных составляет 260 одновременно, а тип экземпляра rds mysql - t2.medium.Когда работы еще не выполняются или рабочие места еще не созданы, рабочие выходят через несколько секунд, а новые рабочие снова проверяют наличие рабочих мест и т. Д.
Я заметил, что существует крупнаязамедление, когда все они подключаются одновременно, т.е. запрос может занять 8 секунд вместо 20 мс.Затем, как только все экземпляры подключены к БД, все снова выглядит нормально.Итак, вопрос в том, как мне справиться с этим, чтобы база данных всегда была супер быстрой?
Стоит ли пытаться запускать рабочих не одновременно и добавлять случайные сны до выхода рабочих?
Кроме того, поскольку существует много операций чтения / записи, следует ли масштабировать базу данных с помощью балансировщиков нагрузки и реплик чтения?