Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / BUFFERS > 400000 - возможно? (Linux 32) / 25 сообщений из 35, страница 1 из 2
05.12.2006, 20:40
    #34178847
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Вводная:

Имеем железо с 4 Гб памяти, ОС - Debian Linux 3.0, ядро 2.4.31, на нем установлен IDS 7.31UC8.
Пользователей к IDS подключается много, нагрузка довольно большая, иногда - критичная по части дискового чтения (не будем тыкать пальцами в программеров с их неоптимизированными запросами :) ).

В данный момент имеем следующие параметры конфигурации, связанные с использованием Информиксом ОЗУ:
Код: plaintext
1.
2.
3.
4.
5.
6.
LOCKS       2000000
BUFFERS      400000
SHMBASE      0x50000000L
SHMVIRTSIZE  786432
SHMADD       32768  
SHMTOTAL      0

в ядре увеличено на основании рекомендаций Installation Notes
SHMMAX 0xE0000000
(т.е. 3,5 Гб. - с лихвой)

Всего используется памяти Информиксом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# onstat -g seg

IBM Informix Dynamic Server Version 7.31.UD8     -- On-Line -- Up 06:11:22 -- 1739288 Kbytes

Segment Summary:
id       key        addr     size       ovhd     class blkused  blkfree
589103121 1381451777 50000000 974594048  34612    R*    118964   5
589135883 1381451778 8a172000 805306368  12932    V     17008    81296
589168652 1381451779 ba172000 1130496    664      M     132      6
Total:   -          -        1781030912 -        -     136104   81307

Т.е. из 4Гб. ОЗУ в системе еще остается "неоприходованными" порядка 2 Гб. с хвостиком, которые, естественно, хотелось бы отдать Информиксу в распоряжение...

Теория гласит, что память Информиксом расходуется на 3 "порции":
Resident portion
Virtual portion
Message portion

Нас интересуют как наиболее "памятеемкие" - первые две.

Вижу по тому же "onstat -g seg", что в процессе эксплуатации Информикс дополнительных сегментов себе не берет, поэтому увеличивать исходный размер "Virtual portion" с помощью параметра SHMVIRTSIZE как бы и смысла нет - все равно достаточно уже.

Т.е. остается отдать ОЗУ Информиксу под BUFFERS, которые находятся в Resident portion.
Опять же в документации видим, что параметр BUFFERS может принимать значения (для Linux 32) от 100 до 1,843,200 (т.е. увеличивать еще есть куда).
А также рекомендуется выставлять его в пределах 20-25 % от объема системного ОЗУ - сейчас как раз и имеем 20%: 400000 * 2Кб = 800Мб.

Но я задался целью отдать еще немного памяти Информиксу под буфера как бы то ни было, и никаких гвоздей! :)

Вот в этом месте и начинаются проблемы.

Собсно процесс:

1) прямое увеличение BUFFERS 500000 приводит к тому, что Информикс просто отказывается стартовать с ругательствами в логе:
Код: plaintext
1.
2.
3.
Segment locked: addr=0x50000000, size=1080778752
shmat: [ENOMEM][12]: out of available data space, check system MAXMEM
mt_shm_init: can't create virtual segment

Расследование содержимого исходников ядра показало, что MAXMEM определяется как-то хитро (с использованием переполнения long int, как мне подсказали матерые товарищи) и равняется и так 3,8Гб, поэтому беспокоиться нет причин (?)

ЗЫ. Кстати, прямое увеличение параметра SHMVIRTSIZE на треть (ради эксперимента) тоже приводит к нежеланию Информикса стартовать при вышеуказанных значениях остальных параметров.


2) после прочтения вот этого документа http://]www-1.ibm.com/support/docview.wss?uid=swg21215798# (похожая проблема) ради эксперимента удалось поднять SHMVIRTSIZE почти до 2 Гб. путем снижения параметра SHMBASE 0xB000000L.
Другими словами - Информиксу удалось отдать суммарно порядка 2,8Гб ОЗУ.
Правда, в логе при старте появляется ругательство вида (Информикс все равно стартует успешно, да и функционирует вроде тоже):

