PostgreSQL 8.3 - 8.4

PostgreSQL 8.3 - 8.4

Сообщение General4 » 01 май 2012, 16:41

Доброго времени суток.

После преодоления рубежа в 70 объектов натолкнулся на проблему, а именно: could not send data to client: Unknown winsock error 10055.

Конфигурация сервера: Windows XP Pro SP3, Мираж 4.8 RC5 (было проверено также на RC6), 765 Мб оперативной памяти (было расширено до 2 ГБ). PostgreeSQL 8.3.18 (впоследствии перешёл на 8.4.11). Ничего лишнего на сервере не стоит.

Лечится пока что только перезагрузкой всей операционной системы. Перезапуск сервера Миража или службы PostgreeSQL после падения, проблему не решили (PostgeSQL вообще не стартует).
Когда памяти было 765 мб (после таких падений) при запуске диспетчера задач или других приложений ОС отображала на экране "Не хватает системных ресурсов". После увеличения до 2 гб, ситуация улучшилась но ровно на 2 дня. 3 дня не было никаких падений.

При падении сервера PostgreeSQL в процессах отображается нормальное состояние распределения памяти (это когда уже было 2 гб на борту). Это вводит в заблуждение. Журнал Windows XP фиксирует нехватку системных ресурсов и переполение буфера Winsock (10055 ошибка).

Почитав, наткнулся на несколько советов:
  • поставить программу poolmon.exe и посмотреть утечку памяти
  • второй вариант увеличить в postgresql.conf значение переменной shared_buffers со стандартных 32 МБ. Также поиграться с переменными work_mem, maintenance_work_mem и т.д.
  • поиграться с параметрами автовакуума в postgresql.conf
  • полностью перебить базу данных Миража (убрав события), но это край

Также пишут на других форумах, что дело в ОС, что много соединений, но я это сразу отметаю, т.к. тестировал и доводил до 2 000 соединений (о чём я здесь писал), стабильно держал.

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

Лог PostgreSQL
28 апреля 2012
2012-04-28 13:58:51 KRAT LOG: database system was shut down at 2012-04-28 11:53:27 KRAT
2012-04-28 13:58:51 KRAT LOG: database system is ready to accept connections
2012-04-28 13:58:51 KRAT FATAL: the database system is starting up
2012-04-28 13:58:51 KRAT LOG: autovacuum launcher started
2012-04-28 14:04:43 KRAT LOG: received fast shutdown request
2012-04-28 14:04:43 KRAT LOG: aborting any active transactions
2012-04-28 14:04:43 KRAT LOG: autovacuum launcher shutting down
2012-04-28 14:04:43 KRAT LOG: WAL writer process (PID 3476) was terminated by exception 0xC0000142
2012-04-28 14:04:43 KRAT HINT: See C include file "ntstatus.h" for a description of the hexadecimal value.
2012-04-28 14:04:43 KRAT LOG: terminating any other active server processes
2012-04-28 14:04:43 KRAT LOG: abnormal database system shutdown
2012-04-28 14:07:37 KRAT LOG: database system was interrupted; last known up at 2012-04-28 13:58:51 KRAT
2012-04-28 14:07:37 KRAT LOG: database system was not properly shut down; automatic recovery in progress
2012-04-28 14:07:37 KRAT LOG: record with zero length at 0/13C60198
2012-04-28 14:07:37 KRAT LOG: redo is not required
2012-04-28 14:07:38 KRAT LOG: database system is ready to accept connections
2012-04-28 14:07:38 KRAT LOG: autovacuum launcher started
2012-04-28 14:57:54 KRAT LOG: could not receive data from client: Unknown winsock error 10061
2012-04-28 14:57:54 KRAT LOG: unexpected EOF on client connection

29,30 апреля 2012 - пусто (дни прошли без проишествий)

31 апреля 2012
2012-05-01 16:56:10 KRAT LOG: could not send data to client: Unknown winsock error 10055
2012-05-01 16:57:06 KRAT WARNING: pgstat wait timeout
...
2012-05-01 17:06:14 KRAT WARNING: pgstat wait timeout
2012-05-01 17:08:10 KRAT LOG: could not receive data from client: Unknown winsock error 10061
2012-05-01 17:08:10 KRAT LOG: unexpected EOF on client connection
2012-05-01 17:09:20 KRAT LOG: received fast shutdown request

