konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Witam,

Mam problem z wysoką rywalizacją o zatrzaski - library cache i library cache pin (potomne: kglpnc and kglupc).

Zgłosiłem to na ORACLE SUPPORT, ale powiedzieli mi żebym zmniejszył session_cached_cursors do 300 i zwiększył shared_pool_size na 1248M.

Oczywiście to nie pomogło ;). Wykorzystanie session_cached_cursors mam teraz na 100%.

Aktualnie rozważam następujące rozwiązania:

- wykorzystać DBMS_SHARED_POOL.keep , a więc "wrzucić często wykorzystywane paczki" do bufora bibliotecznego na stałe, aby nigdy nie osiągały statusu "aged out"

http://docstore.mik.ua/orelly/oracle/bipack/ch12_02.htm

- zwiększyć liczbę zatrzasków z domyślnej (chyba około liczby procków/corów) na większą.

- Ustawić "HPUX_SCHED_NOAGE" zgodnie z dokumentacją poniższą:

http://download-west.oracle.com/docs/html/A97297_01/ap...

# Enabling SCHED_NOAGE for Oracle9i using
# setprivgrp dba RTSCHED RTPRIO
create the /etc/privgroup add "dba RTSCHED RTPRIO"

Dodatkowo "_spin_count" zwiększyłem na 30000


Czy ktoś probówał wykonywać podobne manewry ? Chciałbym się dowiedzieć jakie macie doświadczenia z takimi modyfikacjami, bo trochę strach testować na produkcji, a tam mam prawdziwe obciążenie i prawdziwe kłopoty ;).

konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Pawel Nowak:
Witam,
Mam problem z wysoką rywalizacją o zatrzaski - library cache i library cache pin (potomne: kglpnc and kglupc).


CURSOR_SPACE_FOR_TIME jest na true ?

konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Krzysztof P.:
Pawel Nowak:
Witam,
Mam problem z wysoką rywalizacją o zatrzaski - library cache i library cache pin (potomne: kglpnc and kglupc).


CURSOR_SPACE_FOR_TIME jest na true ?

Ten parametr jest ustawiony na FALSE :

SQL> show parameter CURSOR_SPACE_FOR_TIME

NAME TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
cursor_space_for_time boolean
FALSE

Pytałem o ten parametr ORACLE SUPP i NAPISALI:

"Setting of cursor_space_for_time is safe if you have more shared pool size configured as that would consume high share
d pool because the cursors would never get aged out of the shared pool until oth
erwise the shared pool is flushed."

Musiałbym mieć pewność, że wszystko mi się zmieści w buforze, a takiej pewności nie mam :) Da się jakoś policzyć ile zajmują aktualnie obiekty w buforze i miałem już chyba skrypt ale
ORACLE SUPPORT NAPISAŁ:

It is better to increase the shared pool.
shared_pool_size=1248M

Please reduce the session_cached_cursors to 300 as setting of 1024 is very high
and that would cause fragmentation in shared pool leading to 4031.

session_cached_cursors=300

Nawet gdyby mi się wszystko na jakiś czas zmieściło to pewnie
musiałbym ciągle monitorować i pilnować czy jest OK, aby mi nie sypnęło ORA-4031 co się podobno zdarza przy takim ustawieniu ...
.... co nie oznacza, że korci mnie strasznie, aby sprawdzić jak to ustawienie (CURSOR_SPACE_FOR_TIME = TRUE) działa :)

Ma ktoś tak ustawione na produkcji ?Pawel Nowak edytował(a) ten post dnia 12.01.09 o godzinie 13:45
Jakub Wartak

Jakub Wartak Szaman
UNIXa/Linux/Oracle,
IBM CATE

Temat: TUNING BAZ NA HP-UX 11.11

select s.sid, kglpnmod "mode", kglpnreq "req"
from x$kglpn p, v$session s
where p.kglpnuse=s.saddr and kglpnhdl='to_co_masz_dla_p1raw_od_library_cache_pin';

czyli praktycznie te:

select sw.p1raw, sw.* from v$session_wait sw where state='WAITING' and event like '%library cache pin%';

Mi sie wydaje ze mozesz po prostu hard parsujesz (brak prepared statements) albo np. cos czesto trafia w tabele ktorej nie ma(czyli tez hardparse) - czyli daj jeszcze nam to:
select stat_name, sum(value) from v$sess_time_model where stat_name like '%parse%' group by stat_name;

konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Mi sie wydaje ze mozesz po prostu hard parsujesz


Niestety, moja baza jest posadzona na silniku ORACLE 92 więc polecenie ostatnie nie zadziała, ale hard parsowań są tylko śladowe ilości co pokazuje STATSPACK.

