Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory / 9 сообщений из 9, страница 1 из 1
02.09.2008, 17:36
    #35518753
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
История:
"Подвис" сервер IDS9.4 UC8 после попытки одной из сессий выполнить большое количество удалений (с большим количеством блокировок).

Анализ online.log показал, что:
online.log...
dynamically allocated 100000 locks (15 раз)
10:35:32 dynamically allocated 100000 locks
10:35:36 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).

10:35:36 out of virtual shared memory

10:35:37 Assert Warning: Lock table overflow - user id 79, session id 92
10:35:37 IBM Informix Dynamic Server Version 9.40.UC8
10:35:37 Who: Session(18923, xxx@yyy, 2764, 0x94ef5b38)
Thread(301370, sqlexec, 874eb6d0, 1)
File: rslock.c Line: 2367
10:35:37 Results: Memory allocation error.

10:35:37 Action: Make more virtual memory available to Dynamic Server
10:35:37 stack trace for pid 9629 written to /usr/local/informix/tmp/af.9d22ecc8
10:35:37 See Also: /usr/local/informix/tmp/af.9d22ecc8
10:35:37 Lock table overflow - user id 79, session id 92
10:35:38 shmat: [ENOMEM][12]: out of available data space, check system memory parameters (e.g. MAXMEM).

10:35:38 out of virtual shared memory

...

и далее такие же Assert для кучи пользователей...

То есть, сервер выделял динамически по 100 000 блокировок пока не закончилась shared memory.
После чего все сессии пытающиеся получить блокировку (в том числе и новые) "подвисали".
Вылечилось рестартом IDS.

Рассуждения: В старом добром IDS 7.31 параметр конфигурации LOCKS резервировал и одновременно ограничивал сверху максимальное количество блокировок. Начиная с 9.30 IDS использует LOCKS для первичной инициализации массива блокировок и при необходимости сам набрасывает по 100 000 дополнительно.

Вопрос: Можно ли в такой ситуации:
1) без рестарта сервера освободить shared memory, выделенную под "лишние" блокировки? onmode -F поможет?
2) ограничить всё-таки максимальное количество блокировок (лучше получить отлуп на жадном клиенте, чем "подвесить" работу всего сервера)...
...
Рейтинг: 0 / 0
02.09.2008, 17:48
    #35518780
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
Мдя..
В док-ции к 11.50 даже такого параметра, как LOCKS нету...
...
Рейтинг: 0 / 0
02.09.2008, 22:34
    #35519149
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
...
Рейтинг: 0 / 0
03.09.2008, 10:11
    #35519544
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
Яковлев Павел АнатоЛойМдя..
В док-ции к 11.50 даже такого параметра, как LOCKS нету...

ээээ а вот это про что ?

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.adref.doc/ids_adr_0094.htm

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.perf.doc/ids_prf_435.htm

Виноват, смотрел в русской версии сайта - и разделов, на которые Вы ссылаетесь, просто нет в оглавлении (левая панель) :(. Если бродить по ссылкам в правой панели "Справочника администратора" - таки всё нормально :). Даже русскую версию нашёл :).
...
Рейтинг: 0 / 0
03.09.2008, 11:58
    #35519898
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
АнатоЛой Вопрос: Можно ли в такой ситуации:
1) без рестарта сервера освободить shared memory, выделенную под "лишние" блокировки? onmode -F поможет?
нельзя
...
Рейтинг: 0 / 0
03.09.2008, 12:41
    #35520059
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
Тан АнатоЛой Вопрос: Можно ли в такой ситуации:
1) без рестарта сервера освободить shared memory, выделенную под "лишние" блокировки? onmode -F поможет?
нельзя

Тогда в данном случае реализация "динамичности" блокировок получается однобокая - не перегружая сервер нарастить блокировки можем (а точнее сервер это делает САМ, и, с точки зрения администратора, процесс наращивания практически неуправляемый), а вот уменьшить можно только перезагрузкой IDS . DSA пора переименовать в DSA+Only[], поскольку с реализацией "-" имеются натяжки...
...
Рейтинг: 0 / 0
03.09.2008, 14:09
    #35520321
Алексан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
АнатоЛой Вопрос: Можно ли в такой ситуации:
1) без рестарта сервера освободить shared memory, выделенную под "лишние" блокировки? onmode -F поможет?
2) ограничить всё-таки максимальное количество блокировок (лучше получить отлуп на жадном клиенте, чем "подвесить" работу всего сервера)...1. ИМХО - нельзя; onmode -F освобождает неиспользованные блоки памяти, а тут они заняты под блокировки.
2. Сервер добавляет блокировки не более 15 раз и не более 100 тыс за раз, насколько я помню, так что объём памяти всё же ограничен. То ли я где-то читал, то ли это моё личное подозрение, но мне кажется, что они могут добавляться лишь в первый виртуальный сегмент.

