Alternativ cachningsmetod för .htaccess. Vad är webbläsarens cache

Läs mer om SharePoint BLOB-cache, sidutgångscache och objektcache.

Microsoft SharePoint Server 2010 kan användas för att bygga olika affärslösningar från samarbetsportaler och registerarkiv till webbplatser. Oavsett vilket alternativ du väljer kommer du fortfarande att vara intresserad av lösningens acceptabla hastighet, och här kommer det inte att vara överflödigt att förstå principerna för cachen. Huvuduppgiften för cachen är att säkerställa snabbare visning av din portal för slutanvändare. Men varje mynt har två sidor, så du måste känna till både fördelar och nackdelar med olika typer av cache.

I den här artikeln kommer vi att prata om tre typer av cache. Var och en av dem har unika funktioner som hjälper din SharePoint Server att växa. Men cachen är inget universalmedel, varje typ av cache har sina egna kompromisser, och det är långt ifrån ett faktum att alla typer av cache kommer att passa ditt specifika scenario. Tanklöst aktivera cachen utan korrekta inställningar, kommer troligen inte att leda till den förväntade prestandaförbättringen.

Alla SharePoint Server-installationer består av en instans av Microsoft SQL Server och minst en webbgränssnittsserver. När användare begär data från SharePoint Server (till exempel en sida eller ett dokument), tar WFE-servern emot all nödvändig data från SQL och bearbetar användarförfrågan baserat på den. Även om detta säkerställer att användaren får den mest uppdaterade informationen, resulterar denna situation i ökad trafik mellan SQL- och WFE-servrarna, vilket i sin tur påverkar slutanvändarens hastighet.

SharePoint Server-cache körs på Web Front-End-servrar, varje typ av cache lagrar en lokal kopia av data för att, när det är möjligt, betjäna klienter som använder den lokala cachen, vilket minskar mängden data som överförs från SQL-servern och belastningen på dess egna processorer.

BLOB-cache.

BLOB-cachen minskar belastningen på SQL Server genom att lagra innehållet i de begärda filerna (mest delar av sidan som JavaScript, CSS och bilder) på WFE-serverns hårddiskar. När en ny begäran kommer in för en fil som redan har cachelagrats, returnerar BLOB-cachen filen från disken istället för att anropa SQL Server.

När du utvecklar SharePoint-webbplatser finns det flera ställen att lagra sidinnehåll på. De kan förvaras på filsystem WFE-server (vanligtvis i katalogen _layouts) eller i SharePoint-biblioteket. Filer som finns lagrade i katalogen _layouts kan läsas från disk ganska snabbt, men om filerna behöver uppdateras måste administratören ändra dem på varje WFE-server. Att lagra i ett SharePoint-bibliotek har sina fördelar, så att inte bara gårdsadministratörer kan lägga till och uppdatera innehåll utan även användare. Men eftersom allt som finns lagrat i biblioteket är i SQL, och genom att extrahera data från SQL, blir hastigheten för att få det lägre. Så när du lagrar en fil i SharePoint och använder en BLOB-cache, ges tillgång till innehållet snabbt och det finns möjlighet till centraliserad hantering.

Men det finns också nyanser. När du lägger till en ny fil gör den fem gånger fler förfrågningar till SQL-servern än i en situation med BLOB-cachen inaktiverad. Dessa ytterligare samtal hämtar behörighetsinformation och annan metadata för att säkerställa säker och tillförlitlig drift av cachen. Dessutom, för att undvika att returnera inaktuellt innehåll till klienten, kommer BLOB-cachen att ta bort filer från cachen om det finns en möjlighet att de kommer att bli inaktuella. Naturligtvis, efter detta kommer filen att cachas igen, vilket återigen kommer att påverka anrop till SQL.

Förutom att minska antalet träffar på SQL-servern hjälper BLOB-cachen till att minska sidåterladdningstiden genom att lägga till kontrollrubriker till HTTP-svaret för filerna som den betjänar. Dessa rubriker talar om för användarens webbläsare att lagra dessa filer i webbläsarens cache. När webbläsaren behöver en av de cachade filerna kan den använda den cachen istället för att gå till SharePoint Server. Detta leder till en betydande minskning av HTTP-förfrågningar och sidladdningstid.

Som redan nämnts är BLOB-cachen särskilt användbar vid cachelagring av stora multimediafiler. SharePoint i sig är optimerat för att arbeta med små filer. Den kan hantera mindre filer FileReadChunkSize (100KB) per begäran och filer upp till 5 MB LargeFileChunkSize serveras direkt från SQL utan diskbuffring med låg latens. SharePoint buffrar filer som är större än 5 MB på WFE-serverdisken innan de returneras till användaren. Detta sparar minne, men påverkar returfördröjningen. BLOB-cache kan minska latensen i den här situationen. När en fil cachelagras i en BLOB returneras den lika snabbt som om den fanns direkt på IIS.

En annan fördel med BLOB-cachen är att den låter dig HTTP begära en del av en fil istället för att begära hela filen. Till exempel, om webbläsaren bara behöver 1 MB av en 10 MB fil, kan den göra en begäran och bara få 1 MB från cachen. När BLOB-cachen är inaktiverad ignorerar SharePoint Server sådana förfrågningar (i den engelska dokumentationen kallas de HTTP-intervallförfrågningar) och returnerar hela storleken på den begärda filen. Det visar sig att BLOB-cache ökar nätverkets prestanda genom att minimera nätverksbelastningen.

Klientmediaspelare kommer att dra mest nytta av sådana partiella HTTP-intervallförfrågningar. Det spelar ingen roll om det är Windows Media Player eller Silverlight inbyggt i en webbsida, när du flyttar reglaget för video framåt kommer BLOB-cachen att returnera den nödvändiga delen av filen utan att ladda ner den helt till klienten.

Logisk arkitektur och layout.

