Hur mycket resurser kräver en sökmotor?

En sökmotor behöver datorresurser dels för att leta upp svar på de sökfrågor som användarna ställer, dels för att samla in webbsidor och verifiera att de fortfarande finns kvar på nätet. Hur mycket datorkraft används då av olika sökmotorer till detta? Det beror naturligtvis på hur många webbsidor sökmotorns index är tänkt att innehålla, och hur många som kommer att söka med sökmotorn. De stora sökmotorerna vill oftast inte berätta hur många sökningar som görs hos dem, och vill heller inte berätta hur mycket hårdvara de använder. Många sökmotorer ”skryter” dock med hur många webbsidor de har samlat in och som är sökbara. Det är dock svårt att verifiera att siffran på antalet sidor man kan söka i är korrekt angivet. Mindre sökmotorer, speciellt open source-projekt, är det lättare att hitta information om.

Open source-sökmotorn Nutch finns beskriven i denna artikel. Där framgår att om man använder Nutch mjukvara så kräver 100 miljoner sidor runt fyra front-end servrar och en back-end server för att klara c:a två sökningar per sekund, givet att servrarna inte har så mycket internminne att hela indexet kan hållas där. Front-end servrarna används för att svara på sökfrågor från användarna och back-end servern till att samla in/uppdatera indexet över webbsidorna.

Appropå det imponerande resultat som Yahoo! Labs visar på på sitt mer än 100 miljoner sidor stora Nutch-index så skriver Doug Cutting (blog) i en maillista som jag är med på att:

This demo [the one at Yahoo! Labs] runs on a handful of boxes. It was originally running on three dual-processor boxes, but I think Yahoo! subsequently moved it to six or eight single-processor boxes. Queries are broadcast to all servers, and the top-scoring matches overall are presented.

In Nutch-based benchmarks, we found that a single-processor box with 4GB of memory and a 2M page Nutch index (i.e., the entire index fits in RAM) could handle over 20 Nutch searches/second. A box with 1GB of memory and a 20M page Nutch index (i.e., the entire index does not fit in memory) could only handle around 1 or 2 Nutch searches/second. Performance will obviously vary with processor speed, disk speed, average document size, average number terms per query, etc.

Appropå resurser så är det naturligtvis inte bara datorer som krävs, någon måste sköta dem också. Nutch söker en person på 1/3-dels tjänst för att driva de servrar som skall skapa ett nytt stort index över webbsidor. Lite mer info om vilken hårdvara som krävs för att köra en Nutch-baserad söktjänst beskrivs hos ObjectSearch som bygger på just Nutch:s index.

Från en gammal intervju med Matt Wells framgår det att Gigablast, när de indexerade 100 miljoner webbsidor, använde 8 servrar. Detta var någon gång 2002. Mer info om detta och spekulationer om hur många servrar Microsoft kommer att använda till sitt nya index finns att läsa i en artikel hos Netcraft.

Fybersearch är en liten hemutvecklad sökmotor som har c:a 4000 webbsidor i sitt index. FyberSearch använder sig av en MySql-databas för att webbsidorna i, och för att genomföra sökningar. Indexet är inte stort, men det är enda relativt segt att få svar på sin sökningar, speciellt längre fram bland sökresultaten. FyberSearch körs på en server. En intervju med den 19-åriga programmeraren av FyberSearch finns hos Hoverscore. Samma teknik som används hos FyberSearch används hos nyhetssökmotorn Gooliat. Gooliat klarar c:a en sökning var 10:e sekund på ett index av c:a 500 000 artiklar. Även Senaste.info använder en server och MySql för sökning bland c:a 13 000 artiklar. Senaste.info ser ut att klarar c:a 2-5 sökningar per sekund. Notera att ”artiklar” typiskt är mindre än hela webbsidor.

Det spekuleras om att Google körs på 100 000 servrar. Google har hela, eller i alla fall alla delar av sitt index som används, i servrarnas internminne. Detta löser man kanske enklast med så kallade solid-state-diskar (SDD). (Artikel om SDD hos IDG, dock endast för prenumeranter.) Från Googles information om hårdvara för intranetsökningar ser det ut som om en server (naturligtvis utan SDD) med Googles mjukvara klarar av att söka bland 1.5 miljoner dokument (av okänd storlek) med 300 sökningar per minut, fem söksvar i sekunden.

FAST, det norska företag som tidigare drev AllTheWeb påstår att deras system klarar att söka bland 300 miljoner sidor på mindre än en sekund, men det framgår inte med vilken hårdvara.

För övrigt har IDG idag en arikel om distribuerade sökmotorer. Syftet är att sprida ut arbetet med att samla in webbsidorna på flera datorer i ett peer-to-peer-linkande nätverk. Själva sökningen måste, med dagens höga krav på hur fort sökresultaten skall dyka upp, dock samlas på ett och samma ställe. Denna idé är inte ny, den har sedan tidigare utvecklats i GRUB-projektet (som drivs av sökmotorföretaget LookSmart).

frisim.se kör på en server med 256MB minne och returnerar oftast sina, idag, c:a 54 000 artiklar på mindre än 0.5 sekunder.

Comments are closed.