Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Подскажите куда копать.
Проблема - при большом количестве коротких подключений (около 7500-10000 в день) на фоне 100-200 постоянных соединений (в сутки) через некоторое время - 10-20 дней сервер перестает устанавливать новые соединения.
Ошибки в логе сервера при этом могут быть разнообразные, чаще всего - "не могу подключится к базе Security" или начинает падать служба DCOM или WMI виндов без ошибок в логе FireBird Server
Старые соединения продолжают работать исправно.
Лечится только перезагрузкой сервера Windows - иногда (но это очень редко) нужно перезагрузить Windows два раза (это вообще по мне - непостижимое чудо) чтобы FireBird Server заработал стабильно - после первой перезагрузки работает минут десять а потом опять ошибки подключения.
Ошибка проявляется на Windows Server 2008 - 2012 (тестировалась на 6 конфигурациях). Хуже всего - когда FB ставится на виртуальную машину - там "время жизни" сокращается раза в три.
Firebird используется в режиме Classic (SuperServer для версий 2.хх не предлагать - ресурсов одного ядра для задач не хватает). Баз данных - всего две. Размер - не большой 5-10 Гб
Тестировались версии
- 2.1.17 - оказалась самая стабильная - падает через 10-20 дней
- 2.5.8 - живет при такой нагрузке всего 3-5 дней
версию 3.0.4 начали тестировать (особенно смотрели на режим SuperClassic), но для полноценного теста придется сильно лопатить метаданные и "клиентов", поэтому без уверенности, что там нет этого косяка, красить слона лениво
Подключение к базе -
- постоянный Delphi 7 + IB Controls, библиотека gds32 (из комплекта соответствующего сервера)
- короткие (сессия 1-2 минуты) - 50% тот же Delphi из РАЗНЫХ программок, запускаемых внешними событиями, остальные - php 5.3 с короткими подключениями на 1-2 запроса (пул в данном случае не предлагать - это не решает проблему а только отдаляет смерть на пару дней)

В чем может быть косяк? Куда рыть?
Если ошибка известная - решена ли она в тройке?
Гонял ли кто-то тройку в режиме SuperClassic, когда пару клиентов запустили "убойный" запрос минут на десять - не тормозят ли при этом остальные соединения?
1 фев 19, 12:17    [21799517]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 25078
Игорь-PicoMed
Старые соединения продолжают работать исправно.

Игорь-PicoMed
(пул в данном случае не предлагать - это не решает проблему а только отдаляет смерть на пару дней)

Не противоречие-ли?

ЗЫ. Сам с таким поведением не сталкивался.
1 фев 19, 12:33    [21799536]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9262
Игорь-PicoMed,

php 5.3 менять пора на 7.1. Там ошибок море (особенно в PDO) и 5.3 уже не поддерживается.
В драйвере PDO для FB сам недавно одну правил.
Для ibase драйверов тоже было исправлено несколько ошибок с того времени.
90% проблемы в пхпшных драйверах для firebird.

З.Ы. Нормального встроенного пула соединений в PHP не существует. Есть сторонние решения каких-то китайцев и даже выложено на github, но описание на китайском, а потому я бы такое не рискнул использовать.

Игорь-PicoMed
версию 3.0.4 начали тестировать (особенно смотрели на режим SuperClassic), но для полноценного теста придется сильно лопатить метаданные и "клиентов", поэтому без уверенности, что там нет этого косяка, красить слона лениво


зачем SuperClassic смотреть? Он там нужен постольку поскольку, сразу SS тестируй.
1 фев 19, 12:41    [21799553]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
wadman,
нет, не противоречие.
pConnect от php хорош, когда много однородных запросов и примерно ровная нагрузка, но если новые соединения перестали устанавливаться, а нагрузка выросла, то php не может расширить пул соединений и просто падает (с перезагрузкой apache)
1 фев 19, 12:41    [21799554]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9262
Игорь-PicoMed,

