Hoster
86 сообщений
#17 лет назад
Наша компания предоставляет Windows-хостинг. При этом тарифный план зависит, как обычно, от объема трафика, использованного клиентом за месяц. Общий трафик (bandwidth, GB/month) состоит из трафика 1) самого сайта (http, https), 2) ftp-трафика и 3) почтового трафика. Все эти 3 параметра легко считаются по log-файлам. Это умеют и контрольные панели, и всякие там AWStats-ы.

Но до сих пор я не видел нигде программы/скрипта для подсчета MS SQL трафика. И ни одна из известных мне панелей (Plesk, Helm, ...) не умеет его считать.

Вопрос в том, возможно ли его как-то посчитать для MS SQL 2000 и/или 2005? Если возможно - размещу такой заказ на weblancer.net

Пример: На SQL сервере 100 баз, принадлежащих 100 клиентам. Эти клиенты при помощи SQL Enterprise Manager, Query Analyzer и других инструментов закачивают на сервер данные. Как понять, кто сколько мегабайт закачал/скачал?
Евгений Муза
182 сообщения
#17 лет назад
Можно взять порт (порты), через которые пропускается трафик MSSQL и сканировать кол-во проходимой информации, также как для http - 80-й порт, для smtp - 25-й. Мне кажется нужно написать программу, которая будет сканировать входящий и исходящий трафик, проверять на какой сайт он направляется и фиксировать эти данные.
 Hoster
86 сообщений
#17 лет назад
Порт для SQL обычно 1433. Вопрос в том, не будет ли этот сканер мешать работе SQL-сервера и/или сильно тормозить его?
Евгений Муза
182 сообщения
#17 лет назад
Это я Вам наверное не скажу, не сталкивался с такими вопросами.
Михаил П.
6 сообщений
#17 лет назад
В MS SQL есть мониторинг в объеме.
Также в винде есть встроенное средство монитоинга. Что вы все время велосипед изобритаете.
Все (или почти все) уже изобретено до нас.
 Hoster
86 сообщений
#17 лет назад
SoftCompany, то есть Вы можете при помощи этих существующих средст сделать для меня отчет? По такой-то БД трафик за месяц такой-то...
Мокшанцев Г.
3 сообщения
#17 лет назад
На мой взгляд у Вас задачка не тривиальная. Так как Вам надо учитывать только трафик, который приходит от Ваших клиентов из вне. Поскольку есть еще внутренний трафик, когда приложение Вашего клиента коннектиться к базе и этот трафик, как я понимаю, для Вас не принципиален. Самое простое решение, но не простое в реализации, в данном случае написать клиента для работы с базой. Фактически данный клиент Вам и позволит контролировать трафик.

Еще вариант попробывать фиксировать IP по коннекту к базе с логином. И пока есть коннект есть считать трафик по этому ай пи и писать его в базу. Но это больше из области предположений, но думаю что если "поковырять" написать можно.

Встроенные средства мониторинга помогут Вам.(не думаю, что в полном объеме) Но для этого нужно собирать информацию на каждый день, складывать ее куда нибудь и потом анализировать. Данное решение сожрет мощности, и для анализа логов Вам все равно необходимо будет писать какую либо программу.
 Hoster
86 сообщений
#17 лет назад
- Нам бы хотя бы без разделения трафика на внешний и внутренний...

- Как сопоставить IP с конкретной БД и логином?

- Какие встроенные средства и как именно могут помочь?
Мокшанцев Г.
3 сообщения
#17 лет назад
Вы я так понимаю используете SQL авторизацию.
Есть достаточно мощный инструмент WMI Думаю что в вашем случае можно копать в эту сторону.
По поводу клиента к базе, тоже понятно?
Встроенные средства скл профайлер, будет собирать всю информацию о работе с конкретной базой, трафик встроенные каунтеры есть на сервере 2003 и 2000 тоже. Осталось только объединить это.
 Hoster
86 сообщений
#17 лет назад
Да, мы используем SQL авторизацию.

SQL профайлер действительно жутко тормозит сервер. Жутко. Его можно включать только в случае крайней необходимости, чтобы что-то отладить, и побыстрее выключать.
Мокшанцев Г.
3 сообщения
#17 лет назад
Я про это и говорил. Остается 2 варианта написания программы, которые я описывал.