Estamos executando uma aplicação web e mudamos de memcached para redis (2.4) para armazenamento em cache. Agora estamos um pouco decepcionados com o desempenho do redis. O Redis está sendo executado no mesmo servidor e usamos apenas operações GET e SET simples. Em alguns pedidos que fazem uso intenso de valores em cache, temos até 300 pedidos GET para redis, mas esses pedidos levam até 150ms. Temos cerca de 200.000 chaves ativas e cerca de 1.000 pedidos redis por segundo. Não há problema com o disco io, ram ou cpu. Por causa do nosso código existente, não podemos simplesmente agrupar os pedidos de redis juntos. O Memcached foi cerca de 4 vezes mais rápido. O que gostamos de redis, é que não precisamos de nenhum aquecimento de cache, e que poderia usar recursos de armazenamento de dados mais avançados no futuro. Esperamos redis para executar semelhante a memcached. Então, talvez perdemos algo na nossa configuração, que é basicamente a configuração padrão. Você conhece alguma prática recomendada para o ajuste de performance redis, solicitado 30 de maio de 13 às 16h32. É uma aplicação web com cerca de 100 solicitações de apache por segundo. A Redis está sendo executada no mesmo host que o próprio aplicativo da web e o servidor de banco de dados mysql, mas planejamos mover o apache para 3 servidores balanceados em carga em breve. O servidor atual tem cerca de 64 GB de RAM, redis leva cerca de 100 MB. Há RAM livre e nenhum problema com a CPU ou io. O servidor não se desloca para o disco. E sim, eu significo 150ms para 300 pedidos, mas o memcached levou apenas 40ms nas mesmas condições. Ndash ak2 30 de maio 13 às 16:44 Primeiro, você pode querer ler a página de referência da Redis. Ele fornece um bom resumo dos principais pontos para verificar a afinação da Redis. Mesmo supondo que você não use pipelining, 300 GETs em 150 ms não são tão eficientes. Isso significa que a latência média é de 500 nós. No entanto, ele realmente depende do tamanho de seus objetos. Maiores objetos, mais latência. Na minha antiga caixa de AMD de 2 GHz, posso medir latências de 150 nós para objetos pequenos (alguns bytes). Para verificar rapidamente a latência média da instância do Redis, você pode usar: Certifique-se de usar uma versão Redis recente (não 2.4) para obter essa opção. Nota: 2.4 é bastante antigo agora, use o Redis 2.6 - compile sua própria versão Redis, se necessário, é realmente direto. Para executar rapidamente um benchmark para estudar latência, você pode iniciar: ele corre com uma conexão exclusiva e sem pipelining, de modo que a latência pode ser deduzida da taxa de transferência. Tente comparar o resultado desses benchmarks com os valores medidos com sua aplicação. Há uma série de pontos que você pode querer verificar: qual biblioteca do cliente Redis você usa Com qual idioma de desenvolvimento Para algumas linguagens de script, você precisa instalar o módulo hiredis para obter um cliente eficiente. A sua máquina é uma máquina virtual em que sistema operacional as conexões para o Redis são persistentes (ou seja, você não deve conectar-se a cada solicitação HTTP do servidor da aplicação). Por que é melhor com o memcached Bem, uma única instância de memcached é certamente mais escalável e pode ser mais sensível do que uma única instância do Redis, pois pode ser executada em múltiplos segmentos. Redis é rápido, mas simples - a execução de todos os comandos é serializada. Então, quando um comando está em andamento para uma conexão, todos os outros clientes precisam esperar - uma latência ruim em um determinado comando também afetará todos os comandos pendentes. Geralmente, com baixo débito, o desempenho é comparável. Em 1000 qs (um baixo débito pelos padrões Redis ou memcached), eu diria que é mais provável que seu problema seja no lado do cliente (ou seja, escolha da biblioteca do cliente, conexãodisconectável, etc.) do que com o próprio servidor Redis. Finalmente, devo mencionar que se você gerar uma série de consultas Redis por solicitação HTTP, considere pipelining os comandos que você envia para a Redis, na medida do possível. É realmente um ponto chave para desenvolver aplicativos Redis eficientes. Se os servidores da sua aplicação estiverem na mesma caixa do Redis, você também pode usar sockets de domínio Unix em vez do loopback TCP para se conectar à Redis. Ele melhora ligeiramente o desempenho (até 50 mais throughput quando o pipelining NÃO é usado).Gotando uma lista de valores únicos de uma coluna MySQL Deseja obter uma lista de todos os valores diferentes em uma coluna Use a palavra-chave DISTINCT. Este é um exemplo: (escrito em 2005-04-14, atualizado em 2006-06-05) Os tópicos associados são indexados como abaixo ou entre melksh. amnnnn para artigos individuais S157 - Mais comandos MySQL 4481 Extraindo dados de backups para restaurar linhas selecionadas do MySQL Tabelas - (2017-05-01) 3270 SQL - Dados v Metadados e as várias etapas da seleção de dados - (2017-04-29) 3061 Bancos de dados - por que os dados são divididos em tabelas separadas e como se juntar a eles - (2018 -11-20) 2647 Removendo duplicatas de uma tabela MySQL - (2018-02-22) 2645 Otimizando e armazenando em cache suas consultas do MySQL - (2018-02-22) 2644 Contagem de linhas nas tabelas MySQL juntas - (2018-02-22) 2643 Relacionando tabelas com junções no MySQL - (2018-02-21) 2448 MySQL - eficiência e outros tópicos - (2009-10-10) 2259 Agrupando linhas para um relatório de resumo - MySQL e PHP - (2009-06-27) 2110 MySQL - procurando registros em uma tabela que NÃO correspondem a registros em outra tabela - (2009-03-31) 1904 Ruby, Perl, Linux, MySQL - algumas notas de treinamento - (2008-11-23) 1735 Encontrando wor Ds e limites de trabalho (MySQL, Perl, PHP) - (2008-08-03) 1574 Juntar-se às tabelas MySQL revisadas - encontrando registros incompatíveis, etc. - (2008-03-15) 1331 O MySQL se junta revisitado - (2007-09-03) 1235 Saída de números como palavras - MySQL com Perl ou PHP - (2007-06-17) 1213 MySQL - a ordem das cláusulas e a ordem das ações - (2007-06-01) 673 Visão de helicóptero e tartan - (2006-04- 06) 591 Fatos-chave - SQL e MySQL - (2006-02-04) 581 Salvando uma consulta MySQL para o seu disco local para o Excel - (2006-01-29) 572 Dando o poder do pesquisador sobre a análise de banco de dados - (2006-01 -22) 567 Combinando linhas semelhantes de uma base de dados MySQL selecione - (2006-01-17) 517 Uma chance ocasional e reduzindo dados para níveis gerenciáveis - (2005-12-04) 515 MySQL - uma FAQ - (2005-12- 03) 513 MySQL - JOIN ou WHERE para vincular tabelas corretamente - (2005-12-01) 502 SELECIONAR no MySQL - escolher as linhas que você deseja - (2005-11-22) 494 MySQL - uma série de coisas para lembrar - (2005 -11-12) 449 Correspondência no MySQL - (2005-09-24) 159 MySQL - Optimis Selecciona - (2004-12-21) 158 MySQL - JUNTO ESQUERDO E DIREITO JUNTE-SE, INSCREVA-SE INTERNO E SEJA OUTRO - (2004-12-20) Alguns outros artigos 4722 postagens, página por página Esta é uma página arquivada em The Horses Mouth Em wellho. nethorse - o diário e os escritos de Graham Ellis. Toda tentativa foi feita para fornecer informações atuais no momento em que a página foi escrita, mas as coisas avançam em nossos negócios - novos lançamentos de software, mudanças de preços, novas técnicas. Verifique novamente através do nosso site principal para cursos atuais, preços, versões, etc. - qualquer menção de um preço em The Horses Mouth não pode ser considerada como uma oferta para fornecer a esse preço. Obrigado por nos visitar. Nós não fornecemos patrocínios ou convites para nossos cursos para apoiar os pedidos de Visa do Reino Unido. Se você deseja reservar qualquer um dos nossos cursos e é nacional da Ucrânia, consulte o seu Consulado britânico local e faça todos os arranjos de Visa necessários antes de reservar. Mais comentários por Colin (publicado em 2018-10-08) Link sugerido. Havent viu seu site surgir em pesquisas SQL por anos. Esta página encontrou a procura de uma solução para um problema ligeiramente diferente: eu preciso de uma lista de valores únicos e um id. Qualquer ID fará. Primeiro ou último. Então, como de sua mesa: Como retornar o destino distinto, juntamente com um tid Escolha um tid, qualquer fluxo de stack do tid tem um problema semelhante. Eu dou link. Meu col eu quero exclusivo tem alguns calcs pesados, então estou tentando evitar múltiplas seleções e juntas, tanto quanto poss. 3783 Classificação média da página - 4.0
No comments:
Post a Comment