Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



12.05.2022

Odszyfrowanie historii

Z inicjatywy prezesa IPN, dr. Karola Nawrockiego, powstało Biuro Nowych Technologii. Jego...
01.04.2022

Program partnerski

NGAGEFirma NFON, ogólnoeuropejski dostawca komunikacji głosowej w chmurze, ogłosił...
01.04.2022

SI w TFI PZU

Na platformie do inwestowania inPZU działa już nowa metoda identyfikacji tożsamości...
01.04.2022

Kooperacja w chmurze

To oparta na stworzonej przez NetApp technologii ONTAP i w pełni zarządzana przez...
01.04.2022

Nowe laptopy od Dynabook

Dynabook wprowadza do swojej oferty dwa laptopy z procesorami Intel Core 12. generacji,...
01.04.2022

Ryzen do stacji roboczych

AMD przedstawił nową gamę procesorów Ryzen Threadripper PRO 5000 serii WX.
31.03.2022

Serwery dla MŚP

Firma Lenovo wprowadziła nowe rozwiązania w zakresie infrastruktury IT Future Ready,...
31.03.2022

Innowacyjny kontroler SSD

Microchip zaprezentował nowe kontrolery SSD, które umożliwią obsługę napędów o pojemności...
31.03.2022

Wydajny jak Brother

Brother dodał do swojej oferty trzy nowe, atramentowe urządzenia wielofunkcyjne, które...

Performance Tuning

Data publikacji: 03-03-2022 Autor: Kamil Stawiarski

W poprzedniej części cyklu dotyczącym strojenia wydajności serwera bazodanowego zwróciliśmy uwagę na problem nieprawidłowo skonfigurowanych aplikacji, które nie utylizują w odpowiedni sposób puli połączeń. Dziś znów podejmiemy ten temat i znacząco go rozwiniemy.

 

Dla omawianego środowiska z poprzednich części cyklu zwróciliśmy uwagę na sekcję ze statystykami tworzenia nowych połączeń w bazie danych. Przy 25 połączeniach na sekundę (90 tys. połączeń na godzinę) można spodziewać się poważnych problemów wydajnościowych z serwerem bazodanowym, ponieważ stworzenie nowego procesu bazodanowego, powołanie bufora podręcznego i zarządzenie nowym procesem jest czasochłonne.


Jednym ze sposobów wykrycia serwera, z którego była nawiązywana duża liczba połączeń, jest interpretacja pliku log nasłuchu. Można do tego posłużyć się narzędziem listener_analyzer.py dostępnym pod adresem bit.ly/3I8ePdA. Przykładowy wynik analizy logów przez skrypt widzimy na rys. 1. Analiza przedstawia 22 adresy IP, które logowały się do bazy danych, i możemy zidentyfikować serwer, który nie ma prawidłowo zaimplementowanej puli połączeń. Przy tego typu konfiguracji, gdzie pula połączeń jest nieprawidłowo zbudowana na poziomie serwera aplikacyjnego, najmniejszy nawet problem sieciowy może eskalować się do poważnych kłopotów. Rys. 2 przedstawia wyniki eksperymentu testu wydajnościowego dotyczącego latencji nawiązywania połączenia TNS – szyfrowanego i nieszyfrowanego.


Z uwagi na te rezultaty oczywiste jest, że negatywny wpływ na czas tworzenia pojedynczej sesji widoczny przy zaszyfrowanym połączeniu dotyczyć będzie jedynie aplikacji o architekturze kompletnie niezgodnej ze sztuką, która zakłada tworzenie krótkich sesji w dużej liczbie na potrzeby niewielkiej liczby operacji „user call”.


> Oracle Connection Manager


Administracyjnym rozwiązaniem opisanego problemu jest użycie narzędzia Oracle Connection Manager, które jest częścią klienta Oracle – użycie tego produktu jest możliwe bez dodatkowych opłat w ramach posiadanych licencji Oracle Enterprise Edition. Należy pamiętać, że zawsze wersja narzędzia OCM, musi być wyższa niż wersja bazy danych, która ma być zarządzana przez ten produkt.


Instalacja


Najprościej przeprowadzić instalację z użyciem przygotowanego wcześniej pliku odpowiedzi:


oracle.install.responseFileVersion=/oracle/install/
rspfmt_clientinstall_response_schema_v21.0.0 ORACLE_HOSTNAME=$(hostname)
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/cman21
ORACLE_BASE=/u01/app/oracle
oracle.install.client.installType=Custom
oracle.install.client.customComponents="oracle.sqlplus:21.0.0.0.0",
"oracle.network.client:21.0.0.0.0","oracle.network.cman:21.0.0.0.0",
"oracle.network.listener:21.0.0.0.0"


Następnie można przeprowadzić instalację w trybie SILENT.


[oracle@88f087c44f0b client]$ ./runInstaller -silent
-ignorePrereqFailure -showProgress -ignoreSysPrereqs
-responseFile $PWD/response/cman.rsp ORACLE_HOME_NAME=cman21


Konfiguracja TDM


W celu stworzenia puli połączeń w narzędziu CMAN należy wykonać konfigurację trybu Traffic Director Mode TDM, który oficjalna dokumentacja definiuje następująco: „Oracle Connection Manager w Traffic Director Mode 18.1 wspiera Proxy Resident Connection Pooling (PRCP). PRCP zapewnia usługi połączeniowe dla większej liczby połączeń klienckich, które są trasowane przy użyciu mniejszej liczby połączeń serwera do docelowych baz danych. PRCP może zmniejszyć obciążenie połączeń (wykorzystanie pamięci połączeń) na warstwie bazy danych, a także wykonywać load balancing w czasie pracy w celu zapewnienia lepszej wydajności. Może to pomóc w zmniejszeniu obciążenia bazy danych połączeniami”.


W celu skonfigurowania trybu TDM należy stworzyć na bazie danych użytkownika PROXY:


SQL> create user tdm identified by browar;
SQL> grant connect to tdm;
SQL> alter user hr grant connect through tdm;
 

W powyższej konfiguracji pozwalamy użytkownikowi TDM połączyć się do bazy danych z własnym hasłem, ale jako użytkownik HR:


SQL> conn tdm[hr]/browar@orclprod
SQL> show user
USER is "HR"


Konfiguracja CMAN w trybie TDM


Pierwszym krokiem konfiguracji produktu Oracle Connection Manager jest stworzenie pliku konfiguracyjnego cman.ora w lokalizacji $ORACLE_HOME/network/admin:

 

cman-tdm=
(configuration=
(address=(protocol=tcp)(host=0.0.0.0)(port=1555))
(parameter_list=
(TDM=Yes)
(registration_invited_nodes=*)
)
(rule_list=
(rule=(src=*)(dst=*)(srv=*)(act=accept))
)
wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=
(DIRECTORY=/u01/app/oracle/wallet-cman/)))
SQLNET.WALLET_OVERRIDE = TRUE


Drugim krokiem jest stworzenie pliku wallet:


[oracle@88f087c44f0b admin]$ mkdir -p /u01/app/oracle/wallet-cman/
[oracle@88f087c44f0b admin]$ mkstore -wrl /u01/app/oracle/wallet-cman/ -create
[oracle@88f087c44f0b admin]$ mkstore -wrl /u01/app/oracle/wallet-cman/
-createCredential orclprod tdm haslo

 

[...]

 

Laureat Oracle ACE Director i członek stowarzyszenia Oracle OakTable zrzeszającego ok. 100 najlepszych specjalistów na świecie.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"