BLOB-cachen körs på varje WFE-server i gården. Mer exakt, varje webbapplikation och varje virtuell server Vi har vår egen BLOB-cache. I det här fallet betyder en virtuell server IIS-webbplats, men i SharePoint Server är som regel varje webbapplikation associerad med en virtuell server. Endast en BLOB-cache-instans kan köras på en virtuell server åt gången. Detta innebär att BLOB-cachen inte kan användas med Web Garden. (En webbträdgård är en applikationspool som använder mer än en förfrågningsprocess för att behandla förfrågningar, mer än en w3wp.exe-process)

Om SharePoint-webbapplikationen utökas, och den utökas vanligtvis när den används olika sätt autentisering för en portal, kommer den andra virtuella servern att hanteras av sin egen instans av BLOB-cachen. Därför är BLOB-cachen aktiverad för varje zon separat. Till exempel cachelagras data som begärs av interna användare, men data som begärs av externa användare (via extern webbadress) cachelagras inte. Och även om innehållet som tillhandahålls externa och interna användare är identiskt, kan det inte undvikas att ha två instanser av cachen.

Cachefyllningsmekanism.

Filer med vissa tillägg hamnar i BLOB-cachen när användare begär dem. Tilläggslistan är anpassningsbar och kan konfigureras för specifika uppgifter. När du checkar ut en fil för första gången från BLOB-cachen kan små filer uppleva en något längre fördröjning än en vanlig SharePoint-utcheckning. Å andra sidan serveras stora filer snabbare på grund av den utförda BLOB-cache-optimeringen. Filen börjar cachelagras när de första byten läses från SQL Server. Datan returneras till klienten, medan resten av den fortsätter att laddas från databasservern. Naturligtvis är detta bara sant för den första begäran, eftersom efterföljande gånger data serveras direkt från BLOB-cachen.

BLOB-cachen kan hantera flera förfrågningar för en enda fil genom att göra data i cachen tillgänglig för alla förfrågningar. Detta inträffar även om filen ännu inte har hämtats helt från SQL Server. Till exempel skickas en länk till en videorapport (500 MB) lagrad på SharePoint Server e-post företagets anställda. Om ett stort antal användare klickar på länken samtidigt, med cachen inaktiverad, kommer många frågor att göras till SQL Server. (en för varje användare) Det är inte svårt att gissa hur detta kommer att påverka prestandan. Med cache aktiverat kommer videon att tas emot från SQL en gång av varje WFE-server, och även om den inte hinner cachelagras helt, kommer den att användas för att betjäna alla förfrågningar. Slutsatsen antyder sig själv - BLOB-cachen är nödvändig för att servera stora filer på SharePoint-servern.

Datalagring och diskcachestorlek.

Eftersom du inte bör redigera någon av cachefilerna manuellt, är det användbart att förstå strukturen för BLOB-cachedatalagring på disk, åtminstone ur en teoretisk synvinkel. BLOB-cachen lagrar sina filer på disken i en struktur som speglar strukturen på din portal. Till exempel kommer en fil på portalen med URL:en http://contoso/sites/publishing/documents/somefile.jpg att lagras på disken ungefär på följande sökväg c:\BlobCache\14\11111111\AB25499AF39572\sites\publishing \documents\somefile-1238DEF8097AB .jpg. Denna sökväg innehåller slumpmässiga delar av strängen, detta görs för att förhindra överskrivning gammal version filen är nyare eftersom gammal fil för närvarande kan den fortfarande användas. Namnet på värddatorn där filen finns ersätts i länken med en unik sträng, vilket förhindrar cachekonflikter mellan två filer med adresser som http://contoso/images/logo.jpg och http://northwinds/images/ logo.jpg.

I operationssalen Windows-system Det finns en begränsning på 260 tecken i filsökvägen. Eftersom BLOB-cachen lägger till ytterligare unika rader till cachefilens sökvägar, är det mycket möjligt att denna gräns kommer att överskridas när du skriver en fil till disk. Därför bör du försöka undvika alltför långa webbadresser i din SharePoint-portal. Om du följer rekommendationen bör du för normal filcache inte göra länkar på portalen längre än 160 tecken.

Förutom diskutrymme kräver BLOB-cachen en liten mängd RAM-minne för att upprätthålla ett index över filer på disken. Varje indexpost använder cirka 800 byte minne. I de flesta fall kommer minnet som konsumeras av BLOB-cachen att vara en liten del av det totala minnet som konsumeras av SharePoint. Men om BLOB-cachen behöver lagra hundratusentals filer, måste minneskraven planeras med ovanstående i åtanke.

BLOB-cachebeständighet vid omstart av programpoolen.

BLOB-cachen är den enda beständiga cachen, vilket betyder att den kommer att överleva omstarter eller avstängningar av IIS-programpoolen. Detta händer eftersom indexet regelbundet skrivs till disk. Ett serialiserat index är ungefär en tredjedel av storleken på ett in-memory-index. Liksom alla I/O-operationer påverkar storleken på indexet längden på serialisering och deserialisering. En mycket stor BLOB-cache innehåller hundratusentals element, så processen att skriva om dem till indexet kan ta mer än en minut. Medan serialiseringsprocessen pågår kan nya objekt inte läggas till i cachen. Detta innebär att om förfrågningar tas emot för filer som ännu inte finns i cachen, måste klienten vänta tills serialiseringsprocessen är klar. Om indexet är extremt stort (miljoner objekt) kan serialiseringstiden överstiga klientens begäran timeout och begäran kommer att ignoreras.

Cachekontrollmekanism.

BLOB-cachen rensar upp föråldrade cachade filer genom att fråga SharePoint Server efter ändringar. Standardavfrågningsintervallet är fem sekunder, men den här parametern kan konfigureras. Faktum är att filen raderas senare (det här intervallet är också konfigurerbart), efter att alla HTTP-sessioner har inaktiverats. Föråldrade och raderade filer från cachen läggs inte till i cachen automatiskt, de läggs till nästa gång användaren begär filen. När innehållet ändras på en SharePoint-webbplats kan BLOB-cachen ändras ganska snabbt. Följande tabell visar filoperationer och deras inverkan på BLOB-cachen.

