Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
Windows 2003 server (x86_32)
до 16 гиг оперативы 2 процессора Xeon
Oracle 9.2.0.7
dedicated

работают 100 сессий

сначала работал с 8 Гб оперативы
6,5 Buffer
1,5 PGA
0,1 Shared

ситуация такая
через некоторое количество времени (порядка 1 ч) некоторые сессии вылетают с ошибкой
о невозможности выделить памяти PGA
на графике получалось, что используемая PGA память нарастает с течением времени
(не линейно, но и не выбрасами, медленно но верно добирается до отметки 1200-1300) после
чего происходит ошибка

добавил памяти до 14 гиг
6,5 Buffer
3 PGA
0,1 Shared

запустил тестироование
моментально PGA стало 1100 и буквально через несколько минут добарлось до 1500
после чего сессии начали отваливаться

Прочитал подробно в документации о PGA сложилось впечатление что сервак
ошибся с возможностями и слишком интенсивно начал раздавать память
вероятно изменились планы запроса (в сторону более частого исопльзования HASH)
а в некоторых запросах (из менее 3%) большое количество строк результатов запроса
порядка 100000-200000. учитывая среднюю длинну строки ответа (порядка 700 байт)
получается что объем для HASH необходим большой

степень отжирания памяти зависит от запросов и основное потребеление занимают не более 5%
запросов остальные потребляют совсем мало памяти


распределение примерно такое
1 сессия 200М
2 сессия 150М
3 сессия 100М
4 сессия 50М
5 сессия 20М
6-25 сессии по 10М


помогите советом
может есть параметр который будет указывать серверу, что не стоит транжирить память на право и налево
19 янв 07, 13:06    [3666481]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
evostr
Member

Откуда: Екатеринбург
Сообщений: 1278
NightGhost
помогите советом
может есть параметр который будет указывать серверу, что не стоит транжирить память на право и налево

pga_aggregate_target, уменьшите его, сервер будет строит планы, стараясь не вылезти за пределы его значения.

//offtop
NightGhost

6,5 Buffer
1,5 PGA
0,1 Shared

Помнится, вам советовали уменьшить буффер, не стали пробовать или не помогло?
Чем закончилась проблема с latches?
19 янв 07, 13:18    [3666587]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
evostr
NightGhost
помогите советом
может есть параметр который будет указывать серверу, что не стоит транжирить память на право и налево

pga_aggregate_target, уменьшите его, сервер будет строит планы, стараясь не вылезти за пределы его значения.

//offtop
NightGhost

6,5 Buffer
1,5 PGA
0,1 Shared

Помнится, вам советовали уменьшить буффер, не стали пробовать или не помогло?
Чем закончилась проблема с latches?


выполнил тестирование
с увеличением размера буфера
175000
400000
600000
800000
блоков данных по 8192 байта

статистика сказала что увеличение буфера блоков приводит к увеличению производительности
защелки они конечно не отпали и периодически мигают в Spotlight но я уже перешел на STATSPACK.
19 янв 07, 13:29    [3666696]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
evostr
Member

Откуда: Екатеринбург
Сообщений: 1278
evostr
буффер

Блин, видно пятница действует, уже дословно по буквам с английского перевожу :)
19 янв 07, 13:38    [3666790]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
evostr
evostr
буффер

Блин, видно пятница действует, уже дословно по буквам с английского перевожу :)


сразу видно грамотный человек, сразу проблему решил
19 янв 07, 13:39    [3666804]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
уменьшил размер PGA до 700М
10 минут полет нормальный
Максимальное количество памяти 1500
выделенное количество памяти max = 780
используемое количество памяти max = 670

даже возникает вопрос!
если выделенное количество памяти превышает порог это ничего?
или может это порог так сказать гибкий, плюс минус километр
19 янв 07, 14:00    [3667039]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
v$pga_target_advice юзать не пробовал?
19 янв 07, 14:03    [3667068]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
tru55
v$pga_target_advice юзать не пробовал?


PGA_TARGET_FOR_ESTIMATE	PGA_TARGET_FACTOR	ADVICE_STATUS	BYTES_PROCESSED	ESTD_EXTRA_BYTES_RW	ESTD_PGA_CACHE_HIT_PERCENTAGE	ESTD_OVERALLOC_COUNT
91750400	0,125	ON	1283528704	0	100	0
183500800	0,25	ON	1283528704	0	100	0
367001600	0,5	ON	1283528704	0	100	0
550502400	0,75	ON	1283528704	0	100	0
734003200	1	ON	1283528704	0	100	0
880803840	1,2	ON	1283528704	0	100	0
1027603456	1,4	ON	1283528704	0	100	0
1174405120	1,6	ON	1283528704	0	100	0
1321205760	1,8	ON	1283528704	0	100	0
1468006400	2	ON	1283528704	0	100	0
2202009600	3	ON	1283528704	0	100	0
2936012800	4	ON	1283528704	0	100	0
4404019200	6	ON	1283528704	0	100	0
5872025600	8	ON	1283528704	0	100	0


