Squid memòria cau - Part 2

Squid no és només un servei de proxy i cache, pot fer molt més: gestionar acl (llistes d'accés), filtrar contingut, fins i tot pot fer filtrat SSL i tot en mode transparent (mètode de proxy - sense haver de configurar en les opcions de servidor intermediari dels seus navegadors, és com man in the middle, ningú sap que hi és). Llavors comunament veig com es malgasta tot el potencial d'aquesta aplicació per no saber configurar cadascuna de les seves parts.

Ara l'interessant que fa squid és la memòria cau (al meu entendre). El teu em diràs ¿per què fer memòria cau ?, la raó és senzilla, administrar millor l'ús de la teva velocitat i ample de banda, és la primera preocupació. Pensa detingudament, 1000 persones en la teva empresa consultant cada 5 minuts, pàgines en comú, Google, Hotmail, Gmail, etc ... perquè vas a descarregar una vegada i una altra imatges, banners, publicitat, continguts html, tot això són coses estàtiques, no canvien tan sovint, millor tenir-les emmagatzemades en la teva xarxa local i lliuraments una còpia que consideres recent dins de les configuracions que vas considerar.

Com es fa ?, senzill amb la següent sentència:

refresh_pattern [-i] regex min percent max [options]

Com sempre dic, no creen en tot, així que et convido a llegir de la font oficial. Et recomano llegir el manual d'aquesta sentència AQUÍ

la sentència refresh_pattern sempre serà la nostra etiqueta per afegir nous paràmetres per fer memòria cau.

Important les teves llistes de memòria cau han de ser seqüencials, perquè una vegada faci matx amb la primera en què coincideixi amb l'objecte no seguirà llegint els teus altres regles

Les expressions regulars diferencien majúscula de minúscules, per tant no és el mateix flv que FLV però pots evitar això si així ho desitja usant l'opció -i . Llavors quedaria així refresh_pattern -i

'Min': és el temps (minuts) en què un objecte sera considerat com «recent o fresc» i si no té alguna etiqueta explicita de «expirat». Per defecte squid recomana que sigui 0, per qüestions que algunes aplicacions dinàmiques poden comportar estrany, pur bla bla bla, realment aquest valor ha de ser un nombre que tu consideris útil i efectiu per als elements que vols fer memòria cau, exemple: jpg, 1440 minuts (un dia) em sembla bé, no és com que si en una pàgina canvien les imatges d'un post cada 5 minuts.

'Percent' és el percentatge que de l'edat d'un objecte (des de l'última modificació) serà considerat «recent o fresc». T'explico, pot ser que fent un reload o refresh constant per veure les ultimes modificacions que es van fer en una pàgina web, squid podria considerar si ja té diguem un 50% de el temps complert entre min y màx, Tornar a descarregar aquest objecte d'internet i donar-te una còpia nova.

'Max' és el límit per sobre o igual que 'Min' que tant de temps un objecte és considerat «recent o fresc», suposem que una imatge d'alguna pàgina només va ser consultada un cop per un usuari, aquest objecte ja va complir el seu temps min, Però no el màx, Llavors quan sigui consultat novament, es lliurés una còpia de memòria cau.

Options:
override-expire
override-lastmod
reload-into-ims
ignore-reload
ignore-no-store
ignore-private
max-stale=NN
refresh-ims
store-stale

Aquestes opcions es van fer majoritàriament per ignorar comportaments preestablerts en llenguatges i protocols, per així garantir l'ús efectiu de la memòria cau.

override-expire

Reforça el temps mínim d'un objecte, tot i que el servidor vaig enviar un temps d'expirar menor (exemple coses com header o Cache-Control: max-age). Si fem això sortirà un «revisió de resultats» dient coses com aquesta «VIOLATES the HTTP standard» però això és només advertències que podem ignorar. Ara si el temps que envia un servidor és més gran llavors squid prengués el temps (de venciment) de servidor

override-lastmod

Reforça el temps mínim d'un objecte, encara que aquest objecte hagi estat modificat recentment.

reload-into-ims

La explicació curta, és que evita que quan premem el botó de refrescar o fem una petició no-cache, squid lliurés memòria cau si no ha estat «modificat des» i / o si no hi ha algun «headers» a la pàgina

ignore-reload

Ignora l'acció dels usuaris de pressionar el botó de recarregar o refrescar pàgina

ignore-no-store

IIgnora qualsevol regla en «headers» de no fer memòria cau, per exemple de vídeos

ignore-private

Ignora qualsevol regla en «headers» de contingut privat que no s'ha de fer memòria cau, exemple: contingut de facebook.

refresh-ims

Squid contacta amb el servidor, per garantir si l'objecte és el més nou. Si ho és llavors lliurés memòria cau

store-stale

Squid guardés totes aquestes respostes, encara que no tenen data de caducitat, això és molt poc pràctic a causa que usualment no poden ser reutilitzades. Si decideixes habilitar-has de declarar max-stale = NN

max-stale=NN

Si habilitaste l'anterior, has de declarar un temps màxim de vida per a aquesta resposta o factor. Squid no lliurament objectes d'aquest estil sinó el pot validar amb la font

Aquí els deixo una taula de com funciona l'estat de fresc «FRESH» segons els valors que hem parlat:

  • FRESH if expiri> now, else Stale
  • Stale if age> max
  • FRESH if lm-factor <percent, else Stale
  • FRESH if age <min else stale

Aquí una configuració d'exemple per a una empresa en específic amb molt d'espai en disc, bons equips i bon ample de banda

refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-ms|ram|rpm|exe|inc|cab|qt)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vob)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims

