Назад | Перейти на главную страницу

Оценить ежедневный сетевой ввод-вывод между 2 серверами

У меня есть 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.