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