P.S.: Для сравнения: 765 мб - хватило на 1 день, при 2 гб - хватило на 3 дня.
P.S.2: Пробовал отключать автовакуум (autovacuum = off), но он его всё равно запускает.
Stemax: 6.4 - (Windows 7 Home x64 - 6 ГБ) - PostgreSQL 9.5.25 - 64-бит
Мираж Drive: 2.12 - (Windows 7 Pro x64 - 3 ГБ) - PostgreSQL 9.5.25 - 64-бит
Stemax Mobile: 1.6.4 - (Android 13 - 6 ГБ)
Аватара пользователя
General4
 
Сообщения: 670
Зарегистрирован: 18 янв 2012, 20:55
Откуда: Красноярск

Re: PostgreSQL 8.3 - 8.4

Сообщение ООО Роман » 02 май 2012, 13:51

не это ?
попробуй
Код: Выделить всё
netsh winsock reset
. Машина используется чисто под сервер или еще как рабочая станция?
Аватара пользователя
ООО Роман
 
Сообщения: 89
Зарегистрирован: 30 сен 2009, 17:14
Откуда: Луховицы

Re: PostgreSQL 8.3 - 8.4

Сообщение General4 » 02 май 2012, 14:10

Спасибо за ответы. :)
ООО Роман писал(а):не это ?

Ага, это уже пробовал, в реестре поменял значения, но всё равно упал.
ООО Роман писал(а):попробуй
Код: Выделить всё
netsh winsock reset
.

Спасибо за напоминание, давно сбрасывал, попробую ещё раз.
ООО Роман писал(а):Машина используется чисто под сервер или еще как рабочая станция?

Как сервер и как клиент. Работал с начала 2011 года, началось после преодоления 70 объектов на Мираже. В это же время 120 объектов на Альтонике выведенных на Мираж.

Попробовал сегодня поиграться с параметрами сервера PostgreSQL. Буду ждать результатов 3 дня.
Также заметил, что постепенно идёт увеличение невыгружаемой памяти ядра (похоже что придётся искать утечку). :?

А забыл сказать, со второго ноутбука подключается ещё один клиент, и у этого клиента, как раз к падению наблюдаются задержки по открытию карточки объекта. Иногда зоны не все отображались в карточке, например только 3 и 4.

Вот даты:
декабрь 2011 - 28 февраля 2012 - падений сервера не было, в этот период наблюдались задержки у клиента на мираже; было 67 объектов, альтоника 120.
с 1 марта 2012 - началось падение сервера PostgreSQL; объектов на мираже 70, альтоника 120.

Все рекомендации сделал, через 3-5 дней отпишусь. Если всё будет успешно, выложу мини-документацию по устранению этой проблемы в конце темы, мало ли кому пригодится.
Stemax: 6.4 - (Windows 7 Home x64 - 6 ГБ) - PostgreSQL 9.5.25 - 64-бит
Мираж Drive: 2.12 - (Windows 7 Pro x64 - 3 ГБ) - PostgreSQL 9.5.25 - 64-бит
Stemax Mobile: 1.6.4 - (Android 13 - 6 ГБ)
Аватара пользователя
General4
 
Сообщения: 670
Зарегистрирован: 18 янв 2012, 20:55
Откуда: Красноярск

Re: PostgreSQL 8.3 - 8.4

Сообщение General4 » 03 май 2012, 10:01

Невыгружаемая память дошла до 90 мб, и растёт стабильно прибавляя минимум по 4 байта с интервалом в 1 секунду. Придётся искать утечку...

...добавлено спустя некоторое время

Найдена утечка памяти, через программу Poolmon.exe. Найден тэг Irp, который выделяет 4-12 байт, а освобождает 2-8. Вот где эти 4 байта. Но этот тэг Irp задейтсвует много драйверов *.sys и походит на svchost.exe. Буду копать дальше...