Den maximala storleken på BLOB-cachen justeras också för att undvika onödigt slöseri. fritt utrymme på disk. När den totala storleken på filerna i cachen överskrider de fastställda gränserna, tar BLOB-cachen bort de minst använda filerna tills vikten av cachade filer sjunker till 70 % av den tillåtna storleken. Denna process kallas komprimering. Komprimering är en ganska "dyr" process när det gäller prestanda, detta beror på möjlig upprepad cachning raderade filer. Genom att köra komprimering med jämna mellanrum kan du bli av med "impopulära" filer och frigöra utrymme för dem som används oftare. Om komprimering sker ofta, indikerar detta bara brist på cacheutrymme, du kan se frekvensen av denna operation med hjälp av räknaren "Totalt antal cachekomprimeringar" i SharePoint Disk-Based Cache-gruppen. Att ge extra utrymme för frekvent packning är bra beslut, under idealiska förhållanden bör cachestorleken vara tillräcklig för att rymma alla populära frågor.

Ett annat sätt att ta bort cachade filer är att återställa cachen. När cachen återställs skapas en ny mapp, men den gamla cachen finns kvar. Detta gör att befintliga frågor mot den gamla cachen kan slutföras. Den gamla cachen raderas senare efter en viss tid. (konfigurerbart intervall) Cachen kan återställas av flera anledningar: om indexet inte kan deserialiseras korrekt vid start har användarpolicyn för webbapplikationen ändrats, innehållsdatabasen kan inte läsas. Cachen kan också rensas manuellt genom att anropa funktionen Microsoft.SharePoint.Publishing.PublishingCache.FlushBlobCache() från PowerShell.

Autentisering och BLOB-cache.

BLOB-cache är optimerad för anonym retur av filer. När en anonymt tillgänglig fil efterfrågas returnerar BLOB-cachen den innan autentisering görs.

Fördelarna med denna funktionsprincip kan erhållas i två fall.

1. Anonym åtkomst till webbplatsen är tillåten

2. Ofta begärda filer lagras i bibliotek som har alternativet aktiverat TillåtEveryoneViewItems.

När du skapar en portal baserad på mallen för publiceringsportalen skapas två bibliotek med parameteruppsättningen TillåtEveryoneViewItems. Dessa är biblioteken "Bilder" och "Site Collection Images". I alla fall, även om anonym åtkomst inte används, kommer BLOB-cachen att fungera, men WFE-servern måste kontakta SQL-servern för att kontrollera användarbehörigheter. (ACL)

Fortsättning följer….

MCT/MVP Ilya Rud

Baserat på dokumentet "SharePoint Server Caches Overview"

Om, efter uppdatering av konfigurationen, dina formulär flyter, rapporten slutar fungera och felfönster dyker upp, kan problemet troligen lösas genom att rensa cachen. Vi ska berätta hur.

Vad är cache?

1C:Enterprise-programmet är skapat på ett sådant sätt att det under sitt arbete ständigt strävar efter att optimera operationshastigheten. För detta ändamål skapas en "cache" på användarens dator, som lagrar ofta använd information, till exempel: plats och form på fönster, användartjänstdata, urvalsinställningar, typsnitt, etc.

Cachning låter dig minska antalet samtal till servern och därmed . Denna mekanism sparar tid, men innehåller också ett antal problem.

Om, efter uppdatering av konfigurationen, dina formulär flyter, rapporten slutar fungera och felfönster dyker upp, kan problemet troligen lösas genom att rensa cachen.

Hur rensar man cacheminnet?

Det finns två huvudsakliga sätt att rensa cachen.

1. Starta 1C-databasen med parametern “/ClearCache”.

Denna metod är mycket enkel. I infobasvalfönstret väljer du den vars cache du vill rensa. Klicka på knappen "Redigera".

I det sista fönstret Redigera infobas, ställ in startparametern "/ClearCache". Klicka på "Slutför" och starta infobasen.

Som ett resultat av ovanstående steg kommer klient-serverbegärans cache att rensas. Därför, om problemet låg i den lokala metadatacachen, fungerar inte denna cacherensningsmetod. När du använder den här metoden är det viktigt att förstå att mappen med temporära filer kommer att "bortkopplas" från infobasen, men Inte kommer att raderas från din dator.

2. Rensa 1C-cachen manuellt

För att radera cachefiler manuellt måste du hitta mapparna där cachen är lagrad. För operativsystem Win7 och högre temporära filer lagras på:

  • C:\Users\Användarnamn\AppData\Roaming\1C Och C:\Users\Användarnamn\AppData\Local\1C i mappar som börjar med "1cv8".
  • I Windows XP, i användarens mapp på Lokala inställningar\Programdata\1C\.
  • Om mappen AppData inte är synlig måste du konfigurera synligheten för dolda mappar.

Bilden nedan visar hur cachefiler ser ut - mappar med långa, oklara namn. I vårt fall finns det bara en fil.

För att rensa cacheminnet måste du ta bort dessa mappar.

Viktig! Du kan bara ta bort mappar när processerna för att arbeta med 1C:Enterprise är klara.

3. Rensa cachen i 1C på en server eller användares PC med hjälp av färdiga skript

På Internet kan du hitta färdiga skript för rengöring av tillfälliga 1C-filer. Användningen av sådana skript kan leda till oförutsägbara konsekvenser, så det rekommenderas endast för systemadministratörer och teknisk supportpersonal.

Denna metod hjälper till att rensa 1C-cachen på både klienten och servern. För att göra detta behöver du tillgång till motsvarande servermappar

4. Ytterligare

Om ett fel uppstår efter att ha använt ovanstående metoder för att rensa cacheminnet, till exempel " Ogiltigt datalagringsformat", fortfarande sparas, rekommenderas att stoppa och manuellt rengöra mappen reg_1541/SNNCCNTX. Den finns på datorn för den centrala 1C:Enterprise-servern i katalogen<рабочий каталог кластера> / <идентификатор информационной базы>.

Till exempel:

Var försiktig, allt i den här mappen kan inte rengöras. Jag kommer att lista vad som kan rengöras:

  • 1CV8Reg.lst – klusterregister (det lagrar en lista över registrerade infobaser, fungerande servrar och processer, korrespondens mellan klustret och ytterligare chef och en lista över administratörer.)
  • srvribrg.lst – lista över kluster (registrerade kluster och centrala serveradministratörer)
  • 1cv8ftxt – fulltext sökdata. De finns på den centrala 1c-servern: klusterarbetskatalog - infobasidentifierare
  • 1Cv8Log – databasregistreringslogg *.lgp och *.lgf.

Det är viktigt att komma ihåg att efter att ha rensat cachen kommer lanseringen av 1C att sakta ner lite.

Foton, vi lärde oss att cache och Bagge spelar en nyckelroll i skalbarheten och prestanda för webbplatsen.

Webbplatsen kan lagra data för att påskynda behandlingen av efterföljande förfrågningar på fyra nivåer:

  • klient;
  • nätverk;
  • server;
  • applikationsnivå.

Olika sidor på en webbplats delar ofta samma resurser. Användaren måste återanvända resurser under navigering. Bilder, skript och stilar kan cachelagras i månader, och själva dokumentsidan kan cachas i minuter i klientens webbläsare.

Cache på klientnivå

HTTP-huvuden är ansvariga för att avgöra om svaret kan cachelagras och för att bestämma hur länge data kommer att lagras. Följande exempel Cache-control header anger att svaret kan cachelagras i 7 dagar. Webbläsaren skickar om begäran om datalagring om lagringsperioden löper ut eller om användaren avsiktligt uppdaterar sidan.

En begäran och ett svar som kan cachelagras i 604800 sekunder.

Svaret kan också innehålla en senast ändrad eller Etag-huvud. Dessa rubriker behövs för att kontrollera om data kan återanvändas. En 304-svarsstatus indikerar att innehållet inte har ändrats och att en ny uppladdning inte krävs. Notera de parade rubrikerna Last-Modified och If-Modified-Since, samt datumen nedan:

Ett svar med rubriken "Last-Modified" följt av en begäran som använder den.

Etag-huvudet används med If-None-Match på liknande sätt för att utbyta svarskoder vid detektering av eventuella ändringar i innehåll.

En webbplats med genomtänkta HTTP-rubriker kommer att bli mer framgångsrika bland användarna. Dessutom kommer webbläsaren att spara tid och bandbredd.

Nätverksnivåcache

Klienter som begär samma innehåll från proxyservern.

Flera klienter som begär samma innehåll samtidigt.

Denna enkla men kraftfulla mekanism undviker röran på applikationssidan när det finns ett stort antal förfrågningar när innehållet löper ut.

Tanken bakom detta sist men inte minst tillvägagångssätt är att en proxyserver kan förbättra applikationens feltolerans. Det finns proxy_cache_use_stale-direktivflaggor för att leverera utgånget innehåll när applikationen returnerar en felstatus eller när kommunikationen mellan proxyservern och applikationen inte fungerar som förväntat.

En annan viktig faktor när du använder cachelagrar är tävlingsvillkoret som uppstår när olika instanser av en applikation får åtkomst till uncachad data samtidigt. Rails request caching API inkluderar en race_condition_ttl-egenskap för att minimera denna effekt.

Att förutse tävlingsförhållanden för cacher med flera applikationsinstanser är utmanande. Den optimala lösningen i det här fallet är att uppdatera cachedata utanför applikationstråden och använda cachedata i själva applikationen. I en mikrotjänstarkitektur kan du säkra kommunikationen mellan applikationen och tjänsten med hjälp av nginx, som beskrivs ovan.

Slutsats

Vi hoppas att den här artikeln hjälper dig att förstå och välja den bästa strategin för din applikation. HTTP-rubriker är det enklaste du kan och bör konfigurera för att optimera din applikations cachelagring. Använd andra strategier också när du upplever vissa prestationsproblem, men kom ihåg att för tidig optimering är roten till alla problem.

1999-04-17 Phil Keppeler

IP-cacheservrar förväntas vara mycket efterfrågade på företagsmarknaden 1999. Nedan kommer vi att titta på de senaste erbjudandena från tillverkare. Till skillnad från bandbredden i globala nätverk har minnet blivit mycket billigare.

IP-cacheservrar förväntas vara mycket efterfrågade på företagsmarknaden 1999. Nedan kommer vi att titta på de senaste erbjudandena från tillverkare.

Till skillnad från bandbredden i globala nätverk har minnet blivit mycket billigare. Enligt IDC-undersökningar kommer den totala prisnivån för globala nätverk att förbli densamma eller i bästa fall minska något. Samtidigt minskar minneskostnaden årligen med 31,4-39,8%.

Med tanke på dessa fakta blir IP-cachelagring attraktiv för att optimera bandbreddsutnyttjandet och förbättra nätverkseffektiviteten. Att hålla filer som ofta används närmare slutanvändarna minskar företagets bandbreddskrav globalt nätverk eller Internetanslutningar och, som ett resultat, eliminerar eller försenar behovet av kostsamma uppgraderingar. Det förbättrar också slutanvändarnas produktivitet eftersom objekt levereras med LAN-hastigheter.

Internetgemenskapen visste om fördelarna med cachning långt innan internet blev det kommersiella fenomen det är idag. Vanligtvis speglades filarkiv för Internettjänster som ftp, gopher och konferenser runt om i världen för att hålla populära filer så nära användarna som möjligt. Med tillkomsten av HTTP blev spegling ineffektiv på grund av den stora volymen, tidskänsligheten och slumpmässiga karaktären hos det begärda innehållet.

IP-cacheservrar är för HTTP vad spegling var för arkiveringsprotokoll. Alla cacheservrar är baserade på i huvudsak samma principer: de fångar upp förfrågningar om objekt från webbläsaren till webbservern och lagrar objekten som tas emot från servern på hårddisken innan de överförs till webbläsaren. Sålunda, vid efterföljande förfrågningar om samma objekt från andra webbläsare, returnerar cacheservern en kopia av objektet från sitt minne istället för att skicka en begäran till webbservern att erhålla det ursprungliga objektet. Helst bör en cacheserver utföra förfrågningar om objekt spara både tid och bandbredd. (Mer detaljerad beskrivning cachningsteknik finns i artikeln "Små cache är dyrt" i LAN nr 3 för i år.)

