Amélioration des performances de stagingprop
L'utilitaire stagingprop est capable de traiter de grandes quantités de données.
Propagation de grandes quantités de donnée
Optimisation des paramètres -transaction et -batchsize
- transaction
- Indique le nombre d'enregistrements pour chaque transaction. Ce nombre d'enregistrements est le nombre de modifications qui sont propagées avant l'émission d'une validation sur les bases de données de production et de transfert. Chaque transaction peut inclure plusieurs lots qui sont validés lorsque le nombre d'enregistrements spécifié est atteint ou dépassé. La logique améliorée de l'utilitaire stagingprop suppose que cette valeur est élevée, tout en respectant les des deux bases de données pour pouvoir déplacer plus rapidement les données. Si vous ne spécifiez pas de valeur pour ce paramètre, les journaux des modifications sont validés comme une transaction unique.
- batchsize
- Indique le nombre d'enregistrements consolidés à inclure dans un lot. Comme pour le paramètre transaction, définissez une valeur élevée pour ce paramètre. En définissant le paramètre batchsize sur une valeur élevée, vous pouvez mettre en mémoire tampon de grandes quantités de données de propagation dans la machine JVM avant que les données soient envoyées à la base de données de production en un seul envoi. La valeur par défaut est "100".

Avec cette relation, les modifications qui sont propagées à la base de données de production sont validées tous les 4 lots. Les enregistrements ne sont validés que lorsque le quatrième lot est complet. Dans ce scénario, le nombre d'enregistrements qui sont validés dans chaque transaction peut être 120000, même si la valeur du paramètre transaction est uniquement "100000".
- Pour des performances optimales, assurez-vous que la valeur du paramètre transaction est un multiple de la valeur pour le paramètre batchsize. Le rapport recommandé entre la valeur du paramètre batchsize et la valeur du paramètre transaction est de 1:10. Par exemple, dans le scénario présenté dans le diagramme ci-dessus, la valeur de paramètre transaction est "10000". Pour que la valeur du paramètre batchsize utilise le rapport recommandé, la valeur doit être "1000". Si la valeur du paramètre batchsize doit rester "3000", alors la valeur du paramètre transaction doit être "30000".
- Pour résoudre les problèmes de performances généraux, affectez des valeurs plus élevées aux deux paramètres. Les valeurs optimales pour des tests internes IBM étaient "100000" pour le paramètre batchsize et "1000000" pour le paramètre transaction. Cependant, gardez à l'esprit que plus la taille des lots est importante, plus le segment de mémoire qui est nécessaire doit être important pour contenir les instructions SQL en mémoire avant une validation. Vous pourriez avoir besoin d'ajuster votre segment de mémoire JVM lorsque vous définissez une valeur élevée du paramètre batchsize.
- Si l'utilitaire stagingprop met du temps pour effectuer la propagation des données, pensez à configurer les paramètres pour traiter moins de données à la fois. Si vous propagez trop d'enregistrements à la fois, envisagez d'exécuter l'utilitaire à des intervalles plus fréquents. L'augmentation de la fréquence avec laquelle vous propagez les données peut entraîner moins d'enregistrements par propagation.
- Pour faciliter l'identification et la résolution des incidents lorsque l'utilitaire stagingprop ne parvient pas à propager des données, ajustez la valeur du paramètre batchsize. Par exemple, si vous ne définissez pas une valeur pour ce paramètre, la valeur est "100", ce qui peut compliquer les recherches des enregistrements qui sont à l'origine des erreurs. En définissant la valeur de paramètre sur "0", vous pouvez désactiver la création de lots JDBC, ce qui peut vous aider à identifier les enregistrements qui sont à l'origine d'une erreur.
mémoire dynamique d'exécution de la machine virtuelle Java
Vous pouvez augmenter les contraintes de la base de données de transfert et de production pour améliorer les performances. Toutefois, il peut aussi être nécessaire d'ajuster les contraintes de la machine virtuelle Java. Dans ce cas, de stagingprop et le pilote JDBC mettent en mémoire tampon de grandes quantités de données en mémoire pendant les phases de consolidation et de propagation.
Vous pouvez augmenter la quantité maximale de segment de mémoire d'exécution qui peut être utilisée par la JVM en indiquant la combinaison de l'argument et de la valeur de -Xmx<n> pour l'appel de stagingprop dans le fichier stagingprop.sh ou stagingprop.bat.
- Localisez la ligne de code suivante :
${JAVA_EXE?} ... -Dwclogdir=$WCLOGDIR ... com.ibm.commerce.staging.StagingProp $* $DEFAULTLOG $DBTYPE - Mettez à jour la ligne de code à l'aide du code suivant :
${JAVA_EXE?} ... -Dwclogdir=$WCLOGDIR -Xmx3072m ... com.ibm.commerce.staging.StagingProp $* $DEFAULTLOG $DBTYPE
Dans les exemples ci-dessus, la quantité maximum de la mémoire dynamique d'exécution utilisable par la machine virtuelle Java pendant l'appel de stagingprop passe à 3 giga-octets.
-Xss<n>. Par exemple, si vous indiquez -Xss1280k, la taille de la pile de la machine virtuelle Java est ajustée à 1,25 mégaoctet.-Xmx et -Xss de la machine virtuelle Java, assurez-vous que vous n'utilisez pas une valeur trop élevée. cela détournerait des ressources de mémoire qui pourraient être nécessaires ailleurs.-Xmx3072m-Xss1280k