02 Ekim 2007

Arama Motoruna Gelen Ani Yükte Bilgi.com'un Hız Testi


Önceki yazımızda Türkiye'de 4 gerçek arama motorumuz olduğunu ve bunların hız konusunda çok yavaş kaldıklarını, bir teste gerek olduğunu yazmıştık. O yazıdan sonra bir iki gündür bir kaç değişik testi bu dört arama motorunda deniyorum. Test sonuçlarını, her bir yazıda farklı bir arama motorlarını ele elınmış bir şekilde bu Arama Rehberi sitesinde bulabilirsiniz...

İncelemeye, içlerinde en iddialı konuşan oldukları için bilgi.com'dan başladım. Bu arama motoru ekibi, sistemlerini dağıtık bir bilgisayar mimarisi üzerinde çalıştırdıklarını söylüyorlar. Bakalım gerçekten öyle mi diye aşağıdaki sınamayı hazırladım.

Bu testte gerçek aramaları yansıtmak için internette en çok arananlar listesininin tepesindeki sözcüklerden ayıp olmayanları arasından ve karışık bir isim listesinden 140 tanesini seçerek harmanladım. Sonra da bu listeyi her bir dosyada 20 farklı arama terimi olacak şekilde 7 ayrı dosya şeklinde linux makinemde txt dosyalara böldüm.

Sınamaların yapıldığı bu linux makine oldukça hızlı bir internet çıkışına sahip ve çift Xeon işlemcili bir makine. Test esnasında da testten başka hiçbir iş yapmıyordu. Kısaca testteki sonuçlara kayda değer bir yan etkisi bulunamayacak bir makine bu.

İşte bu linux makinede 7 dosyayı, hazırladığım 'bilgizorla' adlı shell scriptiyle arama motoruna şu şekilde sorgulattım:

time bilgizorla test-karmasa-01.txt&
time bilgizorla test-karmasa-02.txt&
...
time bilgizorla test-karmasa-07.txt&

Ardından bu görevlerin bitmesini bekledim. Bir dakika kırk altı saniye kadar sonra 20'lik grupların arama sürelerini gösteren time komutu çıktıları ekranda peşpeşe belirmeye başladı:

real 1m46.354s
user 0m2.055s
sys 0m0.228s

real 2m16.873s
user 0m2.025s
sys 0m0.241s

real 2m37.251s
user 0m2.049s
sys 0m0.224s

real 2m38.607s
user 0m2.046s
sys 0m0.237s

real 2m41.982s
user 0m2.016s
sys 0m0.258s

real 2m44.038s
user 0m2.053s
sys 0m0.224s

real 3m25.714s
user 0m2.046s
sys 0m0.216s

Bu sonuçlar şunu gösteriyor. İlk 20'lik paket'in tamamlanması 1 dakika 46 saniye 35 salise sürmüş. Sonuncu da 3 dakika 26 saniye kadar sürmüş. Bu arada bu arattıklarımı daha önce bilgi.com'da aratmamış olduğum için arama motorunun motoru daha soğuk, yani veritabanındaki tupple'lar henüz önbelleklerde birikmiş değil. Neyse, süreleri toplayalım:

1091 saniye! Sadece 140 aramayı yapması 1091 saniye sürdü! 18 dakika. Yani bir aramayı yapması 7.79 saniye sürüyor... Sanırım cluster ve concurrent veritabanı mimarisi dedikleri şeyin verimliliğini biraz (epeyce) gözden geçirmeleri gerek. Üstelik bu deneyi hatların boş olduğu geç bir gece saatinde yapıyorum... Buradaki tek kusur aramaların yedişer yedişer aynı anda yapılıyor olması. Ama zaten popüler olması beklenen bir arama motorunda aynı anda belki binlerce arama yapılıyor olması gerekir. Biz sadece 7 tane arıyoruz...

Aynı deneyi hiçbir şey değiştirmeden gene deneyelim. Bu kez disk aramalarının hatta sorguların çoğu önbelleklerde yer almış olacağından ciddi bir hızlanma olması gerekir. Bakalım doğru mu:

... Bunun sonucunu hiç yazmiim. Belli ki bilgi.com'da bir terslik var, çünkü öncekinden daha yavaş bir sonuç çıktı. İki test arasında 15 dakika boşlık bırakmıştım. Belki önbellekleri boşalmıştır... Bu kez 5 dakika sonra 3. ve son kez deniyorum:

Neyse ki bu sefer sonuçlar teoriyle uyumlu. Önbellek sebebiyle hızlanma var: 509 saniye. Yani 1 aramayı 3.64 saniyede yapabiliyor yoğunken... Eh, bu hep malum şeyleri arayan bir grup kesimi memnun edecektir. Ama nadir şeyler arayan gerçek araştırmacılar için 3.64 saniye gayet yavaş...

Şimdi bir de aynı 140 arama sözcüğünü bir seferde tek tek sırayla sorgulatalım. Aynı anda 7 sorguyla başa çıkamıyor, tıkanıyordu bilgi.com. Bakalım tek tek sorgulatınca, ve veritabanı sıcakken verimliliği artacak mı:

time bilgizorla test-karmasa.txt

real 3m46.552s
user 0m14.253s
sys 0m1.624s

Eh. Esrar çözüldü şimdi. Teker teker ve alfabetik sırayla sorgulatınca 140 aramayı yapması 227 saniye sürdü. Yani herkes sıraya girer de, sırası gelen aramasını yapar öyle bilgi.com'dan çıkarsa, 1 aramanın sonucunu getirmesi en iyi koşullarda (önbellekler doluyken) 1.62 saniye alacak. Yeter ki insanlar aynı anda arama yapıyor olmasın. Mesela internetin en yoğun olduğu saat 16:00-17:00 arasındaki 60 dakikanın, 3600 saniyenin en verimli kullanılabilmesi için bu saatlerde bilgi.com'a en çok 2220 kişi, sırayla girmeli ki herkese en çabuk şekilde bir yanıt verebilsin...

Göründüğü kadarıyla bilgi.com'da yapılması gereken epey bir optimizasyon var daha...


Bu arada testte kullandığım sözcükler listesini 4 arama motorunu da test ettikten sonra yayınlayarak göstermeyi düşünüyorum. Diğer arama motorlarının bu Arama Rehberi blogumuz'daki testlerden erken haberleri olursa bir uyanıklık yaparlar belki, kimbilir...

 

arama motorları nelerdir, arama motoru, kişi arama motoru, arama motoru nelerdir?, arama motoru adresleri, arama motorunun kullanımı, kişi arama rehberi, türkiyenin arama motorları nelerdir, arama motoru optimizasyonu, türkçe arama motorları, Türkiye'deki arama motorları