refresh_pattern -i \.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-flv)$ 43200 99% 43200 ignore-no-store ignore-must-revalidate override-expire override-lastmod reload-into-ims
cache_mem 8092 MB

Ara la memòria cau no és només en disc dur, també podem fer memòria cau en memòria ram, aquest valor és per cada procés squid, així que has prendre-ho en consideració quan fas servir redirectors com squidGuard

maximum_object_size_in_memory 1024 KB

La mida màxima de l'objecte en memòria que squid emmagatzemés en RAM. També pots declarar un mínim.


memory_replacement_policy heap GDSF
cache_replacement_policy heap GDSF

Com veuen un és la política per al reemplaçament de memòria cau en memòria RAM i una altra en disc dur. Existeixen 2 polítiques GDSF i LFUDA. La primera busca millorar el percentatge d'encerts de memòria cau, tenint molts objectes petits a la mà, el segon busca el contrari, el manté objectes en memòria cau sense importar la seva mida.

La pregunta que m'imagino que m'estàs fent en aquest moment és Quin ús ?, bé si el teu consideres que en el teu entorn fan moltes consultes i poques descàrregues fa servir GDSF si per contra fan moltes descàrregues i poques consultes LFUDA. Això si et recomano LFUDA quan vas a fer, no sé, cau en 1TB de disc, és mes eficient.

maximum_object_size 4 MB

La mida màxima que pot tenir un objecte per a ser emmagatzemat

cache_dir aufs /media/proxy249/cache 100 16 256

On estarà emmagatzemat la memòria cau, atenció aquí, important és si fas servir ufs, aufs o diskd, els 3 funcionen més o menys igual, la diferències aquesta és que aufs i diskd treballen amb processos separats per fer les operacions I / O en disc dur i evitar que els processos de squid es quedin penjats durant aquestes operacions, addicionalment diskd pots especificar la quantitat de fils que vas a disposar per a aquesta tasca. Jo recomano aufs si tens un bon equip.

Mida 100 (megues), pots col·locar 100000 són gairebé 100 GB depèn de la teva disponibilitat. 16 és el nombre de carpetes, i 256 és el nombre de sub-carpetes. Pots jugar amb els dos valors depèn que tan ràpid siguin els teus discos i que tant recursos tens.