я ещё раз повторяю в PHP нет встроенного пула соединений. Это некая субстанция под названием постоянные соединения, которая таки да в некоторых случаях может даже вредить.
1 фев 19, 12:44    [21799557]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Симонов Денис
php 5.3 менять пора на 7.1. Там ошибок море (особенно в PDO) и 5.3 уже не поддерживается.

Скорее смотрим в сторону Nod.js, косяки php уже достали, особенно с русскими названиями файлов под юниксом

но в данном случае проблема с php вторична. Там с FB и winsock что-то происходит. Даже если вообще отключить php, проблема сохраняется, только реже проявляется.

Игорь-PicoMed
зачем SuperClassic смотреть? Он там нужен постольку поскольку, сразу SS тестируй.

спасибо, скорректирую тесты
1 фев 19, 12:50    [21799570]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1507
Игорь-PicoMed
косяки php уже достали, особенно с русскими названиями файлов под юниксом

рафик php ни в чем не виноуват

зы
если уже юниксы есть в хозяйстве, почему фб под виндой?
на линухе так проблем точно нет
1 фев 19, 12:57    [21799583]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9262
Дегтярев Евгений,

косяки в драйверах доступа к ФБ в пыхе есть и были это факт. Причём косяки весьма печальные, убивающие сервис апача.
Не исключено что вполне могли подтекать кое какие ресурсы.

Ну а то что ФБ под виндой не факт. У многих вполне себе работает и большое количество коннектов на винде безо всяких ошибок.
1 фев 19, 13:05    [21799595]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1507
Симонов Денис
я ещё раз повторяю в PHP нет встроенного пула соединений. Это некая субстанция под названием постоянные соединения, которая таки да в некоторых случаях может даже вредить.

Это действительно так. pconnect кеширует коннект к БД в рамках процесса или треда php. Это не так эффективно как пул.
1 фев 19, 13:10    [21799601]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
hvlad
Member

Откуда:
Сообщений: 10195
Игорь-PicoMed,

В firebird.log смотрели ?
Event log что говорит, когда DCOM\WMI "падает" ? (и что такое - падает ?)
netstat что говорит ?
Под какой учётной записью работает служба Firebird - системной или нет ?
Если под системной - стоит ли галка 'allow to interact with desktop' ?
1 фев 19, 13:13    [21799604]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1507
Симонов Денис
Дегтярев Евгений,

косяки в драйверах доступа к ФБ в пыхе есть и были это факт. Причём косяки весьма печальные, убивающие сервис апача.
Не исключено что вполне могли подтекать кое какие ресурсы.

Ну а то что ФБ под виндой не факт. У многих вполне себе работает и большое количество коннектов на винде безо всяких ошибок.


про нелегкую дружбу пыха с ib/fb я в курсе не понаслышке

про винду
автор
Ошибки в логе сервера при этом могут быть разнообразные, чаще всего - "не могу подключится к базе Security" или начинает падать служба DCOM или WMI виндов без ошибок в логе FireBird Server
1 фев 19, 13:14    [21799606]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Дегтярев Евгений
если уже юниксы есть в хозяйстве, почему фб под виндой?
на линухе так проблем точно нет

На юнихе действительно проблем не было ни разу.
Моя бы воля, был бы юних, но у заказчиков такой железный зоопарк, что сам диву даюсь.
НО! огромный плюс FB + Apache + PHP что это везде работает ОДИНАКОВО.
А с юниксом еще и вторая проблема - хорошего сисадмина найти (особенно в глубинке) занятие не для слабонервного.
Сисадмины нынче балованные, им виндовский ГУИ (а еще гламурный JAVA-WEB интерфейс), и мышку подавай с тремя колесиками, чтобы интеллектуальные мозоли в новых интерфейсах наяривать. А по другому задачу в крон они поставить или диск замепить не могут....
1 фев 19, 13:19    [21799615]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
MikeDD
Member