Код: plaintext
1.
2.
3.
4.
5.
6.
Contiguous shared memory segment allocation failed at 0xb000000.
Allocation retried at 0x42135000.
Check SHMBASE is consistent with the value in $INFORMIXDIR/etc/onconfig.std.
Consider using a different SHMBASE value in your ONCONFIG file.
If shared memory segments are not allocated in increasing address order,
memory block allocation performance may degrade.

А что же BUFFERS - спросите вы?
Хм, с SHMBASE 0xB000000L стартует при 500000 !!! но, увы, сразу же облом: при попытке выполнить команды onstat или onmode:

Код: plaintext
1.
2.
# onstat -g seg
onstat: Cannot attach to shared memory. errno = 22

Т.е. вышеописанное шаманство на необходимое увеличение BUFFERS все равно положительно не подействовало... :(

3) гугление и поиск на сайте IBM не дали подсказки к решению.

....

Чтобы не увеличивать и так получившийся огромным пост (пардон), скажу, что методом разнообразных махинаций с переменными LOCKS, SHMBASE, SHMVIRTSIZE, RESIDENT, SHMTOTAL добиться желаемого результата мне так и не удалось.

ВОПРОС: это вообще кому-то удавалось (имею ввиду ЗНАЧИТЕЛЬНОЕ увеличение BUFFERS по сравнению с "рабочими" 400 000) ?
(или может даже в FAQ уже прописали, но я был невнимателен?)
...
Рейтинг: 0 / 0
05.12.2006, 21:09
    #34178875
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
http://www.webservertalk.com/message1193171.html - описывает, что у вас происходит.

А что делать - читать machine notes . http://publib.boulder.ibm.com/epubs/html/25123410.html

У вас, как я понимаю, не UC8 (нет такой буквы !) а UD8. Для линукса
LOCATION OF SHARED MEMORY:
=========================
0x10000000L

Т.е. SHMBASE надо выставить в 0x10000000L

В таком вот аксепте
...
Рейтинг: 0 / 0
05.12.2006, 22:20
    #34178931
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Да, все бы так вопросы задавали.
Все рассказано, показано, исследовано и уже "в самом вопросе есть половина ответа" :)
Если подвести итог, то, как здесь уже не раз, кажется, отмечали, на 32-х разрядных платформах не удается заюзать Инофрмиксом более 2.7 Гб. Т.е. это почти максимум из возможных 4Гб, из которых 1Гб будет отдан ядру ОС.
...
Рейтинг: 0 / 0
06.12.2006, 08:50
    #34179304
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
IMHO: В средней системе увеличение буфера с 1Г до 2Г, даст прирост производительности 1%.



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
^  Hit Rating
|
|                                                                              *******************
|                                                          ***************************************
|                                         ********************************************************
|                             ********************************************************************
|                   ******************************************************************************
|             ************************************************************************************
|       ******************************************************************************************
|   **********************************************************************************************
| ************************************************************************************************
**************************************************************************************************
**************************************************************************************************
------------------------------------------------------------------------------------------------------>
                                                                                          Размер кэша
Люди, зачем вам это? Серебряная пуля зарыта в другом месте.
...
Рейтинг: 0 / 0
06.12.2006, 09:17
    #34179356
Andron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
to svat2

Посмотри вот это Максимальный размер памяти для версий UC (32bit)
как то у меня была похожая проблема - но в той конфигурации активно использовался виртуальный сегмент разделяемой памяти, поэтому проблема решалась именно для него. Впрочем для этой задачи никакой разницы для ОС относительно того что лежит в сегменте нету, так что можете попробовать решить ее для резидентного сегмента. Только имейте ввиду что кроме буферов в резидентном сегменте еще много чего лежит, так что дополнительные структуры тоже надо учитывать.
...
Рейтинг: 0 / 0
06.12.2006, 11:42
    #34179816
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2

Код: plaintext
1.
2.
# onstat -g seg
onstat: Cannot attach to shared memory. errno = 22

