tdc, quem derrubou o meu site?
DESCRIPTION
O cenário de aplicações Web apresenta um novo desafio a cada dia... no Brasil já atingimos 100 milhões de usuários com acesso a internet. E se seu projeto vira um sucesso e 1% dessas pessoas resolvem acessar ao mesmo tempo a sua aplicação ASP.NET? Nesta apresentação, mostraremos técnicas e recursos para que sua aplicação suporte um grande volume de usuários e que você também identifique os gargalos e pontos críticos de suas aplicações.TRANSCRIPT
Quem derrubou o meu site?The Developer Conference 2014@AlexandreTarifa@RodolfoFadino
IIS• Web Sites • Container para applications e diretórios virtuais, podendo ser acessado
por um ou mais bingings.• A partir do IIS7 cada site tem uma application a qual é a “root
application”, ou “default application”• Applications • Uma application é um grupo de arquivos que entrega um conteúdo ou
serviços sobre protocolos, como o HTTP. Quando você cria uma applicationn no IIS, o caminho da application se torna parte da url.
• Diretórios Virtuais • Um diretorio virtual é um diretório no iis que mapeia qualquer lugar em
um diretorio fisico no servidor.
Application Pools e Worker Process• ApplicationPool• Isola nossas aplicações promovendo segurança, confiança,
disponibilidade e performance.• Versão de framework• Modo de pipeline• Recycling
• WorkerProcess• Host da aplicação (w3wp.exe)• Pool de Threads• Número limitado• Bloqueio
DemoIIS
Requests e o Thread Pool• Processando Requisições Síncronas (Caixa Correios)
Thread Pool
Requests
Requests e o Thread Pool• Processando Requisições Assíncronas (Garçom
restaurante)
Thread Pool
Requests
Requests e o Thread Pool• Processando Requisições Assíncronas (Garçom
restaurante)
Requests e o Thread Pool• HTTP 503• Thread Pool (1MB Ram para cada uma)• 5000 (limite máximo) => 5G Ram
Task-based Asynchronous Pattern (TAP)• Task Parallel Library (TPL)• Baseada no conceito de Tasks• Maior eficiência no uso dos recursos computacionais• Melhor controle programático das Threads
DemoAsync e Sinc + IIS
Síncrono: use a abordagem síncrona quando:• as operações são simples e de curta duração;• simplicidade é mais importante do que eficiência;• as operações são basicamente de CPU ao invés de
utilizarem muito disco ou rede. métodos assíncronos em operações do tipo CPU-bound não oferecem resultados melhores
Assíncrono: use a abordagem assíncrona quando:• as operações são rede-bound ou I / O-bound em vez
de CPU-bound (leitura de arquivos, chamadas de webservices, etc);
• teste mostram que as operações de bloqueio são um gargalo no desempenho do site e que o IIS pode atender mais solicitações, utilizando métodos de ação assíncrona para estas chamadas de bloqueio;
• paralelismo é mais importante do que a simplicidade do código;
• você quer fornecer um mecanismo que permite aos usuários cancelar um pedido de longa duração;
A melhor solução de performance é fazer com que o seu código não seja executado o tempo
todo!
Cache
DemoCache, memCached e Redis
DemoLevel3 e Akamai
have a nice
CODE