Under påtryckningar från både konsumenter och innehållsleverantörer har internetleverantörer blivit de primära användarna av IP-cache. Snabbare anslutningar som Digital Subscriber Line (DSL), IDSN och kabelmodem ger hopp om att den en gång svagaste länken i datakedjan var standardtelefonmodemet med en maximal dataöverföringshastighet på 56 Kbps./s - kommer att elimineras. I takt med att internetanslutningarna går snabbare kommer volymen av kopierade objekt att öka proportionellt, vilket kommer att leda till en ökning av trafiken på Internets stamnät. Samtidigt går innehållsleverantörer över till mer komplexa och stora dataformat, som strömmande ljud/video och Java-applets.

Som ett resultat av denna attack från båda sidor tvingas internetleverantörer leta efter fler effektiva sätt använder sin infrastruktur för att möta användarkrav. IP-caching var och förblir en viktig del av deras lösning.

Även om många internetleverantörer inser fördelarna med IP-cache, har företag ännu inte implementerat tekniken i stor skala. Enligt en rapport från februari 1998 från Collaborative Research har cirka 80 % av internetleverantörerna i USA tillkännagett planer på att implementera cachning inom de närmaste sex månaderna. Å andra sidan planerade bara 56 % av företagen att börja använda caching inom samma period. Men som experter förutspår kommer cachning 1999 att vara mycket efterfrågad på företagsmarknaden. Enligt Collaborative Research förväntas investeringarna i företagscacheteknik snabbt överträffa Internetleverantörernas investeringar, och de växer från 85 miljoner USD 1998 till över 1 miljard USD 2000 (se tabell).

Världsmarknaden för cachningsprodukter 1998-2002.
Marknadssegment 1998 1999 2000 2001 2002
Företagsanvändare 85 miljoner dollar421 miljoner dollar1 113 miljoner dollar2 108 miljoner dollar3 157 miljoner dollar
Internetleverantörer 103 miljoner dollar214 miljoner dollar376 miljoner dollar481 miljoner dollar576 miljoner dollar
Övrig 19 miljoner dollar63 miljoner dollar149 miljoner dollar259 miljoner dollar373 miljoner dollar
Total 207 miljoner dollar698 miljoner dollar1 638 miljoner dollar2 848 miljoner dollar4 106 miljoner dollar
Källa: Kollaborativ forskning, 1998

Denna trend har inte gått obemärkt förbi hos tillverkarna, och de omorienterar aktivt sina produkter till företagskunder. Till att börja med tillverkade avancerade produkter för internetleverantörer, började tillverkare inkludera erbjudanden i sina produktlinjer till ett relativt lågt pris och med en prestandanivå som var tillräcklig för företag. Dessutom har ett dussin nya leverantörer annonserat eller släppt cacheservrar baserade på industristandard hårdvara och programvara- till exempel servrar på Intel-plattformen med gratis Squid-cachingprogramvara - med målet att erbjuda produkter så billiga som möjligt.

MELLANHÄR SOM CACH?

De första cacheservrarna implementerades vanligtvis på basis av proxyservrar. Som sådana agerade de som objektförmedlare för en grupp användare, accepterade alla förfrågningar och skickade dem vidare till destinationen på Internet. Som en gemensam åtkomstpunkt för alla användare har proxyservrar visat sig vara extremt attraktiva för att implementera en mängd olika tilläggstjänster: innehållsfiltrering, användaridentifiering, händelseloggning och objektcachelagring. Tillsammans med en brandvägg gjorde proxyservern det möjligt att skapa en säker anslutning till Internet.

En av de första cache-aktiverade mellanhänderna var Harvest Cache-programvaruservern, som var resultatet av ett gemensamt projekt som finansierades 1994-1996 av Advanced Research Projects Agency (ARPA), National Science Foundation, NSF) och NASA. Sedan dess har minst ett dussin produkter marknadsförts som "caching-förmedlare". Noterbart är att Netscape Communications, Microsoft och Novell alla har cache-aktiverade proxyservrar som är tätt integrerade med deras andra företagsverktyg. Förutom cachning erbjuder deras produkter ett brett utbud av mellanliggande funktioner som användarautentisering, innehållsfiltrering, virusskanning, säkerhet och händelseloggning. Microsofts proxy körs på Windows NT 4.0; Proxyserver från Netscape - baserad på de flesta varianter av UNIX, såväl som Windows NT; BorderManager FastCache från Novell - på IntranetWare, NetWare 4.11 och NetWare 5.

En annan allmänt använd kommersiell cachningsförmedlare är Squid, en förlängning av Harvest Cache utvecklad av National Laboratory for Advanced Network Research (NLANR). Kanske för att det uppstod som en produkt av en kollektiv ansträngning i en miljö där standardiserad och accepterad programvara välkomnas och används i stor utsträckning, har Squid etablerat sig på marknaden för internetleverantörer och fortsätter att ha en relativt stark installerad bas.

Konfigurationer med cachingproxy har två huvudsakliga nackdelar. För det första, eftersom varje användares webbläsare måste konfigureras för att gå via en mellanhand, gör ett serverfel alla användare att förlora sin anslutning till Internet. För det andra, att gå in i konfigurationen av varje användares webbläsare med information om mellanhanden kan vara arbetskrävande i stora företag och i grunden en omöjlig uppgift för internetoperatören.

För att undvika dessa problem i man-in-the-midten-konfigurationer kan du implementera transparent cachelagring i ditt nätverk genom att installera en policyaktiverad router eller Layer 4-switch för att vidarebefordra trafik till en cacheserver eller grupp av servrar. Dessa enheter fångar upp all HTTP-trafik på port 80 och omdirigerar den till cachen. Cache körs HTTP-förfrågningar och returnerar objekten till webbläsaren. En verkligt transparent cachelösning måste stödja skalbarhet genom att balansera belastningen över flera cacheservrar, samt failover till backupservrar om en eller alla cacheservrar är otillgängliga. Exempel på Layer 4-växlingsenheter inkluderar ACEdirector från Alteon Networks och ServerIron från Foundry Networks.

