Platforma dlya WWW servera
© Maksim Moshkov. Oktyabr'-dekabr' 1996.
---------------------------------------------------------------
Horoshij dom, krasivaya zhena,
chto eshche nuzhno cheloveku,
chtoby dostojno vstretit' starost'?
Abdulla
Uzhe god kak ya ispol'zoval svoj domashnij personal'nyj
komp®yuter v kachestve rabochego mesta WEB-mastera: Netscape dlya
prosmotra dokumentov, Emacs dlya redaktirovaniya HTML, Apach
HTTPD server, Perl 5.0 - vse v odnom flakone s Linux - i vse
eto na odnogo edinstvennogo pol'zovatelya. Kak vdrug v golovu
prishla svetlaya, no slegka zapozdalaya mysl': "a skol'kih
klientov smozhet obsluzhit' moj domashnij WWW server?".
Pomerit'? Skazano - sdelano. Pishem prosten'kij
perl-skript, kotoryj po protokolu HTTP umeet zaprashivat'
dokument s servera v paketnom rezhime (dejstvitel'no, ne budu zhe
ya sam myshkoj shchelkat' desyat' tysyach raz)
Obkladyvaem ego vechnym ciklom, i zapuskaem v neskol'kih
kopiyah fonom na odnom terminale. CHto-nibud' takoe:
while true
do
for document in document1 document2 ... documentN
do
wwwclient.pl http://localhost/$document > /dev/null
date
done
done &
Teper' ostaetsya tol'ko izredka poglyadyvat' na ekran,
nablyudaya tam primerno takuyu kartinu:
Wed Sep 11 23:00:22 MSD 1996
Wed Sep 11 23:00:23 MSD 1996
Wed Sep 11 23:00:24 MSD 1996
Wed Sep 11 23:00:26 MSD 1996
Wed Sep 11 23:00:27 MSD 1996
. . .
Specifikacii testiruemogo servera
IBM PC 486dx2/80 20Mb RAM, 1.6Gb IDE
Unix: Linux 1.2.13,
httpd: Apach 1.1.1
Perl: 5.0
Squid: 1.1.beta27 (proxy-cashe, http-acselerator)
Vse skripty (v pervom i tret'em teste 10, vo vtorom 20) ya
zapustil fonom s odnogo terminala - poetomu schitat' skorost'
obsluzhivaniya bylo legko: za skol'ko vremeni otrabatyvaetsya 23
zaprosa (rovno odin terminal)
Vyvod 1. Srednee vremya MEZHDU obsluzhivaniyami zaprosov NE
ZAVISIT ot chisla odnovremenno zapushchennyh klientov, t.e. esli
odin klient v monopol'nom rezhime obsluzhivalsya za 1 sekundu, to
20 odnovremenno prishedshih klientov obsluzhivalis' za 20 sekund
kazhdyj.
V pervom teste ya zaprashival odnovremenno po 10 URLej,
yavlyayushchihsya perlovskimi CGI-skriptami, generyashchimi ot 10 do 400
Kb HTML, vo vtorom - po 20 obychnyh HTML-fajlov analogichnyh
razmerov. V tret'em teste ya skonfiguriroval na mashine
http-akselerator i zaprashival 10 CGI-skriptov skvoz' nego.
10 perl-CGI-skriptov
Temp obsluzhivaniya: Odin skript v 2.6 sek
(1,000,000 fajl-zaprosov v mesyac)
Skorost' obsluzhivaniya: 26 sekund na odin/10 dokument
Zagruzka virtual'noj pamyati: 25 Mb
20 HTML dokumentov
Temp obsluzhivaniya: Odin dokument v 0.65 sek
(4,000,000 fajl-zaprosov v mesyac)
Skorost' obsluzhivaniya: 13 sekund na odin/20 dokument
Zagruzka virtual'noj pamyati: 15 Mb
10 HTML-dokumentov cherez HTTP-akselerator
Temp obsluzhivaniya: Odin skript v 0.73 sek
(3,700,000 fajl-zaprosov v mesyac)
Skorost' obsluzhivaniya: 14 sekund na odin/10 dokument
Zagruzka virtual'noj pamyati: 10 Mb
Zamechu, chto pri rabote CGI-skriptov mashina eshche
udovletvoritel'no otklikalas' na vneshnie razdrazhiteli, i
dostatochno snosno otrabatyvala komandy redaktirvaniya v Emacs,
no gonyat' v eto vremya Netscape bylo uzhe nereal'no. 20
odnovremennyh klientov s®eli mashinu na 100% - ni na chto krome
WWW oba uzhe byla nesposobna - myshka po ekranu prygala skachkami
po 10 santimetrov, a fokus v okoshko pereklyuchalsya s zaderzhkoj ot
5 do 30 sekund. Zagruzka processora v tret'em teste s
uskoritelem byla 50%.
CGI-skripty potreblyayut primerno v 2 raza bol'she pamyati
komp'yutera i sozdayut primerno v 5 raz bol'shuyu vychislitel'nuyu
nagruzku. Vvidu etogo rekomenduetsya po vozmozhnosti ne
ispol'zovat' ih slishkom shiroko na sil'no zagruzhennyh serverah,
obhodyas' obychnymi HTML-fajlami.
Ispol'zovanie http-akseleratora okazalos' optimal'nym
resheniem problemy CGI-skriptov. Skorost' otklika
prokeshirovannogo CGI-skripta prakticheski ravna skorosti otklika
obychnogo html-dokumenta, a zagruzka komp'yutera dazhe men'she, chem
pri rabote shtatnogo http-servera.
Intensivno nagruzhennyj WWW server NE STOIT ispol'zovat'
eshche i kak posadochnoe graficheskoe mesto.
V nastoyashchee vremya (osen' 1996) dazhe samye krupnejshie
WWW-servera v Rossii imeyut zagruzku poryadka 1-2 mln
fajl-zaprosov v mesyac (i pereschitat' ih mozhno po pal'cam odnoj
ruki), ostal'nye - i togo men'she. Kak vidno iz testov, dazhe
desheven'kij (1000$) 486 komp'yuter v sostoyanii potyanut' nagruzku
samyh populyarnyh WEB-serverov Rossii. Pokupat' pod WWW
dorogostoyashchie UNIX-servery (SUN, HP, DEC... stoimost'yu ot 10 do
40 tysyach $) - NERENTABELXNO i bessmysleno.
Optimal'naya konfiguraciya WWW servera
IBM PC Pentium 100-133 Mhz,
32-64 Mb RAM,
1-2 Gb HD (SCSI ili IDE)
monitor, videokarta - lyubye, samye deshevye
Operacionaya sistema: FreeBSD, Linux,
HTTPD server: Apach 1.2.*
HTTP-akselerator: Squid 1.1.*
Takaya konfiguraciya obojdetsya v 1.5-2 tysyachi $ i vyderzhit
srednyuyu zagruzku 1-5 mln zaprosov v mesyac s 5-20 kratnym
zapasom prochnosti na vyrost.
Dlya servera srednej ruki vpolne hvatit dazhe 486dx4/100 s
16 Mb RAM
Last-modified: Mon, 01 Sep 1997 05:39:30 GMT