W takim przypadku obciążenie przy wirtualizacji będzie dużo wyższe ze względu na potrzebe importowania do pamięci podręcznej procesora (cache L2, L3) samego PHP. Wynika to z częstego przełączania wirtualnego procesora pomiędzy rzeczywistymi procesorami, przez nadzorcę wirtualizacji. Każde takie przełączenie powoduje potrzebę załadowania do pamięci podręcznej procseora ponownie instrukcji niezbędnych danemu systemowi, używanych przy przetwarzaniu danych.
Rozwiązaniem tego problemu jest przypisanie do konkretnego fizycznego rdzenia procesora, wirtualnego procesora. W przypadku gdy suma wszystkich wirtualnych procesorów jest większa od ilości fizycznych rdzeni, należy to wykonać tylko dla najbardziej obciążonych serwerów. W przypadku XEN służy do tego komenda xm vcpu-pin <host> <vcpus> <cpus>. Przykłady jej użycia poniżej:
xm vcpu-set host 8 xm vcpu-set host2 8 xm vcpu-set host3 8 xm vcpu-pin host all 8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 xm vcpu-pin host2 all 0,1,2,3,4,5,6,7 xm vcpu-pin host3 all 8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
W powyższym przykładzie deklarujemy dla obu hostów po 8 wirtualnych procesorów, a następnie przypisujemy host2 do jego wszystkich procesorów, 8 fizycznych procesorów. Pozostałe 2 serwery mogą korzystać ze wszystkich pozostałych procesorów.
Zmiana ilości wirtualnych procesorów dla hosta lub modyfikacja ilości maszyn wirtualnych na serwerze spowoduje zresetowanie ustawień przypisania procesorów do domyślnych wartości, czyli każdy wirtualny procesor ma przypisane wszystkie fizyczne procesory, czyli może być migrowany przez zarządzcę między nimi bez ograniczeń.
No comments:
Post a Comment