Veebiserveri optimiseerimine

From ICO wiki
Revision as of 12:27, 10 December 2013 by Mmark (talk | contribs) (→‎Protsessor)
Jump to navigationJump to search

Autor

Ees-ja perekonnanimi: Madis Mark

Rühm: A22 päevaõpe

Riistvara valik

Kõige tähtsam veebiserveri puhul on HTTP päringute arv sekundis ning arvutitevaheline kosteaeg. See kosteaeg on kulunud aeg päringu ja soovitud HTML-i saatmise lõpu vahel.

Veebiserveri puhul on oluline, et kliendid ei peaks ootama ning veebilehekülje avanemiseks võtaks aega alla sekundi.

Protsessor

HTTP päringu teenuse osutamine ei vaja niivõrd palju protsessori kasutust. Samas kasutamata ressursse saab kindlasti ära kasutada ja pakkida HTTP-d, et veebiserveri transpordikiirust parandada.

Kasutada tuleks igatahes 64-bitist protsessorit, mis ongi Windows Server 2012 eelduseks. Taktsagedusest on tähtsam suurte L2 või L3 protsessori vahemälu olemasolu, mis parandavad jõudlust märgatavalt.

Mälu

Mälu on veebiserveri puhul kõige olulisem. Enamikel veebiserveritel on lehed, mis on teistest populaarsemad ning kõige populaarsemate piltide puhul vahemälu kasutamine parandab HTML vastuste aega meeletult.

Tasub paigaldada vähemalt 4GB püsimälu koos võimaliku 16GB pikendusega, olenevalt tihedalt külastatud lehekülgede ja piltide suurusest.

Kõvakettad

Kõvaketaste puhul on kõige olulisem, et lugemise/kirjutamise peade liikumisest tekitatud kosteaeg poleks pikk. Tuleks eelistada ülikiireid SSD kettaid, eriti veebi vahemälu puudumisel.

Võrguseadmed

Windows Server 2012 puhul on vägagi soovituslik kasutada PCI Express (PCIe) võrguseadmeid vastavate pesadega, et vähendada koormust protsessorile. Samuti tasub siinikiiruse piiri vältimiseks kasutada PCIe x8 või kõrgemaid pesasid 10 Gigabit Etherneti adapterite jaoks.

Energiasäästlikkus

Tänapäeval on energiakasutus aina olulisem osa serverite puhul ning tähtis on ressursse võimalikult otstarbekalt kasutada. Windows Server 2012 on õnneks optimiseeritud suurepäraseks energiakasutuseks minimaalse jõudluse mõjuga, nii et enamike juhtude korral ei pea administraator seda manuaalselt veel tuunima.

Operatsioonisüsteemi tavad

  • Kui võimalik, siis on soovitatav teha värske Windows-i paigaldus. Tarkvara uuendamine võib jätta alles vanad ja ebasobivad registriseaded ning eelnevalt paigaldatud teenused ja aplikatsioonid, mis ressursse neelavad. Kui kasutatakse teist operatsioonisüsteemi, siis peaks selle teisele kettajaole installeerima.
  • Et vähendada ketta poole pöördumiste arvu, tasub süsteemi saalefail, operatsioonisüsteem, veebi andmed, ASP template vahemälu ja IIS(Internet Information Services) logifail hoida eraldi füüsilistel ketastel.
  • Süsteemi ressursside mõistlikuks jaotuseks on soovitatav paigaldada SQL Server ja IIS eraldi serveritele, kui võimalik.
  • Vältige üleliigseid teenuseid ja programme. Mõnikord on mõistlik kasutamata teenused deaktiveerida.

IIS 8.0 optimiseerimine

Internet Information Services (IIS) 8.0 on osa Windows Server 2012-st. Kasutab sarnast protsessi nagu IIS 6.0. Kernel-mode veebidraiver(http.sys) võtab vastu ja suunab HTTP päringuid, ning suudab täita päringuid oma vastuse vahemälult.

IIS 8.0 protsess sõltub kernel-mode veebidraiverist, http.sys, mis on vastutav ühenduste halduse ja vastuste töötlemise eest.

Http.sys sisaldab vastuse vahemälu. Kui päring klapib kirjega vastuse vahemälus, siis http.sys saadab vahemälu vastuse otse kerneli režiimist.

Kuna veebiserveril on olemas nii kerneli režiimi kui ka kasutaja režiimi komponendid, siis on vajalik mõlemaid optimiseerida. Seega IIS 8.0 optimiseerimine hõlmab järgnevate konfigureerimist:

  • Http.sys ja seotud kernel-mode vahemälu.
  • Worker protsessid ja user-mode IIS, kaasaarvatud aplikatsioonide pool-i seadistamine.
  • Mõned jõudlust mõjutavad optimiseerimise parameetrid

Kernel-Mode häälestamine

Jõudlusega seotud http.sys sätted jagunevad kaheks: vahemälu haldus ja ühendus, ning päringuhaldus. Kõiki registri sätteid hoitakse kirjes:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Http\Parameters

NB! Kui HTTP teenus samal ajal töötab, on vaja see seadete värskendamiseks taaskäivitada

Vahemälu halduse sätted

Kasulikud sätted http.sys kernel-mode vahemälu jaoks:

UriEnableCache (vaikimisi 1)

UriMaxCacheMegabyteCount (vaikimisi 0)

UriMaxUriBytes (vaikimisi 262144 bytes)

UriScavengerPeriod (vaikimisi 120 seconds)

Request and Connection Management Settings

Windows Server 2012 puhul haldab http.sys ühendusi automaatselt, seega pole neid seadeid vaja muuta.

User-Mode häälestamine

User-Mode sätted mõjutavad IIS 8.0 protsesside käitumist. Enamik neist sätetest asub järgnevas XML konfiguratsioonifailis:

 %SystemRoot%\system32\inetsrv\config\applicationHost.config

Kasuta Appcmd.exe või IIS 8.0 Management Console-i, et neid muuta. Üldiselt tuvastatakse muutused automaatselt, seega ei ole vaja teha restarti.

User-Mode Cache Behavior Settings

Compression Behavior Settings

Default Document List

Central Binary Logging

Application and Site Tunings

Managing IIS 8.0 Modules

Classic ASP Settings

ASP.NET Concurrency Setting

Worker Process and Recycling Options

Secure Sockets Layer Tuning Parameters

ISAPI

Managed Code Tuning Guidelines

NTFS sätted

Globaalne lüliti NtfsDisableLastAccessUpdate (REG_DWORD) 1 asub:

HKLM\System\CurrentControlSet\Control\FileSystem\

See lüliti vähendab ketta I/O koormust ja kosteaegasid lülitades välja kuupäeva ja kellaaja uuendamise viimase faili või kataloogi pöördumisel. Vaikimis väärtuseks on 1.

Värsked Windows Server 2012, Windows Server 2008 R2 ja Windows Server 2008 paigaldused määravad selle koheselt 1-ks, seega pole sellisel juhul vaja seda muuta. Kui aga on tegemist vanema Windows-i versiooniga või on Windows uuendatud, on vaja ise väärtuseks 1 määrata.

Uuenduste väljalülitamine on efektiivne, kui kasutatakse suurt andmete hulka, mis koosneb tuhandetest kataloogidest.

Networking Subsystem Performance Settings for IIS

Kasutatud kirjandus

1. Performance Tuning Guidelines for Windows Server 2012