cache_swap_low 90
cache_swap_high 95

Aquestes opcions són els valors de reemplaçament d'objectes, és el valor mínim i màxim com a marca d'aigua segons squid, on aquests números són en percentatge (%), i en memòria cau molt petits un 5% com aquesta ara mateix serien diguem 300 objectes per segons , però en caches molt grans estaríem parlant de milers de MB

Bé aquí els deixo, això per ara, comentin i també prengui en consideració aquells que em deien que no podien fer memòria cau i filtrat de pàgines https (SSL) en squid 3.5 o superior, se'ls portaré aviat, romanguin atents a aquest bloc.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Eng. Jose Albert va dir

    Excel·lent complement a la primera part!

    Hi ha molta literatura a l'respecte sobre Squid, però anar a el gra en les seves opcions més pràctiques amb les seves respectives aclaridores i possibles escenaris reals d'ús no sempre es troben a la mà!

    Com sempre, espero ansiós la tercera part de la mateixa!

    1.    BrodyDalle va dir

      Gràcies pel teu comentari. És correcte, una explicació concisa de tots els elements rellevants, i unes configuracions de les millors pràctiques. No obstant això sempre estic atent als seus comentaris i pròpies experiències.

  2.   artus va dir

    Hola tinc un problema amb les actualitzacions de Windows i els antivirus. Tinc aproximadament 120 pc al meu institució. Em podries donar una idea de com millorar aquesta situació. Gràcies per la teva ajuda i felicitacions per l'article.

    1.    BrodyDalle va dir

      hola, gràcies per participar .. doncs si et puc ajudar, però Explicame bé com és el teu problema, no pots descarregar les actualitzacions? col·locar intermediari en opcions d'Internet i igual en les opcions de servidor intermediari del teu navegador ?, revisaste els ports ?, o és que vols fer memòria cau d'aquestes actualitzacions?

      1.    artus va dir

        El que necessito és que cada vegada que un equip descarregueu una actualització de Windows o de l'antivirus, aquesta es quedi a la memòria cau per un període d'un mes aproximadament, d'aquesta manera voldria estalviar ample de banda, atès que tots els matins cada vegada que inicien tots els ordinadors comencen a descarregar les mateixes actualitzacions cadascuna i se satura la connexió.

        Gràcies per la teva ajuda.

    2.    Mario va dir

      Un servidor amb Squid serveix, ja que són simples descàrregues http sense xifrar. Altres solucions per memòria cau són WSUS i Altiris, normals en empreses.

      1.    artus va dir

        Gràcies Mario ho tindré en compte.

    3.    BrodyDalle va dir

      ok llest, entenc, txeca aquest enllaç. http://wiki.squid-cache.org/SquidFaq/WindowsUpdate. per fer memòria cau d'antivirus, has de saber d'on es descarreguen les actualitzacions i baix que extensió (exemple .exe) i fer memòria cau de la mateixa ...

  3.   artus va dir

    Gràcies per la teva ajuda.

  4.   Erick va dir

    Bon dia amics, podrien donar-me suport amb el meu cas. ja que tinc squid 2.7 .STABLE9 en un debian 6, i tinc tot configurat i a l'muntar en un entorn de 10 pc, em correu normal, el problema rau quan ho suma per 90 pc, només dura uns segons funcionant i d'ahi tots es queden sense internet. Podrien donar-me suport?

  5.   JOSE RIVES va dir

    Excel·lent explicació, bàsica però molt clara i precisa. En el personal la millor explicació que he pogut llegir.
    Tinc un dubte ¿és possible fer memòria cau d'aplicacions per Android com les Apk i xapk?
    I, com seria la forma correcta per configurar la memòria cau dinàmic qualsevol que fos l'origen dels arxius?
    Ús pfSense 2.4.5.