DynaCaches Infolibria-cacheserver tar ett annat tillvägagångssätt och ger transparens utan att behöva en separat switch eller router. Detta uppnås med hjälp av DynaLink Redirector (DLR), en dedikerad Layer 4-switch som samverkar med DynaCache. DLR, en integrerad del av företagets cachestrategi, finns i nätverket och vidarebefordrar endast cachemissar till Internet. Enligt företaget kan denna strategi minska belastningen på routern med två tredjedelar.

PROGRAMVARA VS HÅRDVARA

År 1997, i en rapport med titeln "Why Caching Matters", förutspådde Forrester Research att Internetleverantörer och företag skulle migrera från mjukvarucacheservrar till dedikerade cachningsenheter. På samma sätt uppgav Dataquest i en rapport från juli 1998 att dedikerade enheter skulle dominera marknaden för cachning.

Det är därför inte förvånande att över ett halvdussin tillverkare släppte cachningsenheter 1998. De hävdar att deras produkter erbjuder bättre prestanda än deras mjukvarumotsvarigheter eftersom operativsystemet och cachningsservern är tätt integrerade med varandra och optimerade för cachning. De hävdar också att deras produkter är lättare att konfigurera och konfigurera och tillhandahåller säkrare plattformar eftersom de är mindre benägna att skapa säkerhetshål på grund av administrativa eller konfigurationsfel. Vanligtvis är mjukvarucacher, såsom cachingproxyn som diskuteras ovan, utformade med ett proxyfokus i åtanke, medan hårdvarucacher är utformade enbart för att stödja tung cachning. Trots detta kan många cachningsenheter användas i proxykonfigurationer.

Network Appliance var en av de första som erbjöd en dedikerad cachningsapparat. För att göra detta anpassade den NetCache-mjukvaran för hårdvaruprodukten. Network Appliance förvärvade programvaran NetCache (och köpte Peter Danzig, en av skördeprojektets chefsarkitekter, på köpet) tillsammans med ett litet nystartat företag, Internet Middleware.

Andra cachningsenheter som introducerades 1998 inkluderar Cisco Systems Cache Engine, CacheFlows CacheFlow och InfoLibrias DynaCache. Även om det inte är strikt en dedikerad enhet, kommer Sun Microsystems Netra Proxy förkonfigurerad på en UltraSPARC II-dator. Den innehåller Suns cachningsprogram och är optimerad för dessa funktioner.

På senare tid har relativt billiga cachningsenheter dykt upp på marknaden. De är baserade på standardiserad hårdvara och mjukvara och är förkonfigurerade serverenheter utformade för att göra cachning enklare och mer prisvärd. Detta tillvägagångssätt kan vara attraktivt för små företag eller till och med stora företag som vill dra fördel av fördelarna med arbetsgruppscache men är tveksamma på grund av de höga kostnaderna och komplexiteten hos tillgängliga lösningar. Priset på dessa produkter svävar runt 2 000 USD, medan de ovan nämnda lösningarna kostar minst 7 000 USD.

Tre exempel på billiga cachningsenheter är Packetstorm Technologies WebSpeed ​​​​och Cobalt Networks CacheQube och CacheRaQ. WebSpeed ​​​​säljs för mellan $2 100 och $7 100 beroende på cachestorlek. WebSpeed ​​​​använder Intel-processorer och ett gratis operativsystem Linux-system, samt Squid-cacheprogramvara. Företaget satsar på att kunderna kommer att uppskatta en låg kostnad, förkonfigurerad enhet som de kan installera i sina nätverk med minimal ansträngning. Cobalt Networks CacheQube och rackmonterade CacheRaQ är skalbara genom både DRAM-kapacitet och disk utrymme och genom att skapa ett kluster med flera enheter. CacheQube kostar $1 899 och CacheRaQ kostar $2 299 eller $2 799 beroende på konfiguration.

I ett försök att motverka experternas förutsägelser om att dedikerade cachningsenheter kommer att dominera marknaden, har Inktomi släppt Traffic Server, som företaget positionerar som en högpresterande cachningslösning riktad främst till Internetleverantörer och stora företag. Däremot fokuserar andra mjukvarucacher på medlings- och skyddsfunktioner lika mycket som cachningsfunktioner. Till $30 000 per CPU har Traffic Server också priset för en produkt av bärarkvalitet.

KOMPATIBILITET OCH STANDARDER

Internet Caching Protocol (ICP) går tillbaka till tidig cachingforskning vid Harvest Project och definierar hur flera IP-cacheservrar kan dela information om webbobjektens aktualitet och hur de hämtar objekt från andra cachar (i motsats till att hämta objekt från originalet) Webbserver). Med ICP kan serveradministratörer konfigurera cachen för att fråga andra cacheservrar som också stöder ICP för att se om de har den senaste informationen om webbobjekt. Till exempel kan en lokal cache be en uppströms cache för att se om den har en nyare kopia av en fil, och om den inte har det, om den har kontrollerat filens ålder på ursprungsservern. Även om uppströmsservern inte har mer ny version fil, kunde han nyligen ha verifierat att filen hade ändrats på ursprungsservern. Beroende på uppdateringsalgoritmen kan den lokala cachen använda denna information för att hämta en nyare version av objektet från ursprungsservern, eller använda en lokal kopia istället (se figur).

Polling av uppströmscachen introducerar ytterligare latens på grund av ökat överföringsavstånd och tid; tidsbesparingarna kommer dock att vara ganska betydande i många fall, eftersom begäran inte behöver resa hela vägen till servern med det ursprungliga objektet. Dessutom kommer att tillhandahålla objekt från ICP-kommunicerande servrar som är placerade nära mottagaren att minska belastningen på Internet-stamnätet, vilket frigör bandbredd för Internet-gemenskapen som helhet. Nästan alla cachinglösningar stöder idag ICP.

