Serverio resursų optimizavimas

Vygintas Kazanavičius, IFM-9/1, e-paštas: [email protected]

Uždavinys

 

            Serveryje yra N vietų plokštėms įstatyti, tačiau to paties tipo plokštes nebūtinai galima statyti į visas N vietų. Todėl kiekvienai vietai i apibrėžiama galimų plokščių resursų aibė:

            Tuomet į vietą i įstatytos plokštės resursas bus .

            Šiame darbe maksimizuojamas serverio suminis resursas R, kuris apibrėžiamas kaip serveryje įstatytų plokščių resursų ri suma:

,

beto reikalaujama, kad serverio suminis resursas R neviršytų serverio pajėgumo M (maksimaliai leistino resurso):

.

            Tokio tipo uždavinys yra ypač aktualus telekomunikacijų paslaugų tiekėjams ir gali būti taikomas įvairiems panaudojimo atvejams:

1.      Kaip optimaliai sukomplektuoti mazgo tinklinę įrangą, kai nupirktas tuščias blokas?

2.      Ar esama bloko konfigūracija optimali?

3.      Kaip optimaliai vykdyti tinklo plėtrą? Siūlomo metodo pagalba būtų galima sudaryti instrukcijas nurodančias kur reikia statyti tam tikrą naują plokštę, kad plečiant tinklą būtų efektyviai išnaudojami serverio pajėgumai.

 

            Šiame darbe uždavinys suvedamas prie globalaus minimizavimo uždavinio apibrėžiant tikslo funkciją F(x) kaip serverio pajėgumų M išnaudojimo efektyvumą:

, čia

- serverio konfigūracijos vektorius, kur yra i-joje vietoje įstatytos plokštės tipo numeris, o tos plokštės resursas - .

 

Optimizavimo metodai

 

Šiame darbe resursų optimizavimui buvo realizuoti šie optimizavimo metodai:

1.      Monte Carlo

2.      Simulated Annealing (SA)

3.      SA parametrų optimizavimas GMJ paketo metodais (Bayes, MC, SA, Globt, Exkor).

 

Duomenų failo formatas

 

<Vietų kiekis serveryje - N>

<Maksimalus serverio plokščių suminis resursas, kurio negalima viršyti - M>

<1 vietos 1 plokštės resursas g[1][1]><1 vietos 1 plokštės resursas g[1][2]>...

<2 vietos 1 plokštės resursas g[2][1]><2 vietos 1 plokštės resursas g[2][2]>...

...

<n vietos 1 plokštės resursas g[n][1]><n vietos 1 plokštės resursas g[n][2]>...

 

Pvz.: jeigu serveryje yra N=6 vietos plokštėms statyti, o serverio maksimaliai leistinas suminis resursas M=95, o serverio vietose galima statyti plokštes kurių resursai atitinkamai yra:

 

Vietos nr.

Galimi resursai

1

16 14 12 9 5 3 1 0

2

26 12 5 3 1 0

3

16 14 12 9 5 3 1 0

4

14 9 5 3 1 0

5

16 14 12 9 5 3 1 0

6

16 12 9 5 3 1 0

 

Pastabos:

1. Galimi resursai užrašomi eilute skiriant tarpu ir rašomi mažėjimo tvarka.

2. Jeigu tam tikroje vietoje galima plokštės nestatyti, tai resursų eilutės gale rašomas 0

 

 

Tuomet duomenų failas atrodys taip:

 

6

95

16 14 12 9 5 3 1 0

26 12 5 3 1 0

16 14 12 9 5 3 1 0

14 9 5 3 1 0

16 14 12 9 5 3 1 0

16 12 9 5 3 1 0

 

Darbo su programa scenarijai

 

Optimizavimas Monte Carlo metodu

1.      Method lange pasirinkite MonteCarlo

2.      Nurodykite iteracijų kiekį:

 

3.      Pasirinkite Task->Cards

4.      Pasirinkite pradinio taško parinkimo strategiją (Greedy – gobši, Random – atisiktinė)

5.      Nurodykite duomenų failo pilną internetinį adresą:

6.      Spauskite Operation->Run

7.      Ekrane matysite rezultatus:

8.      Jei norite pamatyti optimalų plokščių išdėstymą serveryje, spauskite Analysis->CardsAnalyzer:

 

Optimizavimas Simulated Annealing metodu

  1. Method lange pasirinkite SimulatedAnnealing
  2. Nurodykite iteracijų kiekį
  3. Nurodykite pradinę temperatūrą lauke initial temperature
  4. Nurodykite šildymo greitį lauke annealing ratio

Pastaba sekančios iteracijos temperatūra šiame metode apskaičiuojama pagal formulę:

T(k+1) = T(k) * annealing_ratio

 

 

Toliau vykdykite MonteCarlo 3-8 etapus.

 

SA parametrų optimizavimas

  1. Method lange pasirinkite bet kurį metodą prasidedantį raide W (WBayes, WMonteCarlo, ir t.t.)
  2. Nustatykite metodo parametrus

  1. Pasirinkite Task->SAParamOptimizer
  2. Nustatykite parametrus kaip Simulated Annealing Cards Task atveju
  3. Lauke No of iterations during 1 SA nurodykite kiek reikia atlikti iteracijų darant vieną Simulated Annealing etapą
  4. Nurodykite SA parametrų kitimo ribas:

  1. Operation->Run
  2. Ekrane matysite surastus optimalius SA parametrus ir F(x) minimalią reikšmę prie šių parametrų:

  1. Kaip ir visuose metoduose galite pažiūrėti optimalų plokščių išdėstymą prie optimalių parametrų per Analysis->CardsAnalyzer