Веб-интерфейс и база данных моего сайта разделены на двух серверах, которые соединены 1000M LAN.
Я считаю, что время ответа почти на каждый запрос превышает 800 мс. Я могу гарантировать, что с моим запросом все в порядке, потому что, когда я развертываю его на одном сервере, проблема не возникает.
сайт / база данных asp.net 2.0 / sql server 2000
Если ваш DNS вызывает задержку 800 мс (что должно быть) кэшированного IP-адреса, что-то серьезно не так с настройкой вашей сети. ПО МОЕМУ МНЕНИЮ. Вы можете увидеть, если это проблема, используя команду ping.
Используйте traceroute, чтобы убедиться, что пакеты используют эффективный маршрут между двумя компьютерами. Это легко сделать, поэтому стоит попробовать, прежде чем возиться с другими вещами. Если на маршруте много переходов, может быть, больше двух или трех, найдите сетевого специалиста и спросите его, почему это так.
При попытке устранить сетевые проблемы SQL лучше всего использовать очень простой запрос, например «SELECT GETDATE ()», и использовать простой инструмент запросов, например SQLCMD.EXE. Простой запрос означает, что серверу не придется тратить много времени на синтаксический анализ запроса, не будет каких-либо значительных блокировок или блокировок, и запрос не вернет миллионы строк данных по сети. Простой инструмент запросов означает, что вам не нужно беспокоиться о том, что IIS может делать, а что нет. Если на сервере IIS не установлен SQLCMD.EXE, OSQL.EXE или аналогичный инструмент, возможно, стоит написать крошечный скрипт psh или vbs для проверки возможности подключения к SQL Server. Если у вас нет такого доступа к серверу IIS, вы, вероятно, могли бы написать специальную страницу ASP, которая просто запускала этот простой запрос и возвращала результат и сколько времени потребовалось для запуска.
Если мне нужно догадаться о проблеме, это будет следующее -> Особенно со старым оборудованием и драйверами, не полагайтесь на настройки «автосогласования» сетевых адаптеров. Установите одинаковые настройки для обеих карт вручную.
Я знаю, что это затруднение, но я лично видел, как это устраняет дюжину или около того подобных проблем, в которых сетевые специалисты были в тупике. (В конце концов, это серверы, и не похоже, что они будут подключены к множеству разных коммутаторов, и им когда-либо потребуется повторно согласовывать скорость соединения или настройки дуплекса.)
Вы также можете увидеть эту проблему, наблюдая за скоростью передачи данных на сетевых адаптерах, измеряемой в МБ / с, с помощью монитора производительности. Как только вы установили базовый уровень, измените настройки сетевых адаптеров и снова понаблюдайте.
Обычно вы можете обойтись без изменения этих настроек «вживую», но я бы не стал пробовать это во время пиковой загрузки, когда впервые возился с этими настройками. Пробная версия в тестовой среде будет лучше, если она у вас есть. Если у вас есть период обслуживания, это будет лучше всего. Если на сервере только 1 сетевая карта, будьте осторожны, чтобы не настроить сетевой адаптер так, чтобы он не мог разговаривать с коммутатором, или вам, возможно, придется попросить кого-то физически войти в консоль, и это облом для всех.
Есть много возможных причин. Может быть проблема, например, с одним из драйверов сетевого адаптера.
Вам нужно будет проверить, является ли соединение SQL узким местом или общей сетевой проблемой. Попробуйте выполнить команду «select getdate ()» с веб-сервера, чтобы проверить, затронут ли каждый запрос.
Пинги к серверу базы данных тоже медленные? Также попробуйте использовать IP-адрес вместо имени сервера - возможно, это проблема с разрешением DNS.