Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / invalid segment size / 10 сообщений из 10, страница 1 из 1
08.05.2007, 16:32
    #34513335
Leonid Vorontsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
Здравствуйте!
Есть вот такая ОС:
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
08.05.2007, 21:01
    #34513967
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
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
09.05.2007, 14:25
    #34514573
Leonid Vorontsov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
> 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
11.05.2007, 20:16
    #34520478
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
Leonid VorontsovВсего памяти - 16 Гб, и хочется отхватить её побольше, побольше! Что я не так делаю?
Далеко не всегда огромный буферный пул будет полезен. Как минимум, перестанет работать "легкое сканирование" для некоторых таблиц, увеличится длительность КТ, а для DSS (OLAP) запросов большой пул даже будет вреден. В то же время, если вся БД поместиться в кэш, то, наверное, это тоже будет неплохо, так что надо проверять и тестировать производительность системы в целом. Память можно выделать на PDQ, что здорово помогает на больших объемах сортировок и тяжелых операциях...
...
Рейтинг: 0 / 0
12.05.2007, 20:46
    #34521222
bk0010
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
А прикидочно, как лучше распределить память для случаев, допустим, объема ОЗУ 2 Гб и 16Гб для произвольной базы? Сколько под Shared, сколько под Buffers, еще там под чего-нибуть типа PDQ, хотя-бы в %?
...
Рейтинг: 0 / 0
14.05.2007, 09:10
    #34522303
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
Насчет большого объема буферов - тут надо искать некий компромисс. Если данные обновляются приложениями очень активно то вырастет длительность чекпоинтов. Если время отклика критично для приложений, то можно выставить агрессивные параметры для LRU (низкие пороги сброса буферов на диски), это уменьшит длительность чекпоинтов, но тогда возрастет нагрузка на процессоры.
...
Рейтинг: 0 / 0
14.05.2007, 09:50
    #34522409
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
invalid segment size
Leonid Vorontsov> set shmsys:shminfo_shmmax= обьем памяти в байтах
Ага, спасибо. Выставил в ядре всё, как написано. Сервер поднялся. Но как-то странно...

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

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


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