Co do namierzenia sesji powiązanej ze zdarzeniem "library cache pin" to również się nie pójdzie na oracle 9 . Przerobiłem ten skrypt, ale ciężko coś wyłapać. Spróbuję jeszcze zrobić skrypt z pętlą, może wtedy coś wyłapię.

konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Czy zdarzyło się komuś wykonać tą część procedury instalacji ORACLE9 na HP-UX ? Od razu powiem, że mi się nie zdarzyło, bo migrowałem/upgrade-owalem.

************************************************
(Zaczerpnięte z dokumentacji ORACLE :) )

http://download.oracle.com/docs/html/A90351_02/toc.htm
************************************************

A new HP scheduling policy called SCHED_NOAGE enhances Oracle9i's performance by scheduling Oracle processes so that they do not increase or decrease in priority, or become preempted.

The RTSCHED and RTPRIO privileges grant Oracle the ability to change its process scheduling policy to SCHED_NOAGE and also tell Oracle what priority level it should use when setting the policy. The MLOCK privilege grants Oracle the ability to execute asynch I/Os through the HP asynch driver. Without this privilege, Oracle9i generates trace files with the following error message: "Ioctl ASYNCH_CONFIG error, errno = 1".

As root, do the following:

If it does not already exist, create the /etc/privgroup file. Add the following line to the file:

dba MLOCK RTSCHED RTPRIO

Use the following command syntax to assign these privileges:

#setpriv groupname privileges

In the preceding command, groupname is the name of the group that receives the privileges, and privileges are the privileges that are granted to the group.

For example, to set the privileges for the OSDBA group, which is typically named dba, enter the following command:

#setprivgrp dba MLOCK RTSCHED RTPRIO

************************************************

Dodatkowo, coś czuję, że jak tego nie ustawię to zabawa z _spin_count nie ma sensu.

Chętnie bym to sprawdził, ale nie wiem jak aplikacja terminalowa mi się zachowa, która czasami może się pojawić na serwerze z bazami (np przełączenie paczki klastrowej). Na testach może być dobrze, a przy dużym obciążeniu mogą się pojawić problemy.

Jakieś doświadczenia ma ktoś w tym kierunku ?

PS. Zgłosiłem podobne zapytanie na METALINK, ale coś tracę powoli w nich wiarę ;)
Jakub Wartak

Jakub Wartak Szaman
UNIXa/Linux/Oracle,
IBM CATE

Temat: TUNING BAZ NA HP-UX 11.11

Co do namierzenia sesji powiązanej ze zdarzeniem "library cache pin" to również się nie pójdzie na oracle 9 . Przerobiłem ten skrypt, ale ciężko coś wyłapać. Spróbuję jeszcze zrobić skrypt z pętlą, może wtedy coś wyłapię.

Hm, to mowisz ze masz problem z library cache pin ale go nie widac?

Sprawdz jeszcze sobie ORDER BY loads z V$SQLAREA (czy masz jakies wieksze ilosci dla konkretnego zapytania).

konto usunięte

Temat: TUNING BAZ NA HP-UX 11.11

Zgodnie z kolejną już rekomendacją ORACLE SUPPORT przymierzam się do ustawienia CURSOR_SPACE_FOR_TIME = TURE.

Czy ktoś już sprawdził takie ustawienie na produkcji?
Jeżeli tak to podzielcie się doświadczeniem - please.

Czy jak się pojawi błąd ORA-4031 to czy baza przetrwa jakiś okres zanim zostanie zwiększony SHARED POOL czy od razu nastąpi tzw. "totalny crash systemu" ? ;)

Co tu dużo gadać, trochę się obawiam.

No i z tego co wyczytałem, to "library cache pin" oznacza bardzo intensywne wykorzystywanie bazy przez aplikacje, a że mam 4-ry podłączone do jednej bazy to by się nawet zgadzało ;). Poprostu przy tak intenstywnym wykorzystaniu bazy mechanizmy serializacji dostępu do zasobów dzielonych przestają sobie radzić i nie nadążają. No i w mądrych materiałach piszą, że cieżko będzie coś z tego jeszcze wycisnąć.

Więc jeśli to nie pomoże, to chyba tylko ORACLE RAC
może pomóc, albo "wyodrębnienie" schematów aplikacji na inne bazy, a ten pomysł dostawcy aplikacji sie raczej nie spodoba ;)

Zobaczymy ...

Pozdrawiam wszystkichPawel Nowak edytował(a) ten post dnia 24.02.09 o godzinie 15:27

Następna dyskusja:

Antywzorce programisty baz ...




Wyślij zaproszenie do