Atribuição 1.0.5.0
Índice
Sistemas Verificados
- Atribuição de aula, versão 1.0.5.0
- CoreSSO, versão 1.28.0.0
- Gestão acadêmica, versão 1.65.0.0
- Gestão acadêmica API, versão 1.61.0.0
Verificação de Desempenho
Observação do teste
Durante a construção dos cenários de testes foram encontrados alguns bugs, segue relação dos mesmos abaixo:
- Imagens faltando no carregamento da página.
- Erro ao abrir o painel de controle.
- O sistema não exibe loader para o usuário, este ponto não é interessante para a experiência do usuário, tendo em vista que a impressão que o sistema esta travado.
- Na tela de cadastro de vaga ao clicar em "Enviar" não é exibido nenhuma informação que a página está carregando e é possível interagir com a tela. Deste modo é possível forçar um erro no sistema ao clicar novamente no botão "Enviar".
- Na tela de cadastro de vaga ao clicar em "Enviar" novamente enquanto a tela carrega o pop-up exibido não habilita as ações dos botões.
- Não são todas as mensagens de erro (mensagens com o fundo vermelho) que são salvas no banco de dados.
Para a realização dos teste foi utilizado:
- 1 Servidor de banco dados: SQL
- 1 Servidor de banco de dados: Mongo
- 1 Servidor ARR
- 2 Servidores web (denominados WEB1 e WEB2)
- 1 Controller
- 1 Test agent
Para melhor visualização nos relatórios o cenário 1 foi abreviado para C1 e o cenário 2 para C2.
Análise do teste
- Dados obtidos nos dois cenários de teste
A aplicação possui diferentes comportamentos com relação ao hardware utilizado no momento de considerar ou não a SEDE. O processamento possui grande variação entre os webs quando a atribuição de aulas considera o vinculo SEDE, um dos servidores web acaba tendo processamento superior. Neste cenário, enquanto a distribuição pelo ARR estava em 52,64% para o WEB1 e 47,36 para o WEB2 a diferença de processamento entre eles foi superior a 30%. Quando, na atribuição, não é considerada o vínculo, o processamento entre os servidores web é mais equilibrado.
O mesmo cenário de variação observada no processador pode ser observada na memória e na rede enquanto os testes eram executados. Referente ao cenário 2, o processador possui uma elevada taxa de mudança de contexto, o que significa que o processador é compartilhado repetidamente, por exemplo, por muitos segmentos de igual prioridade. A alta taxa de contexto-chave muitas vezes indica que existem muitos segmentos que competem para os processadores no sistema. A taxa de trocas de contexto também pode afetar o desempenho de computadores com múltiplos processadores.
Foi possível observar os pontos listados abaixo durante a execução dos teste:
- 1) Quando considerado o vínculo SEDE, a memória virtual comprometida dos servidores web ficam próximos da utilização do servidor de banco de dados. Quando não é considerado, o servidor mais utilizado é o do banco de dados, enquanto o ARR, WEB01, e WEB02 possui uma quantidade próxima de utilização.
- 2) Quanto maior a quantidade de usuários no cenário 2 menor o tempo ocioso do disco, enquanto no cenário 1 o processamento é estável.
- 3) A fila do disco está dentro do valor recomendado.
- 4) A média da quantidade de sessões foi superior no cenário 1.
- 5) A expectativa de vida da página é superior quando o cenário 2 é executado.
Cenários de uso
Cenário de uso #1 - Atribuição com lista de importação que não considera vínculo sede. | |||||
---|---|---|---|---|---|
Ação realizada | Think Time: Atraso constante (segundos) | Think Time: Desvio (segundos) | |||
1 - Acessar tela de login | 5 | 1 | |||
1 - Realizar login | 15 | 3 | |||
1 - Selecionar sistema | 6 | 1 | |||
2 - Acessar tela "Atribuição de aula" | 5 | 1 | |||
2 - Preencher campo "Fase" | 7 | 2 | |||
2 - Preencher campo "Cenário" | 7 | 2 | |||
2 - Clicar em "Pesquisar" | 4 | 1 | |||
2 - Clicar em "Concluir" | 10 | 3 | |||
2 - Acessar painel de vagas | 10 | 3 |
Cenário de uso #2 - Atribuição com lista de importação que não considera vínculo sede. | |||||
---|---|---|---|---|---|
Ação realizada | Think Time: Atraso constante (segundos) | Think Time: Desvio (segundos) | |||
1 - Acessar tela de login | 5 | 1 | |||
1 - Realizar login | 15 | 3 | |||
1 - Selecionar sistema | 6 | 1 | |||
2 - Acessar tela "Atribuição de aula" | 5 | 1 | |||
2 - Preencher campo "Fase" | 7 | 2 | |||
2 - Preencher campo "Cenário" | 7 | 2 | |||
2 - Clicar em "Pesquisar" | 4 | 1 | |||
2 - Clicar em "Concluir" | 10 | 3 | |||
2 - Acessar painel de vagas | 10 | 3 |
TOP queries mais lentas
- Item 1
- Média do CPU: 6256
- Tempo decorrido: 18156
1 INSERT INTO @teachersAttributed
2 SELECT a.TeacherEnrollment_Id
3 FROM Attribution AS a WITH(NOLOCK)
4 INNER JOIN AttributionStep AS ats WITH(NOLOCK)
5 ON a.Id = ats.Attribution_Id
6 WHERE
7 a.Process_Id = @processId
8 AND ats.Step_Id = @stepId
9 AND ats.Situation = 2
- Item 2
- Média do CPU: 839
- Tempo decorrido: 75624
1 SELECT TOP (1)
2 Result.[Rank]
3 FROM (
4 SELECT
5 lc.[Rank] AS [Rank]
6 FROM
7 ListContent AS lc WITH(NOLOCK)
8 INNER JOIN TeacherEnrollment AS te WITH(NOLOCK)
9 ON lc.TeacherEnrollment_Id = te.Id
10 AND te.State = 1
11 INNER JOIN JourneyList AS jl WITH(NOLOCK)
12 ON te.JourneyList_Id = jl.Id
13 AND jl.State = 1
14 WHERE
15 lc.State = 1
16 AND lc.Discipline_Id = @disciplineId
17 AND lc.ListImport_Id = @listImportId
18 AND ((@localExecution = 1 AND lc.School_Id = @schoolId) OR (@localExecution = 2))
19 AND NOT EXISTS (SELECT 1 FROM @teachersAttributed ta WHERE ta.TeacherEnrollment_Id = lc.TeacherEnrollment_Id)
20 ) AS Result
21 ORDER BY Result.[Rank] ASC
Resultado dos testes
Nesta seção serão apresentados os resultados obtidos da execução dos testes.
- Processador e disco
- Contador: Percentagem de tempo ocioso.
- Descrição: Este contador fornece quanto tempo o disco permaneceu em estado de repouso, ou seja, todos os pedidos do sistema operacional para o disco ter sido concluída e há zero de pedidos pendentes. Este contador varia de 100 (ou seja, sempre ocioso) para 0 (ou seja, sempre ocupado).
- Limite recomendado: Abaixo de 75 %.
- Análise: O disco fica ocioso.
- Contador: Percentagem de espaço livre.
- Descrição: Mostra a porcentagem do espaço total utilizável no disco lógico selecionado.
- Limite recomendado: Acima de 25%.
- Análise: Aplicação está dentro do recomendado.
- Tempo total do processador.
- Descrição: Mede a utilização da CPU de cada processador.
- Limite recomendado: Não exceder 80% por mais de 10 minutos ao longo do período de teste.
- Análise: Aplicação está dentro do recomendando.
- Contador: Mudança de contexto.
- Descrição: A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto.
- Limite recomendado: Quanto menor melhor.
- Análise: Grande variação entre os servidores WEB quando executado o cenário 2.
- Memória
- Contador: Páginas/segundo.
- Descrição: Mede o número de páginas por segundo que são paginadas fora da memória RAM para a memória virtual.
- Limite recomendado: Se o número for alto indica falhas graves. O limite normalmente é de 20 páginas/s
- Análise: Grande quantidade de páginas quando executado o cenário 2.
- Contador: % Memória virtual comprometida.
- Descrição: Indica a percentagem da memória comprometida utilizada dentro do limite dado pela soma da memória RAM e Page File.
- Limite recomendado: Abaixo de 75% e que não tenha grande variação no indicador.
- Análise: Aplicação está dentro do recomendado.
- Contador: Memória disponível em MBytes.
- Descrição: Indica quantidade de memória disponível para alocação em MBytes.
- Limite recomendado: Se o valor for inferior a 20/25 por cento de RAM instalada é uma indicação de memória insuficiente. Menos de 100 MB é uma indicação de que o sistema é muito carente de memória e paginação.
- Análise: Em verificação
- Network
- Contador: Kbytes totais pela interface de rede.
- Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede.
- Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor).
- Análise: Aplicação está dentro do recomendado.
- Contador: Falhas de conexão (TCP)
- Descrição: Este é o número bruto de conexões TCP que falharam desde que o servidor foi iniciado. Uma falha normalmente indica uma perda de dados em lugar no processo. A perda pode ocorrer em muitos locais. Esta poderia ser uma indicação de um outro dispositivo que está sendo para baixo, ou problemas com a configuração do lado do cliente do software.
- Limite recomendado: Quanto menor melhor.
- Análise: O servidor WEB1 possui uma quantidade superior de falhas.
- SQL
- Contador: Expectativa de vida da página.
- Descrição: Indica o número em segundos que uma página vai ficar na área de buffers, sem referências.
- Limite recomendado: Quanto menor melhor.
- Análise: No cenário 2 a expectativa de vida é superior.
- Contador: Request bloqueados.
- Descrição: Informa a quantidade de resquest bloqueados.
- Limite recomendado: Quanto menor melhor.
- Aplicação
- Dado: Sampler
- Descrição: Informa a quantidade threads.
- Limite recomendado: Quanto maior melhor.
- Dado: 90% dos melhores tempos de resposta
- Descrição: Informa os 90% melhores tempos de respostas.
- Limite recomendado: Quanto menor melhor.
- Dado: Porcentagem de erros
- Descrição: Informa porcentagem de erro no sistema durante os testes.
- Limite recomendado: Quanto menor melhor.
- Dado: Vazão
- Descrição: Informa a quantidade de dados transferidos.