Откуда:
Сообщений: 238
Игорь-PicoMed, нигде в логах не появляется что-то типа такого: "Системная ошибка. Код: 8. Недостаточно памяти для обработки этой команды"? Когда ФБ перестает принимать подключения - все остальное работает, другие программы запускаются, с подключением по РДП проблем нет?
1 фев 19, 13:23    [21799622]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9262
Игорь-PicoMed,

ну при желании можно и линух с гуём поставить

Игорь-PicoMed
НО! огромный плюс FB + Apache + PHP что это везде работает ОДИНАКОВО.


это не совсем так.
1 фев 19, 13:24    [21799623]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Дегтярев Евгений
Member

Откуда: Барнаул
Сообщений: 1507
Игорь-PicoMed
FB + Apache + PHP

php обновить хотя-бы до 5.6, там вроде мало несовместимых изменений, а хороший код и на 7ке заведется
к проблеме конечно не относится, но связка apache+mod_php это прям архаизм, лучше nginx+php-fpm
1 фев 19, 13:31    [21799628]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
hvlad
В firebird.log смотрели ?

Варианты ошибок (для 2.1):
1. inconsistent lock table version number; found 3, expected 144
2. Fatal lock manager error: inconsistent lock table version number; found 0, expected 144, errno: 0
3. Fatal lock manager error: inconsistent lock table version number; found 3, expected 144, errno: 183
4. Database: C:\PROGRAM FILES\FIREBIRD\FIREBIRD_2_1\SECURITY2.FDB
lock manager error
5. Database:
Unable to complete network request to host "WIN-N08QDODOF22".
Error while listening for an incoming connection.
ϡ󷭮 𠧰湠泱��콪宮 鲯לּ询ᮨ塠履񠠱﫥򠠨౮򮪮백泥㯩 ᥰ汯௰򩮠
6. Database: C:\PROGRAM FILES\FIREBIRD\FIREBIRD_2_1\SECURITY2.FDB
page 789, page type 3 lock denied (216)
7. Database: C:\PROGRAM FILES\FIREBIRD\FIREBIRD_2_1\SECURITY2.FDB
internal gds software consistency check (page in use during flush (210), file: cch.cpp line: 2975)
8. Fatal lock manager error: release when not owner, errno: 0

- именно так ( Database: - пусто) - это запись лога
Логи 2.5 не сохранились, но ошибки такие же по содержанию...

комбинации всегда разные, но результат - один - новые соединения не подключаются.
Обычно перед началом вышеописанных ошибок идут штук 5-10 ошибок
SERVER/process_packet: broken port, server exiting

В списке выше - по частоте встречания

в больших количествах в логах ошибка
INET/inet_error: read errno = 10054
но это ни на что не влияет и я ее принимаю как неизбежное зло при подключении к базе через интернет

hvlad
Event log что говорит, когда DCOM\WMI "падает" ? (и что такое - падает ?)

Ошибки WMI:
примерно такие:
Event filter with query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_Processor" AND TargetInstance.LoadPercentage > 99" could not be reactivated in namespace "//./root/CIMV2" because of error 0x80041003. Events cannot be delivered through this filter until the problem is corrected.

Ошибки DCOM:

Регистрация сервера {752073A1-23F2-4396-85F0-8FDB879ED0ED} DCOM не выполнена за отведенное время ожидания.
или
Не удается найти описание для идентификатора события 10010 из источника Microsoft-Windows-DistributedCOM. Вызывающий данное событие компонент не установлен на этом локальном компьютере или поврежден. Установите или восстановите компонент на локальном компьютере.

{752073A1-23F2-4396-85F0-8FDB879ED0ED} - это Microsoft WMI Provider Subsystem Secured Host - частота ошибки 80%
{079AA557-4A18-424A-8EEE-E39F0A8D41B9} - MS XMLDOM - частота - 10%
остальные сервера разнообразные, например ShellWindows; компоненты, естественно установлены и после перезагрузки работает прекрасно
Ошибки WMI и DCOM примерно через полчаса заканчиваются синим экраном, НО! старые соединения с FB продолжают работать!!!

