Estado da sessão do ASP.NET O SQL Server 2008 R2 congela com alto uso da CPU

1

Nosso site ASP.Net usa o SQL Server como o provedor de estado da sessão. Atualmente, hospedamos o banco de dados no SQL Server 2005, já que ele não funciona bem no 2008 R2. Gostaríamos de saber por que e como consertar isso.

configuração de hardware Nosso servidor de estado de sessão atual tem o SQL Server 2005 com os arquivos hospedados em um único disco local. É um dos nossos servidores mais antigos, já que nos serviu bem, e nunca sentimos a necessidade de atualizá-lo. O banco de dados é de cerca de 2 GB, mantendo 6000 sessões. (As sessões são um pouco grandes, mas precisamos disso.) Temos outro servidor com o SQL Server 2008 R2 com uma CPU muito mais rápida e muito mais RAM. edite: Eu menti sobre o disco muito mais rápido. O servidor mais antigo tem uma unidade SAS de 15 GB e 36 GB. O novo servidor possui um espelhamento 1 de 15K drives com 136GB de espaço disponível.

situação Um dia, temos um enorme aumento no tráfego. O crescimento do log de transações no SQL Server congela o servidor por 10 segundos, permitindo apenas algumas solicitações em minutos. Então, nós carregamos o novo servidor com ASPState com dados muito grandes e arquivos de log e apontamos todos os nossos aplicativos para o novo servidor. Ele funciona bem por cerca de 5 minutos e, em seguida, o uso da CPU salta para 50% dos 16 núcleos que o Standard Edition pode usar e congela por 10 segundos de cada vez. Os arquivos não registram nenhum evento de crescimento automático. A fila de discos é boa e baixa. O uso de RAM é baixo.

O uso da CPU no nosso antigo servidor nunca foi superior a 5%. O que aconteceu no novo servidor?

Como alternativa, gostaria de ouvir histórias de sucesso com o servidor de estado da sessão do ASP.NET em execução no SQL Server 2008 R2 com uma carga média de gravação de 30 MB / s com disparos de até 200 MB / s.

    
por John Tseng 25.06.2013 / 22:18

1 resposta

2

Seu primeiro servidor, com o SQL Server 2005, estava se comportando de maneira normal para um grande aumento no log de transações. Existem truques que você pode usar para aumentar a velocidade de crescimento de arquivos para o arquivo mdf, mas não para o ldf.

link

Não sei o que dizer sobre seu segundo servidor, com base nas informações acima. No entanto, a fila de disco provavelmente não é a métrica que você está procurando aqui. Você provavelmente deseja o contador lógico Perfmon: Avg. Disk sec / Write ou equivalente, e valores ótimos (média) para ldfs são 5ms ou menos.

Eu vou adivinhar, baseado em "um disco rígido muito mais rápido", que você não está usando RAID. É possível, apesar do número da fila de disco, que você esteja tendo pressão de gravação em disco. Você também pode estar passando por esperas de trava ou de bloqueio.

Aqui está uma consulta que ajudará a diagnosticar esperas:

link

    
por 25.06.2013 / 23:25