Т.е. вышеописанное шаманство на необходимое увеличение BUFFERS все равно положительно не подействовало... :(



Когдато давно я пробовал разбираться с подобным вопросом.
Положительного Результата тоже не получил, по причине недостатка времени.

В методику исследования хотел бы добавить изучение карты распределения
памяти процесса, которая в linux находится в /proc/${pid}/maps.

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

Для успешного запуска onstat ontape и прочих необходимо
смотреть их карты адресов.
Возможна ситуация когда по адресу пересекающемуся с новым
SHMBASE к моменту подключения разделяемой памяти
onstat уже использует как кучу.

з.ы. Хлопотное это дело однако.
...
Рейтинг: 0 / 0
06.12.2006, 11:59
    #34179905
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Да кстате на какомто оракловом сайте была методика
которя давала возможность играться с адресами загрузки
разделяемых библиотек.

К сожалению ссылка потеряна, адреса загрузки
библиотек изменять получилось только для oninit,
прочие утилиты были неработоспособны.
...
Рейтинг: 0 / 0
06.12.2006, 13:08
    #34180228
Ilya Kulagin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
onstat-Да кстате на какомто оракловом сайте была методика
которя давала возможность играться с адресами загрузки
разделяемых библиотек

Machine notes, цитата:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
The ONCONFIG setting SHMBASE should be set to the following:
        SHMBASE 0x10000000L
.....
- Some Linux distributions (e.g. SuSE Linux 8.1, 8.2, 9, SLES 8 and 
      Redhat Linux Advanced Server 2.1) provide a way to dynamically change 
      the default start address for shared libraries on a per-process basis. 
      This feature is available if the file /proc/$$/mapped_base exists.

      To change the start address for shared libraries of the oninit processes,
      the new start address needs to be specified by the user root in the shell
      from where oninit is started. For example, the following sets the start
      address of shared libraries to 0xB0000000L:

      $ echo $$
      29712
      $ su root
      Password:
      # echo 0xB0000000 > /proc/29712/mapped_base
      # exit
      $ oninit

      Assuming the ONCONFIG setting SHMBASE is 0x10000000L, this gives 2.5 GB
      of contiguous address space available for the database server.

Разумеется, вместо su root и пр. надо, по идее, использовать sudo и сразу пихать в стартаповый скрипт, а то при рестарте сервера вспоминать где лежит нужная бумажка -- я бы не взялся. У меня сервер чаще раза в год не рестартует...
...
Рейтинг: 0 / 0
06.12.2006, 20:36
    #34181616
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Выбегалло http://www.webservertalk.com/message1193171.html - описывает, что у вас происходит.

А что делать - читать machine notes . http://publib.boulder.ibm.com/epubs/html/25123410.html

У вас, как я понимаю, не UC8 (нет такой буквы !) а UD8. Для линукса
LOCATION OF SHARED MEMORY:
=========================
0x10000000L

Т.е. SHMBASE надо выставить в 0x10000000L

В таком вот аксепте

Благодарю за ответ, почитал ссылки, первая - полезная, в принципе поясняет то, что происходит, да. А вот насчет " SHMBASE 0x10000000L " имею что сказать.

1) Ранее, когда настраивался этот сервер другим админом (я в те времена вообще смотрел на Информикс, как на черный ящик) именно так и было выставлено. Мне тоже так объяснялось - мол, смотри в этот файлик и по нему делай все. НО. При попытке увеличивать параметры LOCKS, BUFFERS, SHMVIRTSIZE уже на значениях, которые значительно меньше описанных мною сервер не желал стартовать, а если и работал, то глючила (не выполнялась) команда oncheck.
ТОлько что проверил - действительно, если ставлю SHMBASE 0x10000000L - не стартует.
(при
LOCKS 10000
BUFFERS 400000
SHMBASE 0x10000000L
SHMVIRTSIZE 786432
)

2) К числу 0x50000000L пришли эмпирически - тот админ составил скрипт, который в цикле перебирал с неким шагом значения BUFFERS, SHMVIRTSIZE, SHMBASE. И пытался запускать IDS и проверять корректность работы утилиты oncheck. Среди успешных результатов был выбран самый "максимально-оптимальный" по кол-ву занимаемой буфферами памяти. Он пришелся на SHMBASE 0x50000000L и с тех пор не менялся.

ЗЫ. ну вот теперь я "дорос" до уровня некого понимания что к чему и решил самолично еще поискать какой-нибудь другой способ решения проблемы. А вдрух? :)
...
Рейтинг: 0 / 0
06.12.2006, 20:45
    #34181623
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Ilya Kulagin
Код: plaintext
1.
2.
3.
.....
- Some Linux distributions (e.g. SuSE Linux 8.1, 8.2, 9, SLES 8 and 
....


Увы, Debian 3.0 к их числу не принадлежит...
...
Рейтинг: 0 / 0
06.12.2006, 21:00
    #34181638
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Журавлев ДенисIMHO: В средней системе увеличение буфера с 1Г до 2Г, даст прирост производительности 1%.
Код: plaintext
1.
(график поскипан)
Люди, зачем вам это? Серебряная пуля зарыта в другом месте.

:)

