powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Откуда взялись тормоза при работе по ODBC ?
12 сообщений из 12, страница 1 из 1
Откуда взялись тормоза при работе по ODBC ?
    #35587734
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин. Первый раз на такое наталкиваюсь.

Есть сервер под FreeBSD, на котором стоит PostgreSQL 7.4 (уже года 3 стоит), есть небольшая база на нем, юзеры ее юзают те же 3 года - клиенты на Windows, доступ по ODBC.
И вот, в какой-то момент, начали жаловаться на скорость. Посмотрел на explain основных запросов - все в порядке, индексы используются, в планах выполнения больше 30 мс времени нет. Ну - вакуум сделал ...
Записей на клиент возвращается немного (50 - 200 - ну 600 -максимум, если за квартал списки открывают). И при этом данные по odbc "едут" жутко медленно. 600 записей (это 120 Кбайт) - 30 секунд. Проверил скорость обмена с сервером - по ftp скорость 1.5 МБайт в секунду. Проверил локально, через psql - данные возвращаются мгновенно.
В чем может быть трабл ? Куда смотреть ?

Админ местный говорит, что ничего на FreeBSD давно не меняли. Я пошарил там - ничего "такого" не нашел. Причем, причина явно на сервере - 3 клиентских компа под WinXP + терминальный сервер под Win2003 - с одинаковым драйвером odbc (ставились давно) - тормоза одинаковые.
Odbc клиент, для чистоты эксперимента, простая консолька SqlWorks.
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35587940
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizh
Админ местный говорит, что ничего на FreeBSD давно не меняли. Я пошарил там - ничего "такого" не нашел. Причем, причина явно на сервере - 3 клиентских компа под WinXP + терминальный сервер под Win2003 - с одинаковым драйвером odbc (ставились давно) - тормоза одинаковые.
Odbc клиент, для чистоты эксперимента, простая консолька SqlWorks.
На всякий пожарный, гляньте на клиентах настройки логгирования ODBC (commlog, mylog). Ну так, для очистки совести.
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35588083
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizh
Админ местный говорит, что ничего на FreeBSD давно не меняли. Я пошарил там - ничего "такого" не нашел. Причем, причина явно на сервере - 3 клиентских компа под WinXP + терминальный сервер под Win2003 - с одинаковым драйвером odbc (ставились давно) - тормоза одинаковые.
Odbc клиент, для чистоты эксперимента, простая консолька SqlWorks.
Ради эксперемента поставить самый свежий ODBC драйвер?
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35588091
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще мисл: в psql-ной консольке с клиента всё ОК со скоростью?
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35589222
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>На всякий пожарный, гляньте на клиентах настройки логгирования ODBC (commlog, mylog). Ну
>так, для очистки совести.
Все логи отключены. Их включение еще чуток замедляет скорость.

>Ради эксперемента поставить самый свежий ODBC драйвер?
Самый свежий odbc-драйвер смогу поставить только в понедельник, когда попаду в офис к клиенту - на терминалке у меня прав нету, а наружу сервер с постгресом не торчит.

>Еще мисл: в psql-ной консольке с клиента всё ОК со скоростью?
Аналогично, PGAdmin 3 смогу поставить только изнутри сети клиента. Проверю этот вариант.
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35590735
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил на одном из клиентов PGAdmin3. Через него любая работа с базой идет мгновенно, что селекты, что просмотр таблиц в полноэкранном режиме, что работа со структурами ... - короче - все ОК.
Установил ODBC-драйвер 8-й версии (один из последних). Тормоза остались, скорость возвращения 600 записей - 25 секунд вместо 30.
Пробовал играться с параметром cache size драйвера - результата нет.

Коллеги ! Что предпринять еще ?
Подозрение, что какой-то нюхачь ODBC-протокола на сервере установлен. Может такое быть ?
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35590768
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizhУстановил на одном из клиентов PGAdmin3. Через него любая работа с базой идет мгновенно, что селекты, что просмотр таблиц в полноэкранном режиме, что работа со структурами ... - короче - все ОК.
Установил ODBC-драйвер 8-й версии (один из последних). Тормоза остались, скорость возвращения 600 записей - 25 секунд вместо 30.
Пробовал играться с параметром cache size драйвера - результата нет.

Коллеги ! Что предпринять еще ?
Подозрение, что какой-то нюхачь ODBC-протокола на сервере установлен. Может такое быть ?
А если включить логирование запросов на сервере? Может что-то еще вылезет. Или включить логи ODBC драйвера, посмотреть есть ли что-то интерестное в них. Вроде там какие-то времена пишутся.

ЗЫ Нюхач на ODBC протокол больше смахивает на хитрую диверсию направленную против Вашей программы. Тут уже сложнее... я бы в таком случае попробовал другой сервак (заведомо "чистый", на котором развернуть дамп БД и попробовать поработать с ним. Если тормоза останутся - значит не в серваке дело, если исчезнут - копать Фрю.

ЗЗЫ Еще неплохо взять ноут и проверить на нём клиента, что бы не комп из их корпоративной сети, может они на клиентов по AD распространяют вредоносный софт . Таким могут быть например A-vir или Firewall, которые "шибко умные".
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35591946
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Или включить логи ODBC драйвера, посмотреть есть ли что-то интерестное в них. Вроде там
>какие-то времена пишутся.

Не - времен там нет. Включаешь mylog, делаешь view в far на этот файл, пускаешь запрос - и так это неспешно к файлу данные добавляются, как будто по dial-up-соединению едут.

>Нюхач на ODBC протокол больше смахивает на хитрую диверсию направленную против Вашей
>программы.

Из пушки по воробьям.

Проверял вывод netstat на клиенте и на сервере - на порту 5432 никого, кроме собственно соединения, нет.

> Тут уже сложнее... я бы в таком случае попробовал другой сервак (заведомо "чистый", на
>котором развернуть дамп БД и попробовать поработать с ним.

Развернул копию на другом сервере - все в порядке, понятное дело, со скоростью.

Насчет ноута в их сети - спасибо за идею, проверю еще и так :(
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35594965
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил своим ноутом в их сети. ODBC работает, как и ожидал, быстро.
Еще выяснилось, что часть клиентских компов у них не входят в домен AD, однако скорость ODBC маленькая у всех. Firewall установлен только для внешнего шлюза всей сети, на клиентских компах firewall нет. QoS не используется.
Что еще смотреть ? Может ли быть дело в апгрейде 1С 8.1, который они проводили на всех своих компах ? Может такое быть, что 1С меняет какие-нито либы, отвечающие за ODBC ?
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35595351
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Косил на библиотеки odbc (c:\windows\system32\*odbc*.dll).
Сделал 3 эксперимента.
1) На "тормозной" системе создал DSN к Visual Foxpro, попробовал читать селектом локально лежащий файл dbf. Тормоза наблюдаются такие-же дикие. Т.е. не в сети и не в сервере с Посгресом под FreeBSD дело, а в клиентской подсистеме ODBC.
2) Сравнил версии файлов c:\windows\system32\*odbc*.dll на 2 системах в их сети - "тормозной" и нормальной - оказались одинаковые полностью.
3) У меня на рабочем компе версии библиотек c:\windows\system32\*odbc*.dll более старые, чем у них - попробовал себе заменить, по$#%^@я через консоль восстановления Windows, но таки заменил. Скорость как была высокой, так и осталась.

:(
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35595559
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перерыл весь реестр на "тормозной" системе на предмет численных параметров ODBC, ничего, что походило бы на настройку, влияющую на скорость, не нашел :(
...
Рейтинг: 0 / 0
Откуда взялись тормоза при работе по ODBC ?
    #35595807
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizhПроверил своим ноутом в их сети. ODBC работает, как и ожидал, быстро.
Еще выяснилось, что часть клиентских компов у них не входят в домен AD, однако скорость ODBC маленькая у всех. Firewall установлен только для внешнего шлюза всей сети, на клиентских компах firewall нет. QoS не используется.
Что еще смотреть ? Может ли быть дело в апгрейде 1С 8.1, который они проводили на всех своих компах ? Может такое быть, что 1С меняет какие-нито либы, отвечающие за ODBC ?
Может быть. 1C научилась работать с PostgreSQL, может они что-то правят на клиенте? Может они что-то пишут "злое" в реестр, из-за чего ODBC становиться плохо. попробуёте найти Whats.new от патча 1С. Может там будут какие-то зацепки...

ЗЫ Из "мазохизма": На свой ноут поставить 1С, потом патчи. Что меняется патчами отслеживать с помощью regmon и filemon. будет много, но может какие-то зацепки получить удасться.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Откуда взялись тормоза при работе по ODBC ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]