Parametr konfiguracyjny VPCLASS umożliwia tworzenie i konfigurowanie procesorów wirtualnych.
#VPCLASS aio,num=1
#VPCLASS jvp,num=1
Parametr konfiguracyjny VPCLASS ma trzy wpisy w pliku onconfig.std, ale tylko pierwszy z nich jest aktywny:
W pliku onconfig można dodawać również inne wpisy parametru konfiguracyjnego VPCLASS. Każdy parametr konfiguracyjny VPCLASS musi opisywać inną klasę procesorów wirtualnych. Każdą definicję należy umieścić w oddzielnym wierszu.
Składnia parametru konfiguracyjnego VPCLASS >>-VPCLASS------------------------------------------------------> >--+-klasa-----------------------------------------------------------------------------+--> +-cpu--+------------------------------------------------------------+--+----------+-+ | | .-,-------------------------------------. | '-,--noage-' | | | V | | | | '-,--aff--=--(----+-procesor--------------------------+-+--)-' | | '-początek -koniec--+-------------+-' | | '-/--przyrost-' | '-zdefiniowane_przez_użytkownika--+------------+------------------------------------' '-,--noyield-' >--+----------------------------------------------+-------------> | .-1-----------------------------. | '-,--num--=--+-liczba_procesorów_wirtualnych-+-' >--+---------------------+------------------------------------->< '-,--max--=--maksimum-'
Pole | Wartości |
---|---|
klasa | Wartość klasa określa nazwę klasy procesora wirtualnego. Większość procesorów wirtualnych jest uruchamiana przez serwer bazy danych stosownie do potrzeb. Typowym zastosowaniem jest ustawienie parametru konfiguracyjnego VPCLASS dla klas CPU, AIO, JVP i zdefiniowanych przez użytkownika. W nazwie klasy procesora wirtualnego nie jest rozróżniana wielkość liter. |
zdefiniowane_przez_użytkownika | Wartość zdefiniowane_przez_użytkownika jest nazwą klasy procesorów wirtualnych tworzonej dla podprogramów zdefiniowanych przez użytkownika. Parametr konfiguracyjny SINGLE_CPU_VP musi mieć wartość 0. |
cpu | Określa klasę procesora wirtualnego. |
num | Wartość liczba_procesorów_wirtualnych określa liczbę procesorów wirtualnych danej klasy uruchamianych przez serwer bazy danych podczas jego uruchamiania. Wartością domyślną jest 1. Zakres wartości dla klas procesorów wirtualnych cpu i aio wynosi 1–10000. Zakres wartości dla wszystkich innych klas procesorów wirtualnych wynosi 0–10000. Za pomocą komendy onmode -p można dodać procesory wirtualne wybranej klasy dla bieżącej sesji. |
max | Wartość maksimum określa maksymalną liczbę procesorów wirtualnych, które serwer bazy danych może uruchomić dla klasy. Wartością może być dowolna liczba całkowita większa od zera. Domyślnie nie ma górnego ograniczenia tej liczby. |
aff | Na komputerach wieloprocesorowych, zapewniających obsługę powinowactwa z procesorem, opcja aff określa procesory, do których serwer bazy danych przypisze procesory wirtualne klasy CPU. System operacyjny numeruje procesory od 0 do liczby procesorów pomniejszonej o jeden.
Procesory wirtualne CPU są domyślnie przypisywane do dostępnych procesorów według algorytmu karuzelowego. Opcja aff przyjmuje jedną lub kilka liczb całkowitych:
|
noage | Wyłącza starzenie się priorytetów procesorów wirtualnych CPU, jeśli system operacyjny obsługuje ten mechanizm. Starzenie się priorytetów jest domyślnie włączone. |
noyield | Określa, że klasa procesorów wirtualnych zdefiniowanych przez użytkownika jest nieustępująca, czyli nie umożliwia procedurom UDR w języku C ustępowania innym wątkom wymagającym dostępu do klasy procesorów wirtualnych zdefiniowanych przez użytkownika. Domyślnie wątki procesorów wirtualnych zdefiniowanych przez użytkownika ustępują. Nieustępująca klasa procesorów wirtualnych zdefiniowana przez użytkownika wykonuje zdefiniowaną przez użytkownika procedurę w sposób dający procedurze możliwość wyłącznego używania klasy procesorów wirtualnych. Procedury zdefiniowane przez użytkownika używające nieustępującej klasy procesorów wirtualnych są wykonywane szeregowo i nigdy nie ustępują procesorów wirtualnych innym wątkom. Każda nieustępująca klasa procesorów wirtualnych zdefiniowanych przez użytkownika powinna zawierać tylko jeden procesor wirtualny, ponieważ procedura UDR jest wykonywana nieprzerwanie na jednym procesorze wirtualnym do czasu zakończenia, więc ewentualne dodatkowe procesory wirtualne byłyby bezczynne. |
Opcje mogą się pojawiać w dowolnej kolejności, rozdzielone przecinkami.
Komenda onmode -p służy do dynamicznego dodawania lub usuwania procesorów wirtualnych dla bieżącej sesji bazy danych. Komenda onmode -p nie aktualizuje pliku onconfig.
Na komputerze jednoprocesorowym należy przydzielić tylko jeden procesor wirtualny CPU. Na komputerze wieloprocesorowym należy przydzielić łączną liczbę procesorów wirtualnych CPU i procesorów wirtualnych zdefiniowanych przez użytkownika, maksymalnie równą liczbie procesorów fizycznych w komputerze.
Podczas uruchamiania serwera bazy danych liczba wirtualnych procesorów CPU jest automatycznie zwiększana do połowy liczby procesorów CPU na komputerze, na którym działa serwer bazy danych, chyba że włączony jest parametr konfiguracyjny SINGLE_CPU_VP. Wartość opcji num parametru konfiguracyjnego VPCLASS dla klasy CPU nie jest aktualizowana podczas automatycznego dodawania procesorów wirtualnych CPU przez serwer bazy danych.
Użytkownik może skonfigurować powinowactwo z procesorem i określić, czy zezwolić na starzenie się priorytetów. Na przykład następujący wpis powoduje utworzenie czterech procesorów wirtualnych CPU przypisanych do procesorów o numerach 7, 8, 9 i 10 i niepodlegających starzeniu się priorytetów:
VPCLASS CPU,num=4,aff=(7-10),noage
Jeśli określona została nazwa klasy cpu, należy usunąć parametry konfiguracyjne NUMCPUVPS, AFF_SPROC, AFF_NPROCS i NOAGE (jeśli istnieją). Te parametry konfiguracyjne nie są już używane.
Wpis parametru konfiguracyjnego VPCLASS dla klasy procesorów wirtualnych AIO umożliwia określenie dokładnej liczby procesorów wirtualnych AIO.
Jeśli zostanie określona nazwa klasy aio, należy usunąć parametr konfiguracyjny NUMAIOVPS (jeśli istnieje). Ten parametr konfiguracyjny nie jest już używany.
Jeśli używane są procedury zdefiniowane przez użytkownika w języku Java™ lub aplikacje Java, należy utworzyć co najmniej jeden procesor wirtualny Java poprzez dodanie wpisu parametru konfiguracyjnego VPCLASS odpowiadającego klasie procesorów wirtualnych JVP.