Ответ 1
Измерение производительности веб-сервера не является тривиальной задачей. Несколько вещей, которые следует учитывать:
- Найдите фактическое узкое место. Это может быть память, доступ к диску, кэширование, доступ к базе данных, латентность сети и т.д. Чтобы узнать, используйте профилировщик памяти или другой профайлер производительности.
- Используйте WireShark, чтобы узнать разницу между тем, как долго длится запрос на вашем компьютере и как долго выполняется ваш код.
- Попробуйте другие конфигурации. Дайте ASP.NET больше памяти. Обновите тестовую систему. I.e., переход от 8 ГБ /2,5 ГГц с 600 запросами/сек до 16 ГБ /3,0 ГГц может дать 6500 запросов/сек. Рост производительности часто не является линейным. См. этот документ из Microsoft.
- Рассмотрим добавление дополнительной машины. Это может привести к повышению производительности на 50 или даже выше в зависимости от того, как вы его настроите. См. Снова этот документ из MS.
- Проверьте эти подсказки Jon Skeet. В потоке комментариев также обнаруживаются некоторые неочевидные потенциальные узкие места.
ПРИМЕЧАНИЕ 1. Знайте свои инструменты. ASP.NET запускает каждый запрос в своем потоке. Обмен потоками происходит быстрее, чем процесс обмена, но он все еще требует времени. Если другие обработчики занимают время, потому что они находятся в цепочке запросов, полезно отключить их.
ПРИМЕЧАНИЕ 2: одной из исходных сторонних задач stackoverflow было создание сайта в ASP.NET, который имел большую производительность на серверах с максимальным количеством 2 и мог обрабатывать > 1Mln посетителей в час. Им это удалось. Я считаю, что они написали на нем несколько блогов, но я не помню, где они находятся.