Estou desenvolvendo ativamente em PHP & ASP.Net. Eu não posso reivindicar um profundo conhecimento do IIS, ou NGINX, mas estou muito familiarizado com o Apache e o Lighttpd.
O ASP.Net usa uma arquitetura encadeada que faz parte do próprio servidor web. Variáveis estáticas retêm seu valor entre solicitações e entre usuários. É aqui que o ASP.Net obtém a maior parte da vantagem de velocidade. A memória compartilhada é armazenada dentro de cada processo individual e entre os encadeamentos. Processos separados não compartilham memória. Então, quando você ultrapassa um servidor, grande parte dessa vantagem é perdida.
O PHP é construído no estilo CGI da moda antiga, em que cada solicitação é uma lista em branco. Isso significa que qualquer informação comum deve ser buscada em um repositório comum ou totalmente regenerada. PHP não é lento, é diferente. A maioria das principais operações em PHP está chamando módulos escritos em C, então eles são muito rápidos. O PHP executado por conta própria não é tão rápido quanto uma linguagem compilada, mas não é lento. Existem módulos (muito comuns) para o PHP, que compilam (na memória) versões do código, e podem aumentar o desempenho entre 4 e 10 vezes.
O PHP já existe há algum tempo e existem muitas soluções para o seu estilo CGI. O xcache oferece um armazenamento de valores muito semelhante às variáveis estáticas do ASP.Net. O Memcache oferece uma solução um pouco mais lenta, mas com melhor dimensionamento (entre servidores físicos) para variáveis compartilhadas persistentes.
ASP.Net oferece muito mais formalismo e estrutura. Mas maus programadores podem fazer uma bagunça em qualquer idioma. Se você escolher ASP.Net, deve investigar algumas das excelentes bibliotecas não-Microsoft para desenvolvimento. (por exemplo, NHIbernate e link )
Minha preferência pessoal (quando não pago para fazer o contrário) é PHP. Mesmo que leve uma penalidade de velocidade, é mais fácil desenvolver e menos complexo para escalar (mesmo se exigiria mais servidores PHP que .Net). Os servidores são muito mais baratos que os programadores.
Em qualquer um dos casos, qualquer Web > O aplicativo 2.0 será vinculado a dados e a configuração do banco de dados terá um impacto muito mais profundo no desempenho do que a escolha do idioma.