Hvornår en delt proxy-cache hjælper en crawler
Vurder gentagne ressourcer, friskhed og crawlerens faktiske hentninger, før du forventer, at en delt forward-proxy-cache forbedrer gennemstrømningen.
Antag, at flere arbejdere i en browser åbner forskellige sider fra ét websted. Siderne refererer til samme stylesheet, logo og scriptpakke. En delt forward-cache kan gøre den første hentning nyttig for senere arbejdere, når svarene kan genbruges.
Skift nu arbejdsbelastningen: hver arbejder henter kun ét HTML-dokument og indlæser aldrig de linkede ressourcer. Det fælles stylesheet findes stadig i markup, men ingen arbejder anmoder om det. Det bidrager intet til proxyens cache-hitrate.
Start med de anmodninger, din crawler faktisk sender
En browser, der gengiver en side, og en HTTP-klient, der henter dens kilde, skaber forskellige sæt anmodninger. Undersøg disse sæt, før du vælger et cachedesign.
| Arbejdsbelastning | Potentiale for delt genbrug |
|---|---|
| Arbejdere henter gentagne gange de samme offentlige aktiver | Nyttigt når regler for friskhed og cache-nøgle tillader det |
| Hver anmodning har en unik URL eller svadvariant | Lille overlap at genbruge |
| Et svar skal revalideres før genbrug | Kan spare svarbytes, men kræver stadig en tur til upstream |
| Arbejdere opfylder allerede anmodninger fra deres egen lokale cache | Disse anmodninger når måske aldrig den delte proxy |
URL-lighed alene er ikke nok. Svarets friskhedspolitik og felter navngivet af Vary kan skelne repræsentationer. Privat, ikke-lagringsegnet eller autentificeret indhold kræver de gældende regler for delt cache; det bør ikke tvinges ind i ét offentligt resultat blot for at hæve hit-tallet.
For almindelig HTTPS CONNECT-trafik fører forward-proxyen en krypteret tunnel og har ingen HTTP-objekter indeni at cache. En udrulning med TLS-inspektion har en anden tillids- og behandlingsadfærd. Medtag den faktiske tilstand, når du vurderer, om objektcaching er tilgængelig.
Et cache-hit kan undgå en hentning fra upstream, mens et miss stadig betaler for mellemleddet. Sammenlign afsluttede nyttige bytes, upstream-trafik og latenstid for den tilsigtede belastning. Antal tråde beskriver samtidighed; det beskriver ikke, hvor meget genbrugeligt indhold disse tråde deler.