[quot hvlad]netstat что говорит ?[\quot]
В отношении порта 3050:
TCP 192.168.1.122:3050 2:26288 ESTABLISHED
TCP 192.168.1.122:3050 2:26703 ESTABLISHED
TCP 192.168.1.122:3050 client:65303 ESTABLISHED
TCP 192.168.1.122:3050 х.х.х.212:49203 ESTABLISHED
TCP 192.168.1.122:3050 х.х.х.212:51683 ESTABLISHED
TCP 192.168.1.122:3050 х.х.х.194:50572 ESTABLISHED
х.х.х.194 - старые соединения

hvlad
Под какой учётной записью работает служба Firebird - системной или нет ?
Если под системной - стоит ли галка 'allow to interact with desktop' ?

под системной, галка НЕ стоит
1 фев 19, 14:15    [21799700]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
MikeDD
Игорь-PicoMed, нигде в логах не появляется что-то типа такого: "Системная ошибка. Код: 8. Недостаточно памяти для обработки этой команды"? Когда ФБ перестает принимать подключения - все остальное работает, другие программы запускаются, с подключением по РДП проблем нет?

Нет, такой ошибки нет.
Ресурсов (память, диск, атомы) хватает с запасом. Гоняли на РАЗНЫХ серверах - Intel и AMD. правда все на 64 битах. Поведение одинаковое
До момента синего экрана RDP подключается
MikeDD
все остальное работает

сказать сложно - на сервере ничего другого нет, все что там работает (кроме антивируса) все так или иначе работает с базой, но апач продолжает работать и устанавливать новые соединения
1 фев 19, 14:19    [21799705]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Симонов Денис
ну при желании можно и линух с гуём поставить


Вы меня пугаете ))))
Линукс с гуём на сервере это куче резиновой бабы будет )))
Шутка, конечно, но ума сисадмину это не добавит....
1 фев 19, 14:22    [21799711]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9262
Игорь-PicoMed,

я не говорю что это нужно делать. Но поставить можно
1 фев 19, 14:24    [21799717]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Дегтярев Евгений
php обновить хотя-бы до 5.6, там вроде мало несовместимых изменений, а хороший код и на 7ке заведется

больной разницы 5.3 - 5.6 на нашей задаче не заметили (на 5.6 на юниксе гемморойно решался вопрос с Win1251, но это бантики)
на 7-ке наш код не завелся, вот и думаем, переписывать под семерку или сразу на nod.js
Хотя в параллельной ветке недели две назад тоже не лучшим образом nod.js + FB описали на нагруженных задачах....
Хотя на файловых задачах nod.js шустрее php будет разов в ...надцать и проблем с юникодом нет...
1 фев 19, 14:28    [21799721]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
hvlad
Member

Откуда:
Сообщений: 10195
Игорь-PicoMed,

Игорь-PicoMed
1. inconsistent lock table version number; found 3, expected 144
2. Fatal lock manager error: inconsistent lock table version number; found 0, expected 144, errno: 0
3. Fatal lock manager error: inconsistent lock table version number; found 3, expected 144, errno: 183

Лок-таблица в 2.1 для 32-битного Firebird имеет версию 16, для 64-битного - 16+128 = 144.
Откуда у вас появляется 3 - не могу сказать, но это плохой признак.
Я бы искал причину проблем именно тут. Или кто-то лезет грязными руками в файл лок-таблицы,
или у вас портится память, или...

0, скорее всего, - из-за каких-то гонок при инициализации лок-таблицы, или из-за предыдущей ошибки.
Да - невозможно работать одновременно с 32 и 64 битными версиями Firebird на одной машине.
Это касается и embedded процессов тоже.

Насчёт ошибок WMI\DCOM - гугл в помощь, их там таких 100500.
Firebird не нужно сюда впутывать.