может быть и так происходит в некоторых случаях, но вот документ на сайте IBM говорит следующее (цитирую):

BUFFERS ... the number of buffers that the database server requires depends on the applications. For example, if the database server accesses 15 percent of the application data 90 percent of the time, you need to allocate enough buffers to hold that 15 percent . Increasing the number of buffers can improve system performance.

не правда ли - тяжело не согласиться?
На каком проценте "application data" у меня проходит черта "90% of the time" (разумеется, надо было бы дважды окавычить, т.к. цифры +/- лапоть на север, сдается мне) - я не знаю как определить. Следовательно, узнать, умещаются ли эти "15%" в мои 800Мб буферов, - тоже неизвестно... Поэтому мне показалось более простым выходом просто увеличить BUFFERS и посмотреть - насколько это улучшит ситуацию с cache hits.
...
Рейтинг: 0 / 0
06.12.2006, 21:12
    #34181645
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Журавлев ДенисIMHO: В средней системе увеличение буфера с 1Г до 2Г, даст прирост производительности 1%.

Люди, зачем вам это? Серебряная пуля зарыта в другом месте.


В догонку:
Представим ситуацию, что есть BUFFERS 800Mb и 2 неоптимизированных запроса, каждый из которых вызывает seqscan по 800Мб данных. И эти данные не пересекаются между ними.
В результате, при многократном поочередном выполнении запросов у нас IDS будет загружать с диска в буффера то одну 800Мб-айтную порцию данных (для запроса 1), то другую (для запроса 2). И, как я понимаю (может ошибаюсь - поправьте), cache hit будет практически нулевой.
А вот если бы у сервера был в таком случае BUFFERS 1600Mb (умещающий ВСЕ данные обоих запросов), то cache hit по идее резко бы прыгнул почти до максимального. ИМХО, при реальном объеме данных в БД порядка 50 Гб. и несколькх таблицах по 2Гб и более - ситуация вполне вероятная...
ЗЫ. это я оправдываю поиски пули в этом месте :)
...
Рейтинг: 0 / 0
06.12.2006, 21:25
    #34181662
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
... и последнее, удивленно-риторическое:

Если известно, что на 32-битной платформе даже теоретически IDS не может взять под свои нужды суммарно более 2,75Гб, то какой смысл в описании параметра BUFFERS:
range of values
For 32-bit platform on UNIX:
with page size equal to 2048 bytes:
100 through 1,843,200 buffers


т.е. зачем делать верхний предел параметра 3.6 Гб, если его все равно ни при каких раскладах достичь не удастся?!!

ЗЫ. в суд на них подать что ли... за введение в заблуждение с корыстной целью? Одно слово - мошенничество! :)
...
Рейтинг: 0 / 0
07.12.2006, 06:36
    #34181962
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2
ТОлько что проверил - действительно, если ставлю SHMBASE 0x10000000L - не стартует.


Ошибку в студию.
...
Рейтинг: 0 / 0
07.12.2006, 08:38
    #34182063
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2может быть и так происходит в некоторых случаях, но вот документ на сайте IBM говорит следующее (цитирую):
Если посмотреть на вывод onstat -p станет понятно на каком участке кривой вы находитесь, даже станет понятно можно ли уменьшить буфер. Понятно что % попадания можно искусственно накрутить к 100%, но в любом случае это дает некоторую оценку, и если он 99.96%, то пыжится уже нет смысла скажем в 80% случаев, т.е. как когда-то советовали в ucdi стоит выдернуть память, продать и купить пива -- пользы больше.
...
Рейтинг: 0 / 0
07.12.2006, 10:59
    #34182449
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2Следовательно, узнать, умещаются ли эти "15%" в мои 800Мб буферов, - тоже неизвестно... Поэтому мне показалось более простым выходом просто увеличить BUFFERS и посмотреть - насколько это улучшит ситуацию с cache hits.я знаю способ проще - уменьшить BUFFERS и посмотреть, насколько это ухудшит ситуацию с cache hits
у вас сейчас сколько процентов?
...
Рейтинг: 0 / 0
07.12.2006, 15:03
    #34183555
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Выбегалло svat2
ТОлько что проверил - действительно, если ставлю SHMBASE 0x10000000L - не стартует.


