У меня проблемы с тем, что мой экземпляр RDS максимизирует свои IOPS, когда мы участвуем в длительных отчетных операциях. В настоящее время я выполняю только один сценарий, по одному за раз, и меня удивляет, что я выполняю 3000 IOPS в течение длительного периода времени (часов) и получаю пакетные данные до 7000 IOPS!
Насколько я Понимаете, операция ввода / вывода для экземпляра RDS - это запрос на чтение или запись?
Я проверил свой скрипт локально с помощью панели отладки Laravel, и он содержит 446 запросов для 1-го запуска, а затем 204 Запросы для всех последующих запусков.
У меня он работает в очереди только с одним работником (т. Е. Одновременность 1) и проверяет мои журналы и в течение 10 минут мы можем запустить 282 из этих заданий.
По моим расчетам, это 408 + (204 x 281) = 57 732 запросов за 10 минут, 5 773 в минуту или 96 в секунду.
Чего мне не хватает здесь, чтобы учесть 3000 - 7000 операций ввода-вывода в секунду, зарегистрированных с помощью AWS мониторинга?
EDIT ОК, поэтому я вижу, что один запрос на самом деле не является один IOP.
Таблица, в которую я вставляю, содержит 7 столбцов, исключая создание / обновление, и имеет 4 индекса. Из того, что я прочитал, индексы имеют по крайней мере 1 IOP каждый, и будет несколько других действующих IOP. Даже если бы я сказал 10 IOP на транзакцию, это все равно будет составлять примерно 960 IOPS - намного меньше, чем говорит мне мониторинг RDS.
Есть ли что-то еще, что я могу проверить или оптимизировать, чтобы попытаться уменьшить это. Я действительно не хочу переключаться на подготовленный экземпляр IOPS.