Назад |
Перейти на главную страницу
Живой сайт не работает. Большие пробки. С чего мне начать. (Win 2003 + ASP.NET + Memcached + SQL Server 2005)
Наш трафик значительно вырос, но наш сайт работает нормально большую часть дня, но в часы пик наш сайт не работает. Сотни запросов ставятся в очередь, а затем все возвращается в нормальное состояние, когда заканчивается пиковый период.
Как правильно диагностировать узкое место?
Мы уверены, что это не сервер базы данных, поскольку мы используем Memcached для кэширования большей части данных. Помощь очень ценится.
Спасибо!
Я добавил комментарий о том, что для ответа на этот вопрос требуется дополнительная информация. Когда у нас будет что-то еще, я постараюсь обновить свой ответ.
А пока вы можете попробовать 3 быстрые вещи:
- Запустите профилировщик вашего кода. Посмотрите, не делает ли ваш код где-то что-то ужасно медленное.
- Оберните таймеры вокруг ключевых точек входа и выхода. Т.е. сохранять временную метку при вызове «ключевой подсистемы» и впоследствии рассчитывать время выполнения. «Ключевые подсистемы» - это любые возможные причины медлительности, о которых вы можете подумать, например, большие участки беспорядочного собственного кода, сторонние библиотеки, memcached, SQL и т. Д. Для достижения наилучших результатов во время работы ведите журнал в (в идеале отдельной) базе данных, чтобы вы могли следить за потреблением времени при пиковой нагрузке.
- Посмотрите на SQL Server; у него хорошая статистика, которая может вам многое рассказать. Какая скорость запросов? Есть ли запросы, которые одновременно используются часто и медленно?
На этот вопрос сложно ответить, не имея дополнительной информации, как упомянул Саймон.
Это похоже на хорошее чтение: http://msdn.microsoft.com/en-us/library/ms998549.aspx
В разделе «Threading Explained» есть некоторые предлагаемые оптимизации для уменьшения очереди запросов.