подскажите если можно что то улучшить?
19 янв 07, 14:10    [3667133]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
кстати производительность системы (среднее время выполнения запросов)
от уменьшения количества памяти упала

вероятно проблемма была в том что оракл вылазил за память выделенную ОС ом
и поэтому возникали ошибки

на след неделе постараюсь перейти на win x64 c Oracle 10g R2
вероятно тогда память PGA можно будет поднять, возможно производительность тоже возрастет
19 янв 07, 14:23    [3667216]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
radigor
Member

Откуда:
Сообщений: 46
Windows 2003 server (x86_32)
до 16 гиг оперативы

- а как дело обстоит в boot.ini (/3GB and /PAE) ?
можно посмотреть Note:373602.1, если что ...
19 янв 07, 14:36    [3667318]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
radigor
Windows 2003 server (x86_32)
до 16 гиг оперативы

- а как дело обстоит в boot.ini (/3GB and /PAE) ?
можно посмотреть Note:373602.1, если что ...


в boot.ini
Ессно стоит /PAE /3GB
подругому пока не получается
19 янв 07, 15:20    [3667645]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
El gato 40
Member

Откуда:
Сообщений: 50
PGA лучше не просто поднимать, а ставить в нужное значение

--===========================================================================
-- The following are standard tuning goal:
-- workarea execution - optimal >= 90%
-- workarea execution - multiplass = 0%
-- Most of the workarea executions are executed in optimal mode to reduce workarea execution - onepass.
-- If VALUE of workarea execution - multiplass is not 0% or VALUE of workarea executions - onepass 
-- exceeds 10%, you need to increase PGA_AGGREGATE_TARGET. If VALUE of workarea executions - optimal
-- is 100%, you may reduce PGA_AGGREGATE_TARGET.
--===========================================================================
select name, value,
 100 * (value/
   decode(
       (select sum(value) from v$sysstat where name like 'workarea exec%'),
        0, null,
        (select sum(value) from v$sysstat where name like 'workarea exec%')
       )) pct
from v$sysstat
where name like 'workarea exec%'
19 янв 07, 16:41    [3668305]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
Спасибо большое обязательно попробую
21 янв 07, 02:04    [3671116]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
NightGhost
Member

Откуда:
Сообщений: 629
El gato 40
PGA лучше не просто поднимать, а ставить в нужное значение

--===========================================================================
-- The following are standard tuning goal:
-- workarea execution - optimal >= 90%
-- workarea execution - multiplass = 0%
-- Most of the workarea executions are executed in optimal mode to reduce workarea execution - onepass.
-- If VALUE of workarea execution - multiplass is not 0% or VALUE of workarea executions - onepass 
-- exceeds 10%, you need to increase PGA_AGGREGATE_TARGET. If VALUE of workarea executions - optimal
-- is 100%, you may reduce PGA_AGGREGATE_TARGET.
--===========================================================================
select name, value,
 100 * (value/
   decode(
       (select sum(value) from v$sysstat where name like 'workarea exec%'),
        0, null,
        (select sum(value) from v$sysstat where name like 'workarea exec%')
       )) pct
from v$sysstat
where name like 'workarea exec%'


workarea executions - optimal   	198518                                	99,37377671210247836250869754566524335
workarea executions - onepass   	1209                                  	0,605199004850602445824927791599297188
workarea executions - multipass 	42                                    	0,021024283046919191666374662735459455

проблемма с вылетанием сессий по причине нехватки памяти в PGA не исправилась
с 700Мб до 1000 добавил
всеравно из 100 запущенных сессий примерно 80 остаются в конце первого часа тестирования
22 янв 07, 15:40    [3675761]     Ответить | Цитировать Сообщить модератору
 Re: PGA, ошибка выделения памяти  [new]
DВА
Member

Откуда:
Сообщений: 5439

 select (select value/1024/1024
    from sys.v$parameter_hidden
    where name = 'pga_aggregate_target' ) "pga_agg_tgt",
    (select value*0.05/1024/1024
    from sys.v$parameter_hidden
    where name = 'pga_aggregate_target' ) "5% pga agg",
    (select value/1024/1024
   from sys.v$parameter_hidden
   where name = '_pga_max_size') "pga_max_size",
   (select value/1024
   from sys.v$parameter_hidden
   where name = '_smm_max_size') "smm_max_size"
   from dual;


Кайтовский скрипт, показывает сколько памяти может быть выделено процессу при workarea_size_policy =auto.
При желании каждой 100 из сессии получить "свою долю" , оракл будет требовать от операционной системы памяти 100*min(5% pga agg,pga_max_size)
Если такое положение дел не устраивает - возвращаетесь к ручному распределению памяти.
22 янв 07, 16:52    [3676310]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить