1.6.5.8.11.1. Mise en cache pour les versions jusqu'à 9.07

1.6.5.8.11.1.1. Description des différentes caches

Détail de $CADENAS_SETUP -> geomsearch.cfg

[Cache_Local_Search]
maxOpenIndexCount=100
linIndexCacheSize=0
sampleLineListCacheSize=0
pivotDistListCacheSize=0
logFileName=

[Cache_Server_Search]
maxOpenIndexCount=100
linIndexCacheSize=150000
sampleLineListCacheSize=800000
pivotDistListCacheSize=50000
logFileName=

[Remarque]Remarque

Le cache peut être réglé séparément pour la recherche locale et pour la recherche par serveur de recherche.

La mise en cache fonctionne également avec PARTdataManager, mais ne peut pas être utilisé efficacement ici Parce que le cache est perdu à chaque redémarrage. Donc les valeurs linIndexCacheSize, sampleLineListCacheSize et pivotDistListCacheSize pour le La recherche locale est définie sur « 0 ».

Vous trouverez ci-dessous une description de chaque cache :

  1. maxOpenIndexCount: empêche que l'index doive être ouvert à nouveau pour chaque recherche.[34]La valeur réglée correspond au nombre maximal d'index ouverts.

    Réglez la valeur sur le nombre de catalogues à parcourir (ici, dans l'exemple, '100').

    maxOpenIndexCount=100

  2. sampleLineListCache:

    Cache pour les empreintes digitales

    (Le cache est commun à tous les threads [correspond en général au nombre de cœurs du processeur] (cf. $CADENAS_SETUP/partsol.cfg -> bloc "SEARCHSERVER" -> clé "THREADS")

    Exemple : 80% de 1 Go de RAM disponible (indication en Ko)

    sampleLineListCacheSize=800000

    [Recommandation : Pour le premier réglage 80%]

  3. linIndexCache: (non utilisé lors de la recherche sur les sketches)

    Cache pour index linéaire

    Exemple : 15% de 1 Go de RAM disponible (indication en Ko)

    linIndexCacheSize=150000

    [Recommandation : Pour le premier réglage 15%]

  4. pivotDistListCache: (non utilisé pour la recherche via des sketches)

    Cache pour l'index linéaire:[35]

    (Le cache est commun à tous les threads [correspond en général au nombre de cœurs du processeur] (cf. $CADENAS_SETUP/partsol.cfg -> bloc "SEARCHSERVER" -> clé "THREADS")

    Exemple : 5% de 1 Go de RAM disponible (indication en Ko)

    pivotDistListCacheSize=50000

    [Recommandation : Pour le premier réglage 5%]

1.6.5.8.11.1.2. Analyser le fichier journal - trouver les meilleurs réglages

Il est préférable d'optimiser les réglages en deux étapes :

  1. Dans un premier temps, définissez les paramètres en fonction d'une valeur empirique générale :

    1. Déterminez le pourcentage de mémoire que vous pouvez allouer au cache sans limiter les autres processus.

    2. Répartissez cette mémoire de travail dans les proportions suivantes :

      • sampleLineListCacheSize : 80%

      • linIndexCacheSize : 15%

      • pivotDistListCacheSize : 5 %

    3. Inscrivez les valeurs de résultat en Ko dans les clés mentionnées ci-dessus.

    4. Définissez la valeur-clé de maxOpenIndexCount sur le nombre de catalogues à parcourir.

    [Remarque]Remarque

    Si vous définissez toutes les valeurs sur '0', la mise en cache est désactivée.

  2. Optimisation des valeurs après évaluation du fichier journal

    Dans le fichier de configuration geomseach.cfg , spécifiez où le fichier journal doit être enregistré.

    [Remarque]Remarque

    Chaque recherche donne lieu à un rapport indiquant le nombre d'occurrences en cache et la quantité de mémoire utilisée. Les valeurs ne sont pas réinitialisées après la recherche. Les statistiques s'appliquent à toutes les recherches !

    Au redémarrage du PARTdataManager ou du serveur de recherche, le fichier journal est effacé.

    Pour parvenir à des réglages optimaux pour la recherche géométrique, veuillez tenir compte des points suivants avant d'analyser le fichier journal :

    • Effectuez des recherches qui correspondent plus ou moins au comportement normal de l'utilisateur, par exemple lors de la sélection des modèles de recherche, de la recherche d'esquisses ou de la recherche 3D, mais aussi lors de la sélection des pièces de recherche.

    • Dans l'idéal, laissez la recherche se dérouler pendant plusieurs jours (Search-Server), ou pendant une longue phase d'utilisation de PARTdataManager, avant d'analyser le fichier journal.

Exemple d'évaluation du fichier journal

GeoIndexCache CacheHits 999 of 1000, 99%
GeoIndexCache Files 99 of 100, 99%

SampleLineListCache CacheHits 999 of 1000, 99%
SampleLineListCache Memory 400000 of 800000, 50%

LinIndexCache CacheHits 10617 of 10776, 98%
LinIndexCache Memory 90000 of 100000, 90%

PivotDistCache CacheHits 100 of 10000, 1%
PivotDistCache Memory 9999 of 10000, 99%

Vous ne devez rien changer au GeoIndexCache. Celui-ci est réglé sur le nombre de catalogues à parcourir.

Pour les trois autres caches, les règles suivantes s'appliquent : (expliquées ici à titre d'exemple pour SampleLineListCache. Les déclarations peuvent être appliquées à LinIndexCache et PivotDistCache ).

CacheHits

La première ligne indique le nombre de résultats positifs = mesure de la qualité

SampleLineListCache CacheHits 900 of 1000, 90%

  1. La première valeur (ici 900) indique le nombre d'accès aux éléments déjà présents dans le cache.

    La deuxième valeur (ici 1000) indique le nombre total d'accès.

  2. La deuxième valeur indique le rapport entre les deux valeurs en pourcentage. Ici 90%.

Mémoire

La deuxième ligne indique l'utilisation de la mémoire de travail :

SampleLineListCache Memory 600000 of 800000, 75%

  1. Les deux premières valeurs indiquent combien de Ko ont été utilisés par rapport à la valeur de Ko définie dans le fichier de configuration.

    Dans l'exemple, 600000 KB ont été utilisés sur 800000 KB.

  2. La deuxième valeur indique le rapport entre les deux valeurs en pourcentage. Ici 75%.

CacheHits est la mesure de la qualité de l'utilisation du cache. Si cette valeur est élevée, les paramètres sont Ok.

Memory indique si la valeur définie dans le fichier de configuration est correctement dimensionnée. Si l'on a 100% pour CacheHits et 10% pour Memory, on obtiendra d'aussi bons CacheHits avec une allocation nettement inférieure.

Si les CacheHits sont faibles (par ex. 10%) et que le cache défini est entièrement utilisé (par ex. 100%), il faut essayer d'augmenter le taux de réussite en augmentant la valeur du cache.




[34] Il ne doit être ouvert qu'une seule fois pour chaque "thread" [correspond en général au nombre de cœurs de processeur]. Chaque THREAD a son propre cache.

[35] L'index linéaire trie les pièces en fonction des distances par rapport à certaines pièces de référence. Celles-ci sont appelées pivots.