powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / invalid segment size
10 сообщений из 10, страница 1 из 1
invalid segment size
    #34513335
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть вот такая ОС:
SunOS centurion 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-V890
И вот такой сервер:
IBM Informix Dynamic Server Version 7.31.FD9 Software Serial Number ACP#J267193
А вопрос такой, есть ли какие-то ограничения на размер сегмента памяти? Дело в том, что при 1 млн буферов сервер стартует нормально, а при 2 млн - нет.
oninit -v:
Allocating and attaching to shared memory...FAILED
oninit: Fatal error in shared memory creation
online.log:
21:15:57 shmget: [EINVAL][22]: key 52564802: invalid segment size
21:15:59 mt_shm_init: can't create resident segment
Всего памяти - 16 Гб, и хочется отхватить её побольше, побольше! Что я не так делаю?
...
Рейтинг: 0 / 0
invalid segment size
    #34513967
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid VorontsovЗдравствуйте!
Есть вот такая ОС:
SunOS centurion 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-V890
И вот такой сервер:
IBM Informix Dynamic Server Version 7.31.FD9 Software Serial Number ACP#J267193
А вопрос такой, есть ли какие-то ограничения на размер сегмента памяти? Дело в том, что при 1 млн буферов сервер стартует нормально, а при 2 млн - нет.
oninit -v:
Allocating and attaching to shared memory...FAILED
oninit: Fatal error in shared memory creation
online.log:
21:15:57 shmget: [EINVAL][22]: key 52564802: invalid segment size
21:15:59 mt_shm_init: can't create resident segment
Всего памяти - 16 Гб, и хочется отхватить её побольше, побольше! Что я не так делаю?

В /etc/system
set shmsys:shminfo_shmmax= обьем памяти в байтах

Загляните в machine notes там должно быть написано.


ps Всех с наступающим праздником.
...
Рейтинг: 0 / 0
invalid segment size
    #34514573
Leonid Vorontsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> set shmsys:shminfo_shmmax= обьем памяти в байтах
Ага, спасибо. Выставил в ядре всё, как написано. Сервер поднялся. Но как-то странно... Я ставил параметры:

BUFFERS 4000000
SHMVIRTSIZE 2048000

Соответсвенно, ожидал, что будет примерно 8 Гб резидентной порции и 2 Гб - виртуальной, а выглядит всё это вот так:

IBM Informix Dynamic Server Version 7.31.FD9 -- On-Line -- Up 00:11:36 -- 11075584 Kbytes

Segment Summary:
id key addr size ovhd class blkused blkfree
0 1381386241 10a000000 4278190080 93816 R* 522239 1
1 1381386242 209000000 4278190080 65944 V* 522240 0
2 1381386243 308000000 687865856 11160 V* 83968 0
3 1381386244 331000000 2097152000 32664 V* 4376 251624
Total: - - 11341398016 - - 1132823 251625

(* segment locked in memory)

Здесь нет ничего криминального? И вообще, при таких объёмах доступной памяти, какие значения были бы оптимальными? У кого какой опыт по этому поводу?
...
Рейтинг: 0 / 0
invalid segment size
    #34520478
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid VorontsovВсего памяти - 16 Гб, и хочется отхватить её побольше, побольше! Что я не так делаю?
Далеко не всегда огромный буферный пул будет полезен. Как минимум, перестанет работать "легкое сканирование" для некоторых таблиц, увеличится длительность КТ, а для DSS (OLAP) запросов большой пул даже будет вреден. В то же время, если вся БД поместиться в кэш, то, наверное, это тоже будет неплохо, так что надо проверять и тестировать производительность системы в целом. Память можно выделать на PDQ, что здорово помогает на больших объемах сортировок и тяжелых операциях...
...
Рейтинг: 0 / 0
invalid segment size
    #34521222
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А прикидочно, как лучше распределить память для случаев, допустим, объема ОЗУ 2 Гб и 16Гб для произвольной базы? Сколько под Shared, сколько под Buffers, еще там под чего-нибуть типа PDQ, хотя-бы в %?
...
Рейтинг: 0 / 0
invalid segment size
    #34522303
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет большого объема буферов - тут надо искать некий компромисс. Если данные обновляются приложениями очень активно то вырастет длительность чекпоинтов. Если время отклика критично для приложений, то можно выставить агрессивные параметры для LRU (низкие пороги сброса буферов на диски), это уменьшит длительность чекпоинтов, но тогда возрастет нагрузка на процессоры.
...
Рейтинг: 0 / 0
invalid segment size
    #34522409
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Vorontsov> set shmsys:shminfo_shmmax= обьем памяти в байтах
Ага, спасибо. Выставил в ядре всё, как написано. Сервер поднялся. Но как-то странно...

В этом случае имеет место т.н. Buffer Overflow to the Virtual Portion или перемещение части буферов в виртуальные сегменты разделяемой памяти. Ничего криминального в этом нет.
...
Рейтинг: 0 / 0
invalid segment size
    #34528739
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010А прикидочно, как лучше распределить память для случаев, допустим, объема ОЗУ 2 Гб и 16Гб для произвольной базы? Сколько под Shared, сколько под Buffers, еще там под чего-нибуть типа PDQ, хотя-бы в %?
Для ПРОИЗВОЛЬНОЙ базы этого сделать нельзя. Нужно учитывать комплекс обстоятельств, некоторые из которых уже упоминались в данном топике.
...
Рейтинг: 0 / 0
invalid segment size
    #34535094
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisДля ПРОИЗВОЛЬНОЙ базы этого сделать нельзя.
А если продукт только разворачивается, статистики еще никакой нет, размер базы пока мал, неужели оставите все параметры в состоянии "по-умолчанию" или подкрутите под средние значения, чтобы хотя-бы утилизировать физические возможности сервера?
...
Рейтинг: 0 / 0
invalid segment size
    #34536788
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010 vasilisДля ПРОИЗВОЛЬНОЙ базы этого сделать нельзя.
А если продукт только разворачивается, статистики еще никакой нет, размер базы пока мал, неужели оставите все параметры в состоянии "по-умолчанию" или подкрутите под средние значения, чтобы хотя-бы утилизировать физические возможности сервера?
Только не оставлять "по умолчанию". Я вообще не понимаю, зачем такие минимальные и слабо работающие параметры надо задавать при инсталляции... Что интересно, много раз видел работающие сервера именно с такими параметрами (2000 буферов и т.п.) и люди сильно удивлялись, "мол, какой неприхотливый Информикс к ресурсам, берет всего 8М и больше не просит" :))
Хорошо, давай попробую дать абстрактные рекомендации или те, которые дает производитель.
Обычно рекомендуется использовать под буф.пул 20-25% ОП, хотя эта рекомендация очень условна и зависит от:
- потребности ОС для своих нужд (зависит от ее настроек)
- других приложений
- некоего запаса, чтобы даже при одноразовом запуске какого приложения ничто не начало свопиться
- упускаю природу работы с БД (OLTP, OLAP, DSS)
- от размера виртуального сегмента, который вы собираетесь выделить клиентским запросам, а он зависит от прожорливости этих самых запросов и их количества. Обычно я расчитываю на 2-5Мб на одного клиента исходя из наших задач + 20-50М резерва и "на сортировки"
- количества блокировок

Затем тьюнинг по результатам мониторинга.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / invalid segment size
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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