У меня есть 2 сервера: сервер базы данных (SQL Server 2008, называемый сервером A) и сервер приложений (называемый сервером B), которые отправляют запросы SQL первому.
На самом деле они находятся в одной локальной сети, но мы планировали разделить их на 2 разных географических объекта. Я пытаюсь оценить минимальную пропускную способность, требуемую между двумя серверами, чтобы мое приложение не пострадало от проблем с производительностью. Как я могу оценить объем данных, которыми обмениваются два сервера?
Я бы хотел, например, чтобы в день xx / xx / xxxx было отправлено примерно 1,5 ГБ данных из A в B и 750 МБ из B в A.
Есть ли на SQL Server диагностический инструмент, чтобы это измерить? Или просто сетевой инструмент?
У меня нет доступа к какому-либо физическому оборудованию, но я администратор обоих серверов. Спасибо.
Если у вас нет доступа к коммутатору, вы можете использовать инструмент сетевого анализа, например Microsoft Netmon или Wireshark. Вероятно, есть более простые инструменты для измерения пропускной способности данных, но, поскольку мне нравится Wireshark, я обычно использую его. Я бы настроил захват на соответствующем сетевом интерфейсе, используя этот фильтр захвата на SQL Server:
host 10.10.10.10 and port 1433
Замените IP-адрес фактического IP-адреса сервера B, измените порт, если он не является экземпляром по умолчанию, снимите флажок «неразборчивый режим» и запустите захват, а затем просмотрите захваченный размер в Статистика-> Сводка.
Я согласен с другими авторами, что, возможно, не стоит разделять серверы в зависимости от архитектуры приложения. Небольшое увеличение времени отклика между серверами может сильно снизить производительность, особенно если есть много последовательных SQL-запросов. Это также то, что вы можете наблюдать в своем захвате Wireshark (но может быть проще в SQL Profiler).
Вы можете включить сетевой поток на портах коммутатора, к которым подключены два сервера, и проанализировать этот поток.
Вы можете запустить Perfmon и захватить количество отправленных / полученных байтов в секунду; вам нужно будет записать в файл для агрегирования данных, но он покажет вам ваши пики. Он будет включать весь трафик, а не только SQL.