Este é o comando pgreplay que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
pgreplay - Repetidor de arquivo de log PostgreSQL para testes de desempenho
SINOPSE
pgreplay [analisar opções] [repetir opções] [-d nível] [no arquivo]
pgreplay -f [analisar opções] [-o arquivo de saída] [-d nível] [no arquivo]
pgreplay -r [repetir opções] [-d nível] [no arquivo]
DESCRIÇÃO
pgreplay lê um arquivo de log PostgreSQL (não um arquivo WAL), extrai as instruções SQL e
os executa na mesma ordem e tempo relativo em um cluster de banco de dados PostgreSQL.
Um relatório final fornece uma análise estatística útil de sua carga de trabalho e sua execução.
Na primeira forma, o arquivo de log no arquivo é reproduzido no momento em que é lido.
Com o -f opção, pgreplay não executará as instruções, mas as gravará em um 'replay
Arquivo' arquivo de saída que pode ser reproduzido com o terceiro formulário.
Com o -r opção, pgreplay irá executar as instruções no arquivo de repetição no arquivo que.
foi criado pelo segundo formulário.
Se a execução das instruções atrasar, serão emitidas mensagens de aviso que
indicam que o servidor não pode lidar com a carga em tempo hábil. A ideia é
reproduza uma carga de trabalho de banco de dados do mundo real tão exatamente quanto possível.
Para criar um arquivo de log que pode ser analisado por pgreplay, você precisa definir o seguinte
parâmetros em postgresql.conf:
log_min_messages = erro (ou mais)
log_min_error_statement = log (ou mais)
log_connections = on
log_disconnections = on
log_line_prefix = '% m |% u |% d |% c |' (se você não usa o registro CSV)
log_statement = 'all'
lc_mensagens deve ser definido para inglês (a codificação não importa)
bytea_output = escape (da versão 9.0 em diante, apenas se você quiser reproduzir o log na 8.4
Ou mais cedo)
O cluster de banco de dados no qual você reproduz as instruções SQL deve ser um clone do
cluster de banco de dados que gerou os logs do tempo imediatamente antes os logs eram
gerado.
pgreplay é útil para testes de desempenho, principalmente nas seguintes situações:
* Você deseja comparar o desempenho de seu aplicativo PostgreSQL em diferentes
hardware ou sistemas operacionais diferentes.
* Você deseja atualizar seu banco de dados e quer ter certeza de que a nova versão do banco de dados
não sofre regressões de desempenho que afetam você.
Além disso, pgreplay pode lhe dar uma ideia de como seu aplicativo poder escala por
permitindo que você tente reproduzir a carga de trabalho em uma velocidade mais alta. Esteja avisado, porém, que 500
usuários trabalhando em velocidade dupla não é realmente o mesmo que 1000 usuários trabalhando em velocidade normal
Rapidez.
OPÇÕES
Analisar opções:
-c Especifica que o arquivo de log está no formato 'csvlog' (altamente recomendado) e não no
formato 'stderr'.
-b timestamp
Apenas as entradas de registro maiores ou iguais a esse carimbo de data / hora serão analisadas. O formato é
AAAA-MM-DD HH: MM: SS.FFF como no arquivo de log. Uma parte opcional do fuso horário será
ignorado.
-e timestamp
Apenas as entradas de registro menores ou iguais a esse carimbo de data / hora serão analisadas. O formato é
AAAA-MM-DD HH: MM: SS.FFF como no arquivo de log. Uma parte opcional do fuso horário será
ignorado.
-q Especifica que uma barra invertida em um literal de string simples escapará do seguinte
citação única. Isso depende de opções de configuração como
strings_conforming_standard e é o padrão para o servidor versão 9.0 e inferior.
Responder opções:
-h hostname
Nome do host onde o cluster de banco de dados de destino está sendo executado (ou diretório onde o UNIX
soquete pode ser encontrado). Padrões para conexões locais.
Isso funciona exatamente como o -h opção de psql.
-p porta
Porta TCP em que o cluster de banco de dados de destino pode ser alcançado.
-W senha
Por padrão, o pgreplay assume que o cluster de banco de dados de destino está configurado para
trust autenticação. Com o -W opção, você pode especificar uma senha que será
usado para todos os usuários no cluster.
-s fator
Fator de velocidade para repetição, por padrão 1. Isso pode ser qualquer flutuação positiva válida
número do ponto. UMA fator menos de 1 reproduzirá a carga de trabalho em 'câmera lenta', enquanto
a fator maior que 1 significa 'avanço rápido'.
-E codificação
Especifica a codificação do arquivo de log, que será usado como codificação do cliente
durante o replay. Se for omitido, sua codificação de cliente padrão será usada.
-j Se todas as conexões estiverem inativas, pule para a próxima solicitação em vez de dormir.
Isso irá acelerar o replay. Atrasos de execução ainda serão relatados corretamente, mas
as estatísticas de reprodução não conterão o tempo ocioso.
saída opções:
-o arquivo de saída
especifica o arquivo de reprodução em que as instruções serão gravadas para reprodução posterior.
depurar opções:
-d nível
Especifica o nível de rastreamento (entre 1 e 3). Níveis crescentes produzirão mais
informações detalhadas sobre o que pgreplay está fazendo.
-v Imprime a versão do programa e sai.
MEIO AMBIENTE
PHOST Especifica o valor padrão para o -h opção.
PGPORT Especifica o valor padrão para o -p opção.
CODIFICAÇÃO PGCLIENTE
Especifica o valor padrão para o -E opção.
LIMITAÇÕES
pgreplay só pode reproduzir o que é registrado pelo PostgreSQL. Isso leva a algumas limitações:
* CÓPIA as instruções não serão reproduzidas, porque os dados da cópia não são registrados.
* Chamadas de função API de caminho rápido não são registradas e não serão reproduzidas. Infelizmente,
isso inclui a API de objeto grande.
* Uma vez que o arquivo de log está sempre na codificação do servidor (que você pode especificar com o -E
interruptor de pgreplay), todos SET codificação_cliente declarações serão ignoradas.
* Uma vez que o tempo de preparação das declarações preparadas não é registrado (a menos que
log_min_messages is depurar2 ou mais), essas declarações serão preparadas imediatamente
antes de serem executados pela primeira vez durante a reprodução.
* Como o arquivo de log contém apenas texto, os parâmetros de consulta e os valores de retorno serão
sempre em texto e nunca em formato binário. Se você usar o modo binário para, digamos, transferir
grandes dados binários, pgreplay pode causar significativamente mais tráfego de rede do que o
corrida original.
* Às vezes, se uma conexão demorar mais para ser concluída, o ID da sessão inesperadamente
alterações no arquivo de log do PostgreSQL. Isso faz com que pgreplay tratar a sessão como duas
diferentes, resultando em uma conexão adicional. Este é sem dúvida um bug em
PostgreSQL
Use o pgreplay online usando os serviços onworks.net