Ошибку в студию.

Только что перепроверил. Сначала нормальный старт (пардон, что тестовый сервер щас в Recovery только, но эффекта это не меняет) с параметрами:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LOCKS           1000000         # Maximum number of locks
BUFFERS         400000          # Maximum number of shared buffers
NUMAIOVPS       4               # Number of IO vps
###SHMBASE         0x10000000L     # Shared memory base address
SHMBASE         0x50000000L
SHMVIRTSIZE     786432          # initial virtual shared memory segment size
SHMADD          32768           # Size of new shared memory segments (Kbytes)
SHMTOTAL        0               # Total shared memory (Kbytes). 0=>unlimited

Результат:
# onstat -

Код: plaintext
1.
IBM Informix Dynamic Server Version 7.31.UD8     -- Fast Recovery (CKPT REQ) -- Up 00:00:19 -- 1686456 Kbytes
Blocked:CKPT

Теперь меняю только параметр
Код: plaintext
SHMBASE         0x10000000L 

Перезапускаю (oninit -rv), результат:
на экране
Код: plaintext
1.
2.
...
Verbose output complete: mode = 2
(т.е. "как бы запустился")

Код: plaintext
1.
2.
# onstat -
onstat: Cannot attach to shared memory. errno = 22

пытаюсь остановить IDS:

Код: plaintext
1.
2.
3.
# onmode -kuy
onmode: Cannot attach to shared memory. errno = 22
13:43:29  mt_shm_remove: WARNING: may not have removed all/correct segments

проверяю, выгрузились ли процессы:
Код: plaintext
1.
# ps ax | grep oninit | grep -v grep | wc -l
    13

Увы, попытка безуспешна, прибиваю насильно:
Код: plaintext
1.
# ps ax | grep oninit | grep -v grep | wc -l
      0

Опускаю значение BUFFERS до 300000 и последовательно с некоторым шагом подымаю в поисках верхнего предела. Получается, что при значении SHMBASE 0x10000000L максимально возможное "рабочее" значение BUFFERS ~346000. При 347000 уже получаем вышеописанную ошибку.
...
Рейтинг: 0 / 0
07.12.2006, 15:13
    #34183617
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Журавлев Денис svat2может быть и так происходит в некоторых случаях, но вот документ на сайте IBM говорит следующее (цитирую):
Если посмотреть на вывод onstat -p станет понятно на каком участке кривой вы находитесь, даже станет понятно можно ли уменьшить буфер. (skipped)

У меня еженощно эта информация регистрируется и потом обнуляются счетчики, поэтому могу
продемонстрировать эти значения к примеру за последние 4 дня:

3.12.2006
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 29300503   125120233   2095036169   98 . 60     408353     3960472    4942622    91 . 74   

isamtot  open     start    read     write    rewrite  delete   commit   rollbk
 1460325316   8380179    113478067   1123045961   3312896    326938     293149     215500     3 

gp_read  gp_write gp_rewrt gp_del   gp_alloc gp_free  gp_curs 
 0          0          0          0          0          0          0        

ovlock   ovuserthread ovbuff   usercpu  syscpu   numckpts flushes 
 0          0              0          24242 . 51   2201 . 30    261        522      

bufwaits lokwaits lockreqs deadlks  dltouts  ckpwaits compress seqscans
 463355     7          287156095   0          0          46         57775      210567   

ixda-RA  idx-RA   da-RA    RA-pgsused lchwaits
 1351847    985252     4754860    7082660      168035   

4.12.2006
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 70037344   111061684   3196323229   97 . 81     2377664    13494185   28898323   91 . 77   

isamtot  open     start    read     write    rewrite  delete   commit   rollbk
 961704074   31120394   574609370   3567736956   36279471   3301135    509245     708620     64 

gp_read  gp_write gp_rewrt gp_del   gp_alloc gp_free  gp_curs 
 0          0          0          0          0          0          0        

ovlock   ovuserthread ovbuff   usercpu  syscpu   numckpts flushes 
 0          0              0          66079 . 66   9699 . 75    259        518      

