Coldfusion App: Banco de Dados vs Desempenho de Arquivo Estático Sob Carga Pesada

1

Temos um aplicativo da web CF8 que pode ser executado em dois modos: Banco de dados ou arquivo estático. Sob carga pesada, o modo de banco de dados out executa o modo Staticfile visivelmente. E estou tentando descobrir o porquê.

Primeiro, algum contexto:

  • Executamos o Solaris Zones & Oráculo; ColdFusion 8, 32 bits, com JRun 4

  • No modo de banco de dados, todos os dados são obtidos de um servidor de banco de dados externo executando o Oracle 10g.

  • No modo de arquivo estático, todos os dados necessários para o aplicativo funcionar são gerados com antecedência a partir do banco de dados, colocados no servidor da Web que está executando o CF e chamados por meio do CFINCLUDE.

Durante um teste de carga em que os usuários virtuais executam ações por definição repetidamente, no modo DB, conseguimos executar 31600 sessões (na tabela CDATA), enquanto no arquivo estático, foram 25900 sessões. Isso é ao longo de 60 minutos. O tempo médio para concluir uma iteração (login, executar ação, logout), no modo DB, é de 22 segundos e, no modo de arquivo estático, é de 33 segundos. O uso máximo de heap do java era ~ 800 MB no modo DB, ~ 700 MB no modo de arquivo estático.

Eis por que eu esperaria que o arquivo estático fosse melhor:

  • Os dados estão no mesmo servidor; somente a operação é E / S de arquivo. Os arquivos já foram gerados anteriormente.
  • Não há tráfego de rede adicional para os servidores de banco de dados e vice-versa.

Alguma idéia de por que isso pode ser? Onde posso procurar (ou perguntar aos respectivos administradores - DB, OS, App) para ver por que isso pode ser?

Obrigado!

KM

    
por KM. 27.01.2011 / 20:34

1 resposta

3

É mais provável que você esteja economizando na latência de acessar os discos. O Oracle DBMS manterá tudo o que puder no cache do buffer, portanto, você poderá fazer muito pouco acesso ao disco, exceto no início. Você também teria que comparar a velocidade relativa dos subsistemas de disco. As empresas gastarão muito em uma matriz de disco rápida para um servidor de banco de dados que não gastarão em um servidor de aplicativos.

    
por 27.01.2011 / 21:39