АнатоЛойВылечилось рестартом IDS Транзакцию можно откатить, а виртуальных сегментов - добавить (если память есть, конечно).

АнатоЛойТогда в данном случае реализация "динамичности" блокировок получается однобокая - не перегружая сервер нарастить блокировки можем (а точнее сервер это делает САМ, и, с точки зрения администратора, процесс наращивания практически неуправляемый), а вот уменьшить можно только перезагрузкой IDS . DSA пора переименовать в DSA+Only[], поскольку с реализацией "-" имеются натяжки... В 7-ке пришлось бы перегружать сервер для добавления локов, так что не уверен, что стало хуже.
...
Рейтинг: 0 / 0
03.09.2008, 16:19
    #35520786
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
Алексан
АнатоЛой Вопрос: Можно ли в такой ситуации:
1) без рестарта сервера освободить shared memory, выделенную под "лишние" блокировки? onmode -F поможет?
2) ограничить всё-таки максимальное количество блокировок (лучше получить отлуп на жадном клиенте, чем "подвесить" работу всего сервера)...
1. ИМХО - нельзя; onmode -F освобождает неиспользованные блоки памяти, а тут они заняты под блокировки.


Эти блоки не "заняты", они:
1. были "зарезервированы"
2. могут полностью или частично быть "заняты блокировками" в такой-то момент времени - в соответствии с собственно существующими в этот момент времени блокировками. И после снятия блокировок - практически полностью освободиться... Я к тому, что операцию уменьшения этого массива можно легко представить...

Алексан
АнатоЛой Вопрос: Можно ли в такой ситуации:
2) ограничить всё-таки максимальное количество блокировок (лучше получить отлуп на жадном клиенте, чем "подвесить" работу всего сервера)...

2. Сервер добавляет блокировки не более 15 раз и не более 100 тыс за раз, насколько я помню, так что объём памяти всё же ограничен.
Для 11-ки в доке написано максимум 99 раз...

Алексан
То ли я где-то читал, то ли это моё личное подозрение, но мне кажется, что они могут добавляться лишь в первый виртуальный сегмент.
Вот это проверить пока не пробовал.... И если это так - реализация "динамичности" опять может оказаться грустной...


Алексан
АнатоЛойВылечилось рестартом IDS Транзакцию можно откатить, а виртуальных сегментов - добавить (если память есть, конечно).


С памятью, как вы помните на 32-битном Линухе есть ограничения в 2ГБ с хвостом... И представьте, что этот максимум уже выеден... Поэтому логичен вопрос: а что я в конце концов, могу "динамично" отрезать у своего сервера, чтобы он мог добавить себе ещё блокировок?! Кроме "обрезания" сессий и onmode -F чего-то ничего и не придумывается....

Алексан

АнатоЛойТогда в данном случае реализация "динамичности" блокировок получается однобокая - не перегружая сервер нарастить блокировки можем (а точнее сервер это делает САМ, и, с точки зрения администратора, процесс наращивания практически неуправляемый), а вот уменьшить можно только перезагрузкой IDS . DSA пора переименовать в DSA+Only[], поскольку с реализацией "-" имеются натяжки...
В 7-ке пришлось бы перегружать сервер для добавления локов, так что не уверен, что стало хуже.

Не совсем, в 7-ке ещё можно было бы подумать как обойтись меньшим количеством локов, причём времени на раздумывание скоко хошь:после обрезания жадной сессии остальные пользователи всё-таки могут и продолжают работать :(
...
Рейтинг: 0 / 0
03.09.2008, 23:00
    #35521405
IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory
АнатоЛой Яковлев Павел АнатоЛойМдя..
В док-ции к 11.50 даже такого параметра, как LOCKS нету...

ээээ а вот это про что ?

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.adref.doc/ids_adr_0094.htm

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=/com.ibm.perf.doc/ids_prf_435.htm

Виноват, смотрел в русской версии сайта - и разделов, на которые Вы ссылаетесь, просто нет в оглавлении (левая панель) :(. Если бродить по ссылкам в правой панели "Справочника администратора" - таки всё нормально :). Даже русскую версию нашёл :).

Как там ? Ни когда не читайте поутрам советских газет ?

Читайте документацию только в оригинале - переводы и задерживаются и косяками страдают :)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / IDS9.4 UC8, dynamically allocated locks и out of virtual shared memory / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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