Maison >base de données >tutoriel mysql >[Base de données MySQL] Interprétation du chapitre 2 : Test de référence MySQL
Avant-propos :
Benchmark : Les compétences de base, un test de résistance pour la conception de systèmes, sont le seul système pratique, efficace et apprenable dans un travail donné. Il peut observer le comportement du système sous différentes pressions, évaluer la capacité du système, comprendre quels sont les changements importants, ou observer comment le système traite différentes données, et peut créer des scénarios virtuels en dehors de la charge réelle du système. Tests (maîtriser le comportement du système)
Texte :
Comme mentionné dans la préface, les tests de référence sont très importants ! Ce qui peut être fait : En général : tester le matériel, estimer le matériel, vérifier le système, mesurer la pression, ajuster la configuration 1. Vérifier les hypothèses basées sur le système et confirmer si les hypothèses sont cohérentes avec la situation réelle 2. Reproduire certains comportements anormaux dans le système à résoudre ; 3. Tester le fonctionnement actuel du système et utiliser les résultats historiques pour analyser et diagnostiquer les problèmes imprévisibles ; 4. Simuler des charges plus élevées pour découvrir les goulots d'étranglement d'évolutivité que le système peut rencontrer à mesure que la pression augmente ; . ; 5. Planifier la croissance future de l'entreprise, le matériel, la capacité du réseau et les ressources associées ; 6. Tester la capacité de l'application à s'adapter à des environnements variables ; 7. Tester différentes configurations matérielles, logicielles et du système d'exploitation pour prouver si l'équipement est configuré ; correctement ;Le rôle de l'analyse comparative de la base de données est d'analyser les performances de la base de données dans la configuration actuelle (y compris la configuration matérielle, le système d'exploitation, les paramètres de la base de données, etc.), découvrant ainsi le seuil de performances de MySQL et l'ajustant. selon la configuration réelle du système. [Source]Différent de la pression réelle : le réel est complexe et modifiable ; les tests de référence nécessitent une exécution aussi rapide que possible, des résultats simples et directs, des résultats faciles à comparer, peu coûteux et faciles à mettre en œuvre 2.2 StratégiePour l'ensemble du système : full-stack intégréTester MySQL individuellement : monocomposantTest global recommandé : Paramètres corrects 1. Les utilisateurs se concentrent sur les performances globales ; 2. MySQL n'est pas toujours un goulot d'étranglement ; 3. Il peut mieux révéler les véritables performances de l'application Tests séparés recommandés : données requises 1. Besoin de comparer différents schémas ou performances des requêtes ; 2. Tester un problème spécifique ; 3. Éviter les cycles longs, à court terme et rapides2.2.1 IndicateursObjectif : Affiner celui-ci en une série de questions , Analyse détaillée de problèmes spécifiquesDébit : Nombre de transactions par unité de temps, TPC-C, applications interactives multi-utilisateurs, nombre de transactions par seconde, nombre de transactions par minuteTemps de réponse ou latence Le temps global requis pour la tâche de test, le temps de sonnerie moyen, le temps de sonnerie minimum, le maximum et le pourcentage à l'aide du graphiqueConcurrence : Testez les performances de l'application sous différentes concurrences, faites attention aux opérations simultanées en cours, au nombre de threads et de connexions fonctionnant en même temps Concurrence du serveur Web ! = base de données, uniquement les capacités de traitement des données du mécanisme de stockage de session de table ; tester la concurrence Web à tout moment dans quelle mesure Évolutivité Évolutivité : doubler le travail du système, situation rationnelle Les résultats des deux ; les pièces peuvent être obtenues en même temps ; doubler les ressources du système ou doubler le débit La pression commerciale du système peut changer : il est nécessaire de mesurer l'évolutivité cet indicateur est utile pour les spécifications de capacité : fournir des informations pour découvrir ; goulots d'étranglement d'applicationCollectez autant que possible les exigences des tests et concevez des tests en fonction des exigences. Évitez de vous concentrer uniquement sur certains indicateurs et d'ignorer d'autres indicateurs2.3 MéthodesSoyez aussi proche. à l'application réelle que possible Situation : Utiliser l'ensemble complet, les caractéristiques de distribution des données, les paramètres de distribution réels, s'il y a plusieurs utilisateurs, faire correspondre le comportement des utilisateurs, plusieurs types, vérifier les journaux d'erreurs, l'échauffement du système : comment combien de temps faut-il pour atteindre la capacité de performance normale après le redémarrage, durer un certain temps 2.3.1 Conception et spécificationsSoulever des questions et des objectifs clairs
Test de référence standard : Solution appropriée TPC-H OLTP
Tests dédiés : Instantanés complexes, itératifs et faciles à restaurer d'ensembles de données de production
Plan : Paramètres, documentation des résultats, tests Enregistrer en détail
2.3.2 Durée Le test de référence doits'exécuter pendant une période suffisamment longue . Si le temps ne peut pas être confirmé, il peut être exécuté en continu. Continuez à observer jusqu'à ce que le système soit confirmé comme étant stable
Une règle de test simple : le temps nécessaire pour que le système semble stable est au moins = le temps pour le système à préchauffer 2.3.3 Obtenir les performances et l'état du système Collecter autant d'informations que possible sur le système testé Il est préférable de créer un répertoire, créer un sous-répertoire séparé pour chaque série de tests et enregistrez-y les résultats, les fichiers de configuration, les indicateurs de test, les scripts et autres instructions associées Les données qui doivent être enregistrées : État du système, performances indicateurs : utilisation du processeur, E/S du disque, statistiques de trafic réseau, compteur SHOWGLOBAL STATUSIntervalles raisonnables, heure de début d'enregistrement, horodatage d'utilisation, collectez-le simplement2.3.4 Obtenez des résultats précisRépondez à quelques questions : Avez-vous choisi le bon benchmark ? Des données ont-elles été collectées pour la question ? Le temps de préchauffage est-il suffisamment long ?La mauvaise norme de test est-elle utilisée : les références gourmandes en E/S utilisent des normes de test gourmandes en CPU pour évaluer les performances ?
Les résultats des tests sont-ils reproductibles ? Assurez-vous que l'état du système est cohérent avant de refaire le test ; test symptomatique
Facteurs d'influence :
Pression externe, analyse des performances, système de surveillance, journaux détaillés, opérations périodiques
Remarque :
Les ressources nécessaires au processus sont dédiées aux tests ; modifiez le moins possible les paramètres pendant le test, et modifiez progressivement les paramètres du test de référence par itération, étudiez attentivement les situations anormales dans le processus et trouvez les ; raisons
Automatisation : réduire les erreurs humaines et les scripts
Les résultats des tests répondent aux besoins actuels. et voir les résultats. Si les résultats changent considérablement, , peut être exécuté plusieurs fois ou plus
Résultat :
Analyse, transformant les nombres en connaissances, le but ultime est de répondre aux problèmes lors de la conception
La manière d'abstraire des résultats significatifs dépend de la manière de collecter des données, d'écrire des scripts pour analyser les données, de réduire les erreurs humaines, la charge de travail, la répétabilité et la documentation
Une image vaut mille mots. À l'origine, il y avait certains points de connaissance pour lesquels le bébé voulait dessiner une carte, mais il n'y avait pas de dessins.
dans le livre. Partagez cette instruction : SHOW FULL PROCESSLIST SHOW PROCESSLIST indique quels threads sont en cours d'exécution. Vous pouvez également utiliser l'instruction mysqladmin processlist pour obtenir ces informations. Si vous disposez des autorisations SUPER, vous pouvez voir tous les threads. Sinon, vous ne pouvez vous voir que dans son propre fil de discussion, si le mot-clé FULL n'est pas utilisé, seuls les 100 premiers caractères de chaque requête seront affichés [Source]
2. MySQL Benchmark Suite (sql-bench) : livré avec, supprimé de la version 5.7, suite de benchmark, utilisation
Tests de comparaison sur différents serveurs de base de données, exécution série monothread, mesure de la vitesse de exécution de requêtes ;Contient un grand nombre de tests prédéfinis, faciles à utiliser, faciles à comparer, tests de performances de différents moteurs ou configurations, gourmands en CPU, les résultats montreront quels types d'opérations sont effectués plus rapidement sur le serveur. l'ensemble de données de test est petit et ne peut pas utiliser les données spécifiées, et nécessite la prise en charge de Perl BDB 3. Super Smack : MySQL, PostgreSQL fournit des
tests de stress et équilibrage de charge, un outil complexe et puissant qui peut simuler un accès multi-utilisateur, charger des données de test dans la base de données et remplir des tables de test avec des données aléatoires [Référence] 4. Suite de tests de base de données : un ensemble d'outils similaire à certains tests standard de l'industrie,
Outil de test TPC-C OLTP gratuit5. sysbench :
Test de contrainte du système multithread, évalue les performances du système en fonction sur les facteurs qui affectent les performances du serveur de base de données, outil de test tout-en-un, prend en charge les tests matériels de MySQL, du système d'exploitation et du matériel [Référence] [2] MySQL Fonction BENCHMARK() : Teste la vitesse d'exécution d'une opération spécifique. Le paramètre peut être le nombre de fois à exécuter ou une expression (n'importe quelle expression scalaire)
2.5 Cas
Résumé 2.6
Les patrons l'ont dit, alors ; savez-vous quel est mon prochain article ?
Articles associés :
[Base de données MySQL] Chapitre 1 Interprétation : Architecture et historique de MySQLCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!