У меня есть экземпляр RDS, который стоит мне много денег. По активности в моем аккаунте на Amazon я вижу, что за последние 7 дней у экземпляра было около 800 000 000 запросов ввода-вывода.
Чтобы дать вам небольшую перспективу, мое приложение получает только около 6000 уникальных посещений в день, и оно не делает так много соединений с базой данных.
Итак, что же такое IO Request, и почему это число было бы таким неземным высоким? Я готов сделать все возможное, чтобы снизить стоимость, если это необходимо, но я не уверен, что происходит на самом деле.
Буду признателен за ваши мысли.
mysql
io
amazon-rds
Abe
источник
источник
Ответы:
Ах, веб-сервисы Amazon. Одна из самых больших доступных денег. Очень хорошо, но не всегда дешево. На самом деле, почти никогда не дешево, и всегда сложно оценить расходы.
Запрос ввода-вывода - это операция на диске. Будь то чтение или запись, вы в основном обвиняетесь в том, сколько данных вы получаете из своей системы. Это безумие.
Вы можете оценить ваши IO-запросы, посмотрев на iostat.
800 000 000 IO-запросов за 7 дней. Это ~ = 1300 IOPS. Ух ты. Это какое-то ужасное представление.
Если вы действительно хотите сократить расходы, возможно, пришло время посмотреть, действительно ли RDS лучше всего подходит для вашего приложения и бюджета проекта.
Если вы получаете только 6 тыс. Обращений в день, вы могли бы добиться большего успеха в затратах и производительности с выделенным сервером (предпочтительно 2 сервера, один для БД, один для веб-служб). На самом деле сделать этот вызов немного сложнее, поскольку вы не слишком много говорили о своем приложении.
источник
«Облачные сервисы» не означают, что такие вещи будут стоить вам копейки. По сути, запрос ввода-вывода - это что-либо (например, база данных или страница индекса), которое необходимо извлечь с диска. Если у вас большая база данных и запросы с использованием полных сканирований таблиц, это ни в коем случае не удивительно. Вы можете рассмотреть поиск запросов с использованием неиндексированных столбцов для фильтрации, включив опцию записи «неиндексированных» запросов в медленный журнал MySQL и добавления индексов для соответствующих столбцов. Поскольку у вас нет возможности редактировать файл конфигурации напрямую, используйте конфигурацию группы параметров RDS, чтобы задать
log-queries-not-using-indexes
и запросить вmysql.slow_log
таблице записи журнала.Кроме того, рассмотрите возможность запуска сценария настройки MySQL из вашего экземпляра AWS для экземпляра базы данных для общего анализа производительности, чтобы увидеть, поможет ли более крупный экземпляр из-за большего объема памяти, доступной для кэширования, что уменьшит нагрузку на диск. Сценарий оценивает ряд параметров конфигурации и счетчиков производительности, чтобы дать некоторую информацию о возможных узких местах и дать некоторые общие рекомендации.
источник
&
к его коду. Очевидно, никто никогда не профилировал его.)