Amazon RDS: что такое IO-запросы?


9

У меня есть экземпляр RDS, который стоит мне много денег. По активности в моем аккаунте на Amazon я вижу, что за последние 7 дней у экземпляра было около 800 000 000 запросов ввода-вывода.

Чтобы дать вам небольшую перспективу, мое приложение получает только около 6000 уникальных посещений в день, и оно не делает так много соединений с базой данных.

Итак, что же такое IO Request, и почему это число было бы таким неземным высоким? Я готов сделать все возможное, чтобы снизить стоимость, если это необходимо, но я не уверен, что происходит на самом деле.

Буду признателен за ваши мысли.


Вы нашли решение в вашем случае?
Нажмите Upvote

Ответы:


6

Ах, веб-сервисы Amazon. Одна из самых больших доступных денег. Очень хорошо, но не всегда дешево. На самом деле, почти никогда не дешево, и всегда сложно оценить расходы.

Запрос ввода-вывода - это операция на диске. Будь то чтение или запись, вы в основном обвиняетесь в том, сколько данных вы получаете из своей системы. Это безумие.

Вы можете оценить ваши IO-запросы, посмотрев на iostat.

800 000 000 IO-запросов за 7 дней. Это ~ = 1300 IOPS. Ух ты. Это какое-то ужасное представление.

Например, база данных веб-сайта среднего размера может иметь размер 100 ГБ и ожидать в среднем 100 операций ввода-вывода в секунду в течение месяца. Это будет означать 10 долл. США в месяц на затраты на хранение (100 ГБ х 0,10 долл. США в месяц) и примерно 26 долл. США в месяц на расходы на запрос (~ 2,6 млн. Секунд в месяц х 100 операций ввода-вывода в секунду * 0,10 долл. США на миллион операций ввода-вывода).

С http://aws.amazon.com/ebs/ около 90% пути вниз по странице

Если вы действительно хотите сократить расходы, возможно, пришло время посмотреть, действительно ли RDS лучше всего подходит для вашего приложения и бюджета проекта.

Если вы получаете только 6 тыс. Обращений в день, вы могли бы добиться большего успеха в затратах и ​​производительности с выделенным сервером (предпочтительно 2 сервера, один для БД, один для веб-служб). На самом деле сделать этот вызов немного сложнее, поскольку вы не слишком много говорили о своем приложении.


3
Когда я впервые экспериментировал с сервисом AWS SimpleDB, который похож на MongoDB, я получил за день 50 долларов. Это удобно, но почти никогда не дешево.
Том О'Коннор

Я предполагаю, что EBS больше не может объяснить причину, по которой я вижу эту стоимость в своем счете: «Ввод / вывод включен в стоимость томов, поэтому вы платите только за каждый предоставленный вами ГБ хранилища». (со страницы цен )?
Хайд

Вздох, оказывается, он все еще доступен в предыдущем поколении !
Хайд

6

У меня есть экземпляр RDS, который стоит мне много денег.

«Облачные сервисы» не означают, что такие вещи будут стоить вам копейки. По сути, запрос ввода-вывода - это что-либо (например, база данных или страница индекса), которое необходимо извлечь с диска. Если у вас большая база данных и запросы с использованием полных сканирований таблиц, это ни в коем случае не удивительно. Вы можете рассмотреть поиск запросов с использованием неиндексированных столбцов для фильтрации, включив опцию записи «неиндексированных» запросов в медленный журнал MySQL и добавления индексов для соответствующих столбцов. Поскольку у вас нет возможности редактировать файл конфигурации напрямую, используйте конфигурацию группы параметров RDS, чтобы задать log-queries-not-using-indexesи запросить в mysql.slow_logтаблице записи журнала.

Кроме того, рассмотрите возможность запуска сценария настройки MySQL из вашего экземпляра AWS для экземпляра базы данных для общего анализа производительности, чтобы увидеть, поможет ли более крупный экземпляр из-за большего объема памяти, доступной для кэширования, что уменьшит нагрузку на диск. Сценарий оценивает ряд параметров конфигурации и счетчиков производительности, чтобы дать некоторую информацию о возможных узких местах и ​​дать некоторые общие рекомендации.


5
Удивительно, как легко мы, люди, можем случайно заставить компьютеры выполнять нелепо огромную работу. Вы всегда должны вернуться и измерить, чтобы убедиться, что вы случайно не заставили машину сделать что-то поразительно глупое. (Однажды я улучшил производительность развернутой реальной системы на 40% менее чем за десять минут (не считая времени на настройку профилированной сборки), добавив один &к его коду. Очевидно, никто никогда не профилировал его.)
Дэвид Шварц
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.