...добавлено спустя некоторое время через некоторое время

Почитал, нашёл, что есть шанс, что драйвер HASP в некоторых ситуациях вызывает утечку памяти. Выгрузил сервер Мираж, и обнаружил, что утечка ушла, нормализовался тэг Irp (прекратил увеличиваться: сколько выделено, столько и освобождено).

Установил драйвер HASP версии 6.22, запустил сервер Мираж, и опять образовалась утечка. Сделал предварительный вывод, что я налетел на что-то такое в связке база данных PostgreSQL и сервер Мираж, что вызвало утечку памяти, например: частично повреждена база данных, и сервер Миража выделяет под что-то 4-12 байт, а узнаёт что этого нет и забывает высвобождать память. Но это только догадка. Завтра проверю на другом компьютере с переносом базы данных и понаблюдаю за сервером, через poolmon.exe. :idea:

Подожду RC7, почитаю, как можно отловить утечку по адресу и подготовить дамп памяти... 8-)
Stemax: 6.4 - (Windows 7 Home x64 - 6 ГБ) - PostgreSQL 9.5.25 - 64-бит
Мираж Drive: 2.12 - (Windows 7 Pro x64 - 3 ГБ) - PostgreSQL 9.5.25 - 64-бит
Stemax Mobile: 1.6.4 - (Android 13 - 6 ГБ)
Аватара пользователя
General4
 
Сообщения: 670
Зарегистрирован: 18 янв 2012, 20:55
Откуда: Красноярск

Re: PostgreSQL 8.3 - 8.4

Сообщение General4 » 04 май 2012, 09:37

Всё, проблема найдена. Утечка обнаружена в драйвере COM-USB-кабеля. Остановил в Мираже модемы и утечка исчезла.

Вылечил: Обновил драйвера с версии 2.0.0.18 до верси 2.0.0.24. Утечка исчезла. УРА, Мираж оказался не причём, это радует! :D

Вывод: Работало-работало всё штатно с начала 2011 года, а тут бах и утечка со временем образовалась в драйверах.
Stemax: 6.4 - (Windows 7 Home x64 - 6 ГБ) - PostgreSQL 9.5.25 - 64-бит
Мираж Drive: 2.12 - (Windows 7 Pro x64 - 3 ГБ) - PostgreSQL 9.5.25 - 64-бит
Stemax Mobile: 1.6.4 - (Android 13 - 6 ГБ)
Аватара пользователя
General4
 
Сообщения: 670
Зарегистрирован: 18 янв 2012, 20:55
Откуда: Красноярск

Re: PostgreSQL 8.3 - 8.4

Сообщение ООО Роман » 05 май 2012, 12:36

драйвера FTDI?
Аватара пользователя
ООО Роман
 
Сообщения: 89
Зарегистрирован: 30 сен 2009, 17:14
Откуда: Луховицы

Re: PostgreSQL 8.3 - 8.4

Сообщение General4 » 05 май 2012, 16:46

Чип: Prolific Technology
Компания: TRENDnet
Продукт: TU-S9 (версия 1)
VID, PID: VID_067B & PID_2303
Ссылка на продукт: http://trendnet.ru/products/catalog/detail/TU-S9
Примечание: Достался в наследство. Новые драйвера Profilic 1.3.0 - 1.6.0 (версия 2.1.30.193) устанавливаются некорректно (ошибка 10, на сколько я помню), сколько не пытался.

Есть ещё один USB-шнурок на чипе CH341, этот уже 4 года хорошо работает, хотя производитель на сколько я помню Китай. :D
Stemax: 6.4 - (Windows 7 Home x64 - 6 ГБ) - PostgreSQL 9.5.25 - 64-бит
Мираж Drive: 2.12 - (Windows 7 Pro x64 - 3 ГБ) - PostgreSQL 9.5.25 - 64-бит
Stemax Mobile: 1.6.4 - (Android 13 - 6 ГБ)
Аватара пользователя
General4
 
Сообщения: 670
Зарегистрирован: 18 янв 2012, 20:55
Откуда: Красноярск


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31