Projet

Général

Profil

Wiki » Historique » Version 14

Benjamin Bohard, 24/04/2015 09:11

1 1 Benjamin Bohard
h1. Wiki
2 1 Benjamin Bohard
3 1 Benjamin Bohard
h2. Configuration du proxy-cache
4 1 Benjamin Bohard
5 1 Benjamin Bohard
Livrer une configuration ubuquiste pour squid n'est pas possible et il est fréquent de devoir ajuster les paramètres du proxy cache dans la phase d'administration.
6 1 Benjamin Bohard
7 1 Benjamin Bohard
L'approche qui sera mise en place proposera des profils orientant dans le choix de jeux de valeurs pour les paramètres de squid.
8 1 Benjamin Bohard
9 1 Benjamin Bohard
h3. Profils d'utilisation
10 1 Benjamin Bohard
11 1 Benjamin Bohard
Les profils d'utilisation d'un proxy-cache sont déterminés par le type de fichiers demandés, leur variété, leur fréquence de consultation.
12 1 Benjamin Bohard
Ces facteurs déterminants peuvent évoluer au cours de l'utilisation du serveur, aussi il ne faut pas compter sur la pérennité du choix fait à l'instanciation du serveur.
13 1 Benjamin Bohard
14 2 Benjamin Bohard
h3. Efficacité du proxy-cache
15 1 Benjamin Bohard
16 1 Benjamin Bohard
Le rôle de la fonction cache du proxy est d'alléger la charge sur la connexion à Internet et de fluidifier l'obtention de ressources en en stockant une partie en local.
17 1 Benjamin Bohard
On peut mesurer l'efficacité du proxy-cache avec trois marqueurs :
18 3 Benjamin Bohard
* hit rate : le rapport du nombre de fichiers distribués depuis le cache sur le nombre total de fichiers demandés ;
19 3 Benjamin Bohard
* byte hit rate : le rapport du volume des fichiers distribués depuis le cache sur le volume total des fichiers demandés ;
20 3 Benjamin Bohard
* temps de réponse : le temps nécessaire pour distribuer les fichiers demandés (depuis le cache ou non).
21 3 Benjamin Bohard
22 3 Benjamin Bohard
Selon les configurations, le temps de réponse peut-être plus long dans le cas d'une distribution depuis le cache.
23 3 Benjamin Bohard
24 3 Benjamin Bohard
h3. Paramètres d'optimisation
25 3 Benjamin Bohard
26 10 Benjamin Bohard
h4. Algorithmes de suppression des objets du cache
27 10 Benjamin Bohard
28 10 Benjamin Bohard
Les différents algorithmes privilégient un aspect du cache : hit rate, byte hit rate, etc.
29 11 Benjamin Bohard
Ces algorithmes doivent être en phase avec d'autres paramètres (taille maximale d'objets à mettre en cache par exemple).
30 3 Benjamin Bohard
31 5 Benjamin Bohard
h5. lru
32 5 Benjamin Bohard
33 5 Benjamin Bohard
least recently used
34 5 Benjamin Bohard
35 5 Benjamin Bohard
h5. lfuda
36 5 Benjamin Bohard
37 5 Benjamin Bohard
least frequently used dynamic aging
38 5 Benjamin Bohard
39 5 Benjamin Bohard
h5. gdsf
40 5 Benjamin Bohard
41 5 Benjamin Bohard
greedy dual size frequence
42 3 Benjamin Bohard
43 3 Benjamin Bohard
h4. Cache
44 3 Benjamin Bohard
45 3 Benjamin Bohard
h5. Taille
46 4 Benjamin Bohard
47 3 Benjamin Bohard
Relation forte avec la mémoire vive disponible : l'index du cache est gardé en mémoire vive
48 3 Benjamin Bohard
49 3 Benjamin Bohard
h5. FS sous-jacent
50 3 Benjamin Bohard
51 9 Benjamin Bohard
* un filesystem voire un disque propre (notamment pour permettre de remettre le cache à zéro plus rapidement et pour limiter la cohérence;
52 3 Benjamin Bohard
* journalisation ;
53 3 Benjamin Bohard
* option noatime.
54 3 Benjamin Bohard
55 3 Benjamin Bohard
h5. Structure du cache
56 4 Benjamin Bohard
57 6 Benjamin Bohard
h6. ufs
58 6 Benjamin Bohard
59 7 Benjamin Bohard
Le cache est géré dans une arborescence à deux niveaux.
60 7 Benjamin Bohard
61 7 Benjamin Bohard
L'accès et la création des fichiers sont gérés par le processus squid. Certaines fonctions sont bloquantes et participent au ralentissement du service.
62 6 Benjamin Bohard
63 6 Benjamin Bohard
h6. aufs
64 6 Benjamin Bohard
65 8 Benjamin Bohard
Le cache est géré dans une arborescence à deux niveaux (idem ufs).
66 8 Benjamin Bohard
Un nombre de threads par cache_dir est en charge d'accéder et de créer les fichiers dans le cache. Le nombre de fichiers ouvrables (file descriptors) est mutualisé. Selon la version de squid, tout ou partie des opérations sur le cache sont asynchrones.
67 6 Benjamin Bohard
68 6 Benjamin Bohard
h6. diskd
69 1 Benjamin Bohard
70 8 Benjamin Bohard
Le cache est géré dans une arborescence à deux niveaux (idem ufs).
71 6 Benjamin Bohard
Un processus indépendant est en charge du cache.
72 6 Benjamin Bohard
73 1 Benjamin Bohard
h6. rock (pour Trusty)
74 1 Benjamin Bohard
75 9 Benjamin Bohard
Un fichier
76 9 Benjamin Bohard
77 9 Benjamin Bohard
h2. Étude de cas
78 9 Benjamin Bohard
79 9 Benjamin Bohard
h3. Paramètres par défaut dans le module Amon
80 9 Benjamin Bohard
81 12 Benjamin Bohard
LRU avec une taille d'objets à 32768
82 12 Benjamin Bohard
UFS
83 4 Benjamin Bohard
84 12 Benjamin Bohard
h3. Adaptation expérimentée à Nouméa
85 12 Benjamin Bohard
86 13 Benjamin Bohard
h4. Paramètres
87 13 Benjamin Bohard
88 12 Benjamin Bohard
LFUDA avec une taille d'objets à 32768
89 12 Benjamin Bohard
UFS
90 12 Benjamin Bohard
délai d'abandon à 0 pour répondre aux requêtes superflues répétitives
91 13 Benjamin Bohard
taille du cache portée à 50000
92 13 Benjamin Bohard
L1 15
93 13 Benjamin Bohard
L2 256
94 13 Benjamin Bohard
95 13 Benjamin Bohard
h4. Commentaire
96 13 Benjamin Bohard
97 13 Benjamin Bohard
La taille d'objets est bien en adéquation avec l'algorithme choisit.
98 13 Benjamin Bohard
99 13 Benjamin Bohard
Le type de cache ne permet pas des accès asynchrones au cache.
100 13 Benjamin Bohard
101 13 Benjamin Bohard
La taille du cache présuppose de disposer d'au moins 5 Go de mémoire vive sur un système 64bit rien que pour l'index des objets en cache.
102 14 Benjamin Bohard
Pour un parcours rapide des répertoires du cache, il est plus ou moins admis qu'il faut maintenir le nombre d'objets dedans sous un seuil raisonnable (quelques centaines de fichiers dans chaque dossier du dernier niveau du cache).
103 14 Benjamin Bohard
Le nombre d'objets par dossier peut être grossièrement estimé en fonction d'une taille moyenne d'objet et du nombre de dossier de dernier niveau :
104 14 Benjamin Bohard
<pre>
105 14 Benjamin Bohard
         (taille_cache / taille_moy_objet)
106 14 Benjamin Bohard
nb_obj = ---------------------------------
107 14 Benjamin Bohard
                    (L1 x L2)
108 14 Benjamin Bohard
</pre>
109 12 Benjamin Bohard
110 3 Benjamin Bohard
h3. Profilage du proxy-cache
111 12 Benjamin Bohard
112 12 Benjamin Bohard
h4. squidclient
113 12 Benjamin Bohard
114 12 Benjamin Bohard
h4. web polygraph
115 12 Benjamin Bohard
116 12 Benjamin Bohard
http://squidbook.org/extras/pm4-pf2.pg.txt