Игорь-PicoMed
Ошибки WMI и DCOM примерно через полчаса заканчиваются синим экраном, НО! старые соединения с FB продолжают работать!!!
Это охренительная реклама для Firebird - продолжает работать при синем экране :)

Игорь-PicoMed
под системной, галка НЕ стоит
Для CS лучше поставить
Тут это уже обсуждалось, с подробностями. Давно, правда...
1 фев 19, 14:29    [21799726]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8212
Игорь-PicoMed
Линукс с гуём на сервере это куче резиновой бабы будет )))
Уж не забористей сервера БД с антивирусом.

Рассуждения про гуй имели смысл когда памяти было до 4 гиг, тут считали каждый мегабайт. Сейчас сервер несет на борту 128 гиг влегкую, гуёвая оболочка там будет тупо незаметна. Хотя надо признать, даже имея под рукой гуёвую оболочку на своем десктопе, запускаю консоль, когда треба чего-нибудь пошаманить в системе.
1 фев 19, 14:31    [21799731]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
Ivan_Pisarevsky
Уж не забористей сервера БД с антивирусом.

ООООО-да!
Только объяснить сисадмину что все его проблемы от касперского на сервере порой невозможно.
Как пробить железный "аргумент" - "у других же работает" - фантазии не хватает, а молоток в руки не дают )))

Ivan_Pisarevsky
даже имея под рукой гуёвую оболочку на своем десктопе, запускаю консоль, когда треба чего-нибудь пошаманить в системе.

как мне это знакомо (смотрю на консоли и радуюсь) - жаль в виндах ls не работает )))
1 фев 19, 14:45    [21799759]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Игорь-PicoMed
Member

Откуда:
Сообщений: 34
hvlad
Откуда у вас появляется 3 - не могу сказать, но это плохой признак.
Я бы искал причину проблем именно тут. Или кто-то лезет грязными руками в файл лок-таблицы,
или у вас портится память, или...

причина "или" - все остальные проверены и сняты...

hvlad
0, скорее всего, - из-за каких-то гонок при инициализации лок-таблицы, или из-за предыдущей ошибки.

можно поподробнее - куда смотреть

hvlad
Да - невозможно работать одновременно с 32 и 64 битными версиями Firebird на одной машине.
Это касается и embedded процессов тоже.

там только 64 битная версия и НИКОГДА не было 32-х битной, после перезапуска сервера (Windows) все начинает работать и работает дней 20

hvlad
Насчёт ошибок WMI\DCOM - гугл в помощь, их там таких 100500. Firebird не нужно сюда впутывать.

рад бы, но происходит это одновременно. Возможно и не связанно, но даже не знаю куда копать дальше - смотрю на все что там в этот момент происходит

hvlad
Игорь-PicoMed
Ошибки WMI и DCOM примерно через полчаса заканчиваются синим экраном, НО! старые соединения с FB продолжают работать!!!
Это охренительная реклама для Firebird - продолжает работать при синем экране :)

Сам в шоке, но это ФАКТ
Если следить за руками в SQL запросах убить базу сложно, за это и люблю FB

hvlad
Для CS лучше поставить
Тут это уже обсуждалось, с подробностями. Давно, правда...

Спасибо, поставлю. Видать пропустил эту тему
1 фев 19, 14:53    [21799771]     Ответить | Цитировать Сообщить модератору
 Re: Сбой при подключении новых клиентов  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 630
Игорь-PicoMed
Ivan_Pisarevsky
Уж не забористей сервера БД с антивирусом.

ООООО-да!
Только объяснить сисадмину что все его проблемы от касперского на сервере порой невозможно.
Как пробить железный "аргумент" - "у других же работает" - фантазии не хватает, а молоток в руки не дают )))
...

Письмо пиши, официально. На имя руководителя.
И про антивирусы, и про то, как должны бэкапы делаться, и требования к оборудованию.
1 фев 19, 15:30    [21799817]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Firebird, InterBase Ответить