I likhet med ICP är Caching Array Routing Protocol (CARP) ett protokoll för att dela cachingbelastningen över en lokal serverflotta. Det utvecklades av Microsoft och skickades till World Wide Web Consortium (W3C) som ett standardförslag på Internet. Förutom Microsoft har ett dussintal andra leverantörer, inklusive Packetstorm Technologies och Sun, meddelat stöd för CARP.

För att göra det möjligt för Cache Engine att kommunicera med sina routrar, utvecklade Cisco Web Cache Communication Protocol (WCCP). Använder WCCP, en Cisco-router med iOS-stöd fångar upp HTTP-förfrågningar som kommer från webbläsare och omdirigerar dem till en cacheserver eller dedikerad enhet. WCCP stöder skalbarhet genom att distribuera förfrågningar över flera cacheservrar baserat på deras tillgänglighet.

I november 1998 började Cisco licensiera WCCP till andra tillverkare av cachningsprodukter. Inktomi och Network Appliance har meddelat planer på att inkludera WCCP-stöd i framtida utgåvor av sina produkter.

MARKNADSINDIKATORER

Även om det finns en del kontroverser angående siffrorna, förväntas marknaden för internetcacheprodukter växa avsevärt under de kommande fyra åren. Collaborative Research räknar med att marknaden kommer att växa från 206 miljoner USD 1998 till över 4 miljarder USD 2002.

Med tanke på dessa siffror är det inte förvånande att stora mjukvaru- och hårdvarutillverkare och utvecklare försöker använda sin position för att penetrera cachingmarknaden. Till exempel, med en stor installerad bas av serveroperativsystem förlitar sig Novell på en tät integration av BorderManager med sina andra produkter för att locka uppmärksamhet från företagskunder.

Precis som Novell tävlar Microsoft och Sun om dominansen på marknaden för Internetprogramvara och server. De har båda stora installerade baser av webbservrar och positionerar sina produkter – med tillhörande arsenal av förmedlingsmöjligheter – som väsentliga komponenter för en integrerad webbapplikationssupportmiljö. Med en stor installerad bas av nätverksenheter kan Cache Engines snäva integration med andra Cisco-nätverkskomponenter hjälpa till att driva en bred användning.

PRIS DET DU BEHÖVER

När du bestämmer dig för att implementera cachning i ditt nätverk har du ett urval av produkter från gratis till de som kostar $100 000 eller mer. Generellt gäller att ju dyrare produkten är, desto kraftfullare är den.

I den nedre delen av prisskalan, där mjukvarucacheservrar nyligen har dominerat, kan du nu hitta ett dussin cachningsenheter. Använder sig av gratis produkt, till exempel Squid, som finns tillgänglig i både källkod och förkompilerad form, behöver du en dator att installera den på. För att undvika onödiga utgifter kan du återanvända befintlig utrustning för att utföra cachningsuppgifter.

Netscape, Microsoft och Novell erbjuder kraftfulla programvarucacheservrar med ett brett utbud av medlingsfunktioner. Deras produkter kostar runt $1000 per CPU. Precis som med Squid kan den totala kostnaden för lösningen minskas genom att använda befintlig hårdvara. Annars måste kostnaden för inköp av utrustning ingå i utgiftsdelen.

Phil Keppeler är en webbutvecklare på ett design- och programmeringsföretag. Han kan kontaktas på: [e-postskyddad].

Recenserade produkter

Microsoft

Netscape Communications

Nationellt laboratorium för avancerad nätverksforskning

Alteon nätverk

ACE-direktör
http://ircache.nlanr.net/Cache/FAQ/ircache-faq-9.html .

Brian D. Davidson, Ph.D. från Rutgers University, har en informationssida om cachning av resurser på sin server http://www.cs.rutgers.edu/~davison/Web-caching/. Den innehåller nyheter om cachning, en lista och tabell över cachningsförmedlare, en bibliografi, etc.

Om du vill lära dig mer om skördeprojektet finns relevanta länkar till forskningsresultat, mötesutskrifter och vanliga frågor tillgängliga på: http://www.harvest.transarc.com .

CacheNow är en pågående kampanj för att främja storskalig cachning för att åtgärda bandbreddsbrist och övervinna begränsningar i internetinfrastrukturen. Information om det finns på http://vancouver-Webpages.com/CacheNow/ .



  • Översättning

En ganska detaljerad och intressant presentation av material angående cachen och dess användning. Del 2 .

Från översättaren: vänligen rapportera stavfel och felaktigheter i ett personligt meddelande. Tack.

En webbcache finns mellan en eller flera webbservrar och en klient eller flera klienter, och övervakar inkommande förfrågningar samtidigt som kopior av svaren lagras – HTML-sidor, bilder och filer (gemensamt kända som representation(representationer); cirka. översättare - låt mig använda ordet "innehåll" - det gör enligt min mening inte så ont i örat), för egna behov. Sedan, om en annan begäran kommer med en liknande URL, kan cachen använda det tidigare lagrade svaret istället för att fråga servern igen.

Det finns två huvudorsaker till att webbcache används:

1. Minskad väntetid- eftersom data på begäran tas från cachen (som är placerad "närmare" klienten) tar det mindre tid att ta emot och visa innehåll på klientsidan. Detta gör webben mer responsiv.

2. Nedgång nätverkstrafik - återanvändning av innehåll minskar mängden data som överförs till klienten. Detta sparar i sin tur pengar om kunden betalar för trafiken och håller bandbreddskraven lägre och mer flexibla.

Typer av webbcacher

Webbläsarens cache
Om du granskar inställningsfönstret i en modern webbläsare (t.ex. Internet Explorer, Safari eller Mozilla), kommer du förmodligen att märka ett Cache-inställningsalternativ. Detta alternativ låter dig välja ett område hårddisk på din dator för att lagra tidigare visat innehåll. Webbläsarens cache fungerar enligt ganska enkla regler. Den kontrollerar helt enkelt om data är "färsk", vanligtvis en gång per session (det vill säga en gång i den aktuella webbläsarsessionen).

Denna cache är särskilt användbar när användaren trycker på bakåtknappen eller klickar på en länk för att se sidan de just tittade på. Dessutom, om du använder samma navigeringsbilder på din webbplats, kommer de att hämtas från webbläsarens cache nästan omedelbart.

Proxycache
Proxycache fungerar på en liknande princip, men i mycket större skala. proxyservrar betjänar hundratals eller tusentals användare; stora företag och Internetleverantörer konfigurerar dem ofta på sina brandväggar eller använder dem som enskilda enheter(förmedlarna).

Eftersom proxyservrar inte är en del av klienten eller ursprungsservern, men fortfarande möter nätverket, måste förfrågningar vidarebefordras till dem på något sätt. Ett sätt är att använda din webbläsarinställningar för att manuellt tala om vilken proxy den ska kontakta; Ett annat sätt är att använda en interception proxy. I det här fallet behandlar proxyservrar webbförfrågningar som skickas till dem av nätverket utan att klienten behöver konfigurera dem eller ens veta om deras existens.

Proxycacher är en slags delad cache: istället för att tjäna en person arbetar de med ett stort antal användare och är därför väldigt bra på att minska latens och nätverkstrafik. Främst för att populärt innehåll efterfrågas många gånger.

Gateway-cache
Även kända som "omvända proxycacher" eller "surrogatcacher" är gateways också mellanhänder, men istället för att användas av systemadministratörer för att spara bandbredd, används de vanligtvis av webbansvariga för att göra sina webbplatser mer skalbara, tillförlitliga och effektiva.

Förfrågningar kan vidarebefordras till gateways med ett antal metoder, men vanligtvis används någon form av lastbalanserare.

Content delivery-nätverk (CDN) distribuerar gateways över hela Internet (eller någon del av det) och serverar cachelagrat innehåll till intresserade webbplatser. Speedera och Akamai är exempel på CDN.

Denna handledning fokuserar i första hand på webbläsarcacher och proxyservrar, men en del av informationen är också relevant för dem som är intresserade av gateways.

Varför ska jag använda det

Caching är en av de mest missförstådda teknikerna på Internet. Särskilt webbansvariga fruktar att förlora kontrollen över sin webbplats eftersom proxyservrar kan "gömma" sina användare, vilket gör det svårt att övervaka trafiken.

Tyvärr för dem (webbansvariga), även om webbcache inte fanns, finns det för många variabler på Internet för att säkerställa att webbplatsägare skulle kunna få en korrekt bild av hur användare interagerar med webbplatsen. Om detta är ett stort problem för dig kommer den här guiden att lära dig hur du får den statistik du behöver utan att göra din webbplats "cache-hatande".

Ett annat problem är att cachen kan lagra innehåll som är inaktuellt eller förfallit.

Å andra sidan, om du designar din webbplats ansvarsfullt kan en cache hjälpa till med mer snabb laddning och bibehålla belastningen på servern och internetanslutningen inom de acceptabla gränserna. Skillnaden kan vara dramatisk: en icke-cache-webbplats kan ta några sekunder att ladda; medan fördelarna med att använda caching kan få det att verka omedelbart. Användare kommer att uppskatta sajtens snabba laddningstid och kan besöka den oftare.

Tänk på det så här: många stora internetföretag spenderar miljontals dollar på att skapa servrar runt om i världen för att replikera innehåll för att göra dataåtkomst så snabbt som möjligt för sina användare. Cachen gör samma sak för dig och är mycket närmare slutanvändaren.

CDN:er, ur detta perspektiv, är en intressant utveckling eftersom, till skillnad från många proxycacher, är deras gateways anpassade till webbplatsens intressen som cachelagras. Men även när du använder ett CDN måste du fortfarande tänka på att det kommer att finnas en proxy och efterföljande cachning i webbläsaren.

För att sammanfatta, kommer proxyer och webbläsarcache att användas oavsett om du gillar det eller inte. Kom ihåg att om du inte konfigurerar din webbplats för att cache korrekt kommer den att använda standardinställningarna för cache.

Hur webbcache fungerar

Alla typer av cache har en specifik uppsättning regler som de använder för att avgöra när innehåll ska hämtas från cachen om det är tillgängligt. Vissa av dessa regler ställs in av protokoll (HTTP 1.0/HTTP 1.1), vissa ställs in av cacheadministratörer (webbläsaranvändare eller proxyadministratörer).

Generellt sett är dessa de flesta generella regler(oroa dig inte om du inte förstår detaljerna, de kommer att förklaras nedan):

  1. Om svarsrubriken säger åt cachen att inte spara dem, kommer den inte att spara dem.
  2. Om begäran är auktoriserad eller säker (det vill säga HTTPS) kommer den inte att cachelagras.
  3. Cachat innehåll anses vara "färskt" (det vill säga kan skickas till klienten utan att kontrollera från ursprungsservern) om:
    • Den har en utgångstid eller annan rubrik som styr livslängden och har inte gått ut än.
    • Om cachen nyligen kontrollerade innehållet och det ändrades för ganska länge sedan.
    Färskt innehåll tas direkt från cachen, utan att kontrollera från servern.
  4. Om innehållet är inaktuellt kommer ursprungsservern att bli ombedd att validera det eller tala om för cachen om den befintliga kopian fortfarande är uppdaterad.
  5. Under vissa omständigheter – till exempel när den är offline – kan cachen behålla inaktuella svar utan att kontrollera med ursprungsservern.
Om svaret inte har en validator (ETag eller Last-Modified header) och inte innehåller någon explicit färskhetsinformation, kommer innehållet vanligtvis (men inte alltid) att anses vara ocachebart.

Friskhet(friskhet) och godkännande(validering) är de viktigaste sätten på vilka cachen fungerar på innehåll. Nytt innehåll kommer att vara tillgängligt direkt från cachen; Giltigt innehåll kommer att undvika att skicka om alla paket om det inte har ändrats.

Publikationer om ämnet