bufwaits lokwaits lockreqs deadlks  dltouts  ckpwaits compress seqscans
 6581636    37         1515484110   0          0          644        367237     1337889  

ixda-RA  idx-RA   da-RA    RA-pgsused lchwaits
 20985470   3588401    30179206   54622498     10446893 

5.12.2006
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 30372396   46718262   1904465905   98 . 41     1147392    6431489    15048224   92 . 38   

isamtot  open     start    read     write    rewrite  delete   commit   rollbk
 898271231   16316571   278202030   22804973   18371615   1629329    131954     372047     35 

gp_read  gp_write gp_rewrt gp_del   gp_alloc gp_free  gp_curs 
 0          0          0          0          0          0          0        

ovlock   ovuserthread ovbuff   usercpu  syscpu   numckpts flushes 
 0          0              0          33275 . 44   3900 . 27    139        278      

bufwaits lokwaits lockreqs deadlks  dltouts  ckpwaits compress seqscans
 2443164    12         691465057   0          0          323        273783     680087   

ixda-RA  idx-RA   da-RA    RA-pgsused lchwaits
 11167455   1349313    9235820    21685543     6265865  

6.12.2006
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
 96429577   128778130   3401730892   97 . 17     2212582    11930405   32967329   93 . 29   

isamtot  open     start    read     write    rewrite  delete   commit   rollbk
 687157222   31961011   744290018   2780568509   44538015   2630862    426813     815147     86 

gp_read  gp_write gp_rewrt gp_del   gp_alloc gp_free  gp_curs 
 0          0          0          0          0          0          0        

ovlock   ovuserthread ovbuff   usercpu  syscpu   numckpts flushes 
 0          0              0          75227 . 92   9641 . 80    257        514      

bufwaits lokwaits lockreqs deadlks  dltouts  ckpwaits compress seqscans
 7230463    48         2300237746   0          0          713        544160     1428392  

ixda-RA  idx-RA   da-RA    RA-pgsused lchwaits
 23750316   4050540    50875286   78548319     14669167 
...
Рейтинг: 0 / 0
07.12.2006, 15:28
    #34183670
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat26.12.2006
Код: plaintext
1.
2.
%cached %cached
97.17   93.29  
Да, можно увеличивать буфер, наверно это имеет смысл.

svat2
Код: plaintext
1.
bufwaits seqscans
7230463  1428392
Но если это действительно сексканы больших таблиц (TBLSTATS = 1, и смотреть или SMI или onstat -g ppf) , то надо искать виноватых.
...
Рейтинг: 0 / 0
07.12.2006, 16:22
    #34183889
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Журавлев Денис svat26.12.2006
Код: plaintext
1.
2.
%cached %cached
97.17   93.29  
Да, можно увеличивать буфер, наверно это имеет смысл.


Можно - да некак, вот в чем беда! :) Почему и дискуссию тут развел...

Журавлев Денис svat2
Код: plaintext
1.
bufwaits seqscans
7230463  1428392
Но если это действительно сексканы больших таблиц (TBLSTATS = 1, и смотреть или SMI или onstat -g ppf) , то надо искать виноватых.

А где можно поподробнее прочесть о методике определения, "куды смотреть"?
ЗЫ. сейчас TBLSTATS = 0 (для повышения производительности), придется включать...
...
Рейтинг: 0 / 0
07.12.2006, 19:29
    #34184476
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2 Выбегалло svat2
ТОлько что проверил - действительно, если ставлю SHMBASE 0x10000000L - не стартует.


Ошибку в студию.


Опускаю значение BUFFERS до 300000 и последовательно с некоторым шагом подымаю в поисках верхнего предела. Получается, что при значении SHMBASE 0x10000000L максимально возможное "рабочее" значение BUFFERS ~346000. При 347000 уже получаем вышеописанную ошибку.

Стартуйте информикс с ключем -v (oninit -v) , ВЕСЬ вывод на экран скопируйте сюда.
...
Рейтинг: 0 / 0
07.12.2006, 19:49
    #34184514
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Выбегалло
Стартуйте информикс с ключем -v (oninit -v) , ВЕСЬ вывод на экран скопируйте сюда.

Нормальный старт:
BUFFERS 330000
SHMBASE 0x10000000L

#oninit -v > /tmp/oninit.ok 2>&1

