Amazon RDS: O que são solicitações de E / S?

8

Eu tenho uma instância do RDS que está me custando muito dinheiro. Da atividade da minha conta na Amazon, vejo que a instância teve cerca de 800.000.000 pedidos de IO nos últimos sete dias.

Para dar uma pequena perspectiva, meu aplicativo recebe apenas 6.000 visitas únicas por dia e não faz muitas conexões de banco de dados.

Então, o que exatamente é uma solicitação de IO e por que esse número seria tão alto? Estou disposto a fazer o que for preciso para o meu aplicativo para reduzir esse custo, se necessário, mas não tenho certeza do que realmente está acontecendo.

Eu apreciaria seus pensamentos.

    
por Abe 08.05.2012 / 08:56

2 respostas

6

Ah, Amazon Web Services. Um dos maiores afundamentos de dinheiro disponíveis. Muito bom, mas nem sempre barato. Na verdade, quase nunca é barato e sempre é difícil estimar as despesas.

Uma solicitação de E / S é uma operação de disco. Seja uma leitura ou uma gravação, você está basicamente sendo acusado de quantos dados está recebendo do sistema deles. É insano.

Você pode estimar as solicitações de E / S que está fazendo, observando o iostat.

800.000.000 de IOrequests em 7 dias. Isso é ~ = 1300 IOPS. Uau. Isso é algum desempenho perverso.

As an example, a medium sized website database might be 100 GB in size and expect to average 100 I/Os per second over the course of a month. This would translate to $10 per month in storage costs (100 GB x $0.10/month), and approximately $26 per month in request costs (~2.6 million seconds/month x 100 I/O per second * $0.10 per million I/O).

From http://aws.amazon.com/ebs/ about 90% of the way down the page

Se você realmente quiser reduzir o que isso está custando, talvez seja hora de verificar se o RDS é realmente o melhor ajuste para o orçamento de seu aplicativo e projeto.

Se você tiver apenas 6k acessos por dia, poderá obter melhor custo e desempenho com um servidor dedicado (de preferência 2 deles, um para o DB e outro para os serviços da Web). Na verdade, é um pouco mais difícil fazer essa ligação, já que você não falou muito mais sobre seu aplicativo.

    
por 08.05.2012 / 09:11
6

I have an RDS instance that is costing me a lot of money.

"Serviços em nuvem" não significa que as coisas vão lhe custar centavos. Basicamente, uma solicitação de E / S é qualquer coisa (por exemplo, um banco de dados ou uma página de índice) que precisou ser buscada no disco. Se você tiver um banco de dados e consultas grandes usando varreduras de tabela completas, isso não é surpreendente. Você pode considerar procurar consultas usando colunas não indexadas para filtragem, ativando o opção de registrar as consultas" não indexadas "no log lento do MySQL e adicionar índices para as colunas apropriadas. Como você não tem a opção de editar o arquivo de configuração diretamente, use o Configuração do grupo de parâmetros RDS para definir log-queries-not-using-indexes e consultar a tabela mysql.slow_log para entradas de log.

Além disso, considere executar o script primer de ajuste do MySQL de sua instância do AWS com relação à instância do banco de dados para uma análise de desempenho geral para veja se uma instância maior ajudaria a resolver problemas devido a uma quantidade maior de memória disponível para armazenamento em cache, aliviando a carga no disco. O script avalia vários parâmetros de configuração e contadores de desempenho para fornecer algumas informações sobre possíveis afunilamentos e fornecer algumas recomendações genéricas.

    
por 08.05.2012 / 09:16