![]()
From: Serdar KÖYLÜ (skoylu@gizemcafe.net)
Date: Wed 06 Aug 2003 - 13:35:42 EEST
Selamlar..
Biraz kavramlar arasinda karisiklik var gibime geliyor.=20
squid'in diskd'si, aufs, ufs'si squid'in user level cache yonetim
algoritmalaridir.=20
reiserfs ise sistemin dosya sistemi bilesenidir. diskd, aufs, ufs vs.
islerini transparent olarak reiserfs'ye veya o cache_dir'de neresi
gosterilyorsa oranin dosya sistemine yaptirirlar.
Simdi biraz squid'in yapisina goz atmak gerekiyor. squid async
non-blocking i/o ile calisan son derece guclu bir programdir. Nerdeyse
hic bir zaman hic bir seyi beklemez, gider o esnada diger islerini takip
eder. Yuku aslen cogu web sunucudan cok daha fazla olabilir. Cunku ayni
anda en az iki yerle irtibat kurar. Bir istemciyle, birde clientle. Bir
yandan client isteklerini karsilarken diger yandan cache'i yonetmesi,
ayrica bir de serverlere baglanip onlardan aldigi bilgileri istemcilere
yollamasi gerekir.=20
Bu durumda ornegin client'ten gelen bilgileri select ile dinlemeye
cikarsa isi zora girebilir. Bu yuzden asenkron calismayi tercih eder.
Simdi en buyuk bottleneck olan disk erisiminde squid ozel yapilar
kullanir. Bir mail mesaji, ufs, aufs'yi vs. aciklamak icin cok iyi bir
ortam degil. Ama kabaca yapiya bakarsak, pek cok dizin kullanilir,
boylece dizinde dosya sayisi az tutulur. Dosya kolayca bulunup
okunabilsin diye..=20
ReiserFS dizin basina bolca dosya olmasi durumunu cok sever. Hele
squid'inkiler gibi olanlari. Demekki, squid icin reiserfs son derece
verimlidir. Diger yandan CPU ve RAM yukunun XFS kadar olmamasi da iyi
haberdir, cunku squid tam bir CPU ve RAM canavaridir, bunlardan daha cok
yiyebilir..
diskd, squid'in bir extension'u. Asenkron calisabilme yetisi sunar basta
squid'e. Soyleki her cache dizini icin ayri bir memory mapped dosyaya
(memory mapped =3D Bellek haritali, yani bellekte dogrudan takip edilen)
bakan ayri bir diskd childi calisir. Mesaj kuyruklari ile squid bunlara
yazilacak/okunacak verileri iletir, sonrada kendi isine bakar. diskd
bunlari dosya sistemine yerlestirir. Asil performans kazanci, her
dizinin kendi diskd'sinin hizla dosyayi acabilmesidir ki reiserfs bunu
O(log n) suresi icinde diskd'den daha hizli becerebilir. Demekki FS
yonunden reiserfs uzerinde diskd kullanmanin cok bir getirisi yok. Ama,
squid, diskd kullanmaniz asenkron calismaz ve fs'yi beklemeye baslar.
diskd kullanirsaniz, fs'yi beklemeden yoluna devam edip daha fazla
performans getirir.=20
asenkron I/O icin bir suru thread olusturmak ve bunlari yer yer
senkronize etmek gerekir. libc5 bu iste son derece kirilgandi. Bu yuzden
asenkron calisan squid'ler Linux altinda boyuna coker, DoS'a ugrar veya
asiri performans kaybederdi. Ama libc6 cikalidan beri bu zaafiyet
asildi.=20
BSD, Linux'a gore cok daha verimli bir network sistemine sahiptir. Zaten
konu socketler olunca BSD de-facto kral olur her zaman. Asenkron calisma
ve skb'lerin yonetimi mukemmeldir. Bu yuzden de agir yuk altinda gayet
iyi network throughput verebilir. Ama ufs ve ffs bu tur yiginla dosya
olan dizinlerde resmen kaplumbaga gibi kalir. Bu yuzden diskd BSD icin
olmazsa olmaz denebilir.=20
Sonucta Linux+ReiserFS+diskd ile squid kullanarak gercekten cok iyi
performans elde edebilirsiniz. Squid FAQ'ina filan bakarsaniz eski
gunlerden kalma bir suru "sakin ha bulasmayni" ibareleri bulursunuz.
Thread sorunlari 2.4 Kernel ve libc6 ile birlikte tarih oldu. Ayrica
sistemin nominal yukunde Linux network mimarisi BSD'nin altinda kalmaz,
esit, bazen biraz az, bazen biraz fazla ortalamada denk bir performans
verebilir.=20
Sonucta ReiserFS ile squid kullanmak iyi bir tercihtir. squid'i diskd
ile kullanmakta iyi bir tercihtir.=20
Ama reiserfs'nin diger sistemlere gore daha kirilgan oldugunu unutmayin.
Gerci bu sozden hemen reiserfs cokuverir gibi bir anlam cikartmaya
meyledersiniz. Ama ben evimde kendim de reiserfs kullaniyorum. ReiserFS
kirilgandir derken, camdan kulede degildir. O kirilncaya kadar gene sizi
uzun sure tasir. Belki ext2 titanyum ise, bu da iyi bir namlu celigidir.
Sizi cogu zaman sorunsuz tasir. Hele bir proxy'de, en kotu ihtimalle
cache'inizi kaybedersiniz ki, birakirsiniz 1-2 gun vs. icinde gene dolar
kendi kendine... Evet, bir proxy icin bulunabilecek en iyi FS'lerden
biridir ReiserFS..=20
Genede squid'in bilinen en buggy programlardan biri oldugunu unutmayin.
Gercekten Async I/O vs. ile calisacak kadar yuk varsa, mesela 2500
client, T3 - 34 MBit internet baglantisi filan, o zaman bu yontemlerin
faydasini gorursunuz. Yoksa size standart squid yeterli olur. Daha
olmadi squid en kolay Load Balancing yapilan programdir, bu ozelligi
tepe tepe kullanin..
Saygi ve sevgiler..
On Wed, 6 Aug 2003 01:48:59 +0300
G=FCrkan KARABATAK <gkarabatak@firat.edu.tr> wrote:
> Serdar hocam pek ilgili de=3DF0il ama bilginiz varsa birazda diskd =3D
> hakk=3DFDnda bilgi verebilirmisiniz. Ve squid i=3DE7in reiserfs uzerinde =
=3D
> aufs async-io ve diskd arasinda bir karsilastirma yapilabilinirmi =3D
> hangisi ne sebepten tercih sebebi olabilir?
linux-sohbet listesinden cikmak ve tum listeci islemleri icin
http://liste.linux.org.tr/ adresini kullanabilirisniz.
Bu listeden cikmak icin <a href="mailto:linux-sohbet-request@liste.linux.org.tr?Subject=unsubscribe">tiklayiniz</a>
![]()