НЕнормальный старт:
BUFFERS 350000
SHMBASE 0x10000000L

#oninit -v > /tmp/oninit.bad 2>&1

# diff /tmp/oninit.bad /tmp/oninit.ok
Код: plaintext
1.
2.
3.
4.
5.
6.
 8 ,9c8, 9 
< Creating resident pool  94516  kbytes...succeeded
< Creating buffer pool  700002  kbytes...succeeded
---
> Creating resident pool  92796  kbytes...succeeded
> Creating buffer pool  660002  kbytes...succeeded
# cat /tmp/oninit.bad
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Checking group membership to determine server run modesucceeded
Reading configuration file '/usr/local/informix/etc/onconfig.ol_psi2'...succeeded
Creating /INFORMIXTMP/.infxdirs ... succeeded
Creating infos file "/usr/local/informix/etc/.infos.ol_psi2" ... "/usr/local/informix/etc/.conf.ol_psi2" ... succeeded
Writing to infos file ... succeeded
Checking config parameters...succeeded
Allocating and attaching to shared memory...succeeded
Creating resident pool  94516  kbytes...succeeded
Creating buffer pool  700002  kbytes...succeeded
Initializing rhead structure...succeeded
Initializing ASF ...succeeded
Initializing Dictionary Cache and Stored Procedure Cache...succeeded
Bringing up ADM VP...succeeded
Creating VP classes...succeeded
Onlining  3  additional cpu vps...succeeded
Onlining  4  IO vps...succeeded
Forking main_loop thread...succeeded
Initialzing DR structures...succeeded
Forking  1  'ipcshm' listener threads...succeeded
Forking  1  'soctcp' listener threads...succeeded
Starting tracing...succeeded
Initializing  40  flushers...succeeded
Initializing log/checkpoint information...succeeded
Opening primary chunks...succeeded
Opening mirror chunks...succeeded
Initializing dbspaces...succeeded
Validating chunks...succeeded
Initialize Async Log Flusher...succeeded
Forking btree cleaner...succeeded
Initializing DBSPACETEMP list
Checking database partition index...succeeded
Checking location of physical log...succeeded
Initializing dataskip structure...succeeded
Checking for temporary tables to drop
Forking onmode_mon thread...succeeded
Verbose output complete: mode =  5 

PS. не вижу криминала...
...
Рейтинг: 0 / 0
07.12.2006, 20:16
    #34184569
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Это, похоже, потому что его нет. Сервер стартовал нормально, и скорей всего программы использующие TCP коннекшн будут нормально работать. Проблема с onstat (и другими утилитами, работающими через память), и заключается она в том, что onstat не может приконнектиться к shared memory.

Но вы пытаетесь найти ответ на неверный вопрос - почему не аттачатся onstat-ы и пр. утилиты. Возможно, из-за "Contiguous shared memory segment allocation failed at 0xb000000.
Allocation retried at 0x42135000." - они думают, что надо аттачиться по адресу из config файла, а адрес был изменен.

Вас интересует как добавить буферов ? Вот и добавьте, установите SHMBASE в 0x10000000L, BUFFERS в 500000 и покажите нам вывод oninit -v


В таком вот аксепте
...
Рейтинг: 0 / 0
08.12.2006, 10:55
    #34185423
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
svat2А где можно поподробнее прочесть о методике определения, "куды смотреть"?В документации.

svat2ЗЫ. сейчас TBLSTATS = 0 (для повышения производительности), придется включать...Никто не знает снижает-ли TBLSTATS=1 производительность, а если снижает то насколько, на 0.000001%?
...
Рейтинг: 0 / 0
08.12.2006, 14:30
    #34186388
svat2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BUFFERS > 400000 - возможно? (Linux 32)
Журавлев Денис svat2А где можно поподробнее прочесть о методике определения, "куды смотреть"?
В документации.

Спасибо.

Журавлев ДенисНикто не знает снижает-ли TBLSTATS=1 производительность, а если снижает то насколько, на 0.000001%?

мне пару раз попадались среди нагугленного мнения, что снижает порядка 15%.
ТОчно сейчас не скажу, где попадалось, но вот здесь http://cz.org.ua/cms/content/view/16/40/ , к примеру, тоже.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / BUFFERS > 400000 - возможно? (Linux 32) / 25 сообщений из 35, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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