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.
mysql
io
amazon-rds
Abe
fonte
fonte
Respostas:
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.
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.
fonte
"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-indexes
e consultar asmysql.slow_log
entradas 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.
fonte
&
ao seu código. Claramente, ninguém jamais o fez.)