Мне интересно, на каком этапе мне нужно увеличить изображение для сервера RDS MySQL до более крупного экземпляра CPU / RAM.
График использования ЦП близок к нулю. Среднее значение свободной памяти составляет около 150 МБ. Среднее использование подкачки составляет 420 МБ.
Задержка чтения составляет 0-20 мс / операцию, она увеличивается случайным образом. Средняя задержка записи составляет в среднем 5 мсек / операцию, но достигает 10-20 мсек / операцию.
Есть ли здесь какие-то общие правила, которым я должен следовать?
Спасибо!
Нет общих правил
Правила производительности должны устанавливаться с учетом деловых и технических целей, а не произвольных.
Какую проблему производительности вы пытаетесь решить или предотвратить?
Метрики не отождествляют производительность и часто не имеют ничего общего с бизнесом или даже техническими целями.
Обычно я смотрю на два аспекта производительности.
Сосредоточение внимания исключительно на показателях ресурсов базы данных при отсутствии других данных, вероятно, не очень полезно. Эти метрики нуждаются в контексте - иначе это просто преждевременная оптимизация.
Подобные показатели полезны для планирования мощности, если вы знаете свои коэффициенты использования.
Так что, возможно, более важные вопросы будут:
Слишком часто я нахожу, что люди сосредотачиваются на том, что я называю ping, power и pipe (CPU / Disk / RAM). Редко это важные вещи, на которых стоит сосредоточиться.
Получение данных и постановка целей по приведенным выше вопросам помогут вам принимать решения о масштабировании как с техническими, так и с коммерческими обоснованиями.
Из того, что я видел для экземпляров RDS, FreeableMemory довольно низка, а SwapUsage относительно высока. Кажется, что ваша рабочая нагрузка требует большого объема памяти и, по крайней мере, улучшится с помощью дополнительной памяти.
Для более стабильной задержки можно использовать выделенные IOP, если вы уже выделили не менее 300 ГБ дискового пространства: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.html