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


9

Eu tenho uma instância do RDS que está me custando muito dinheiro. Na atividade da minha conta na amazon, vejo que a instância teve cerca de 800.000.000 de solicitações de pedidos de veiculação nos últimos 7 dias.

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

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

Eu apreciaria suas ideias.


Você encontrou uma solução no seu caso?
Click UpVote

Respostas:


6

Ah, Amazon Web Services. Uma das maiores fontes 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 cobrado pela quantidade de dados que está saindo do sistema deles. É insano.

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

800.000.000 de pedidos de IO em 7 dias. Isso é ~ = 1300 IOPS. Uau. Esse é um desempenho perverso.

Como exemplo, um banco de dados de site de tamanho médio pode ter 100 GB de tamanho e esperar uma média de 100 E / S por segundo ao longo de um mês. Isso significaria US $ 10 por mês em custos de armazenamento (100 GB x US $ 0,10 / mês) e aproximadamente US $ 26 por mês em custos de solicitação (~ 2,6 milhões de segundos / mês x 100 E / S por segundo * US $ 0,10 por milhão de E / S).

Em http://aws.amazon.com/ebs/, cerca de 90% da página

Se você realmente deseja reduzir o que isso está lhe custando, talvez seja hora de verificar se o RDS é realmente o mais adequado ao seu orçamento de aplicativo e projeto.

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


3
Quando experimentei o serviço SimpleDB da AWS, que é algo como o MongoDB, recebi uma fatura de US $ 50 em uma tarde. É conveniente, mas quase nunca barato.
Tom O'Connor

Acho que o EBS não pode mais o motivo pelo qual vejo esse custo em minha fatura: "A E / S está incluída no preço dos volumes, portanto você paga apenas por cada GB de armazenamento provisionado". (a partir da página de preços )?
hayd 26/07

Sigh, verifica-se que ainda está disponível na geração anterior !
Hayd

6

Eu tenho uma instância do RDS que está me custando muito dinheiro.

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

Além disso, considere executar o script primer de ajuste do MySQL da instância da AWS na instância do banco de dados para uma análise de desempenho geral para verificar se uma instância maior ajudaria nos 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 gargalos e fornecer algumas recomendações genéricas.


5
É impressionante a facilidade com que nós, humanos, acidentalmente podemos fazer com que os computadores façam quantidades absurdamente grandes de trabalho. Você sempre tem que voltar e medir para garantir que não inadvertidamente obrigou a máquina a fazer algo incrivelmente estúpido. (Certa vez, melhorei o desempenho de um sistema do mundo real implantado em 40% em menos de dez minutos (sem contar o tempo para configurar uma compilação com perfil)) adicionando uma &ao seu código. Claramente, ninguém jamais o fez.)
David Schwartz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.