Maison  >  Article  >  base de données  >  [Base de données MySQL] Interprétation du chapitre 2 : Test de référence MySQL

[Base de données MySQL] Interprétation du chapitre 2 : Test de référence MySQL

php是最好的语言
php是最好的语言original
2018-08-07 11:50:421346parcourir

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égie

Pour l'ensemble du système : full-stack intégré

Tester MySQL individuellement : monocomposant

Test 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 rapides

2.2.1 Indicateurs

Objectif : Affiner celui-ci en une série de questions , Analyse détaillée de problèmes spécifiques

Débit :

Nombre de transactions par unité de temps, TPC-C, applications interactives multi-utilisateurs, nombre de transactions par seconde, nombre de transactions par minute

Temps 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 graphique

Concurrence :

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'application

Collectez 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 indicateurs

2.3 Méthodes

Soyez 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écifications

Soulever 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 doit

s'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 STATUS

Intervalles raisonnables, heure de début d'enregistrement, horodatage d'utilisation, collectez-le simplement

2.3.4 Obtenez des résultats précis

Ré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

2.3.5 Exécuter les résultats de l'analyse des tests

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

2.3.6 L'importance du dessin

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.4 Benchmark Testing Tool

Outil de test d'intégration : application entière

1. ab est Apache HTTP, combien de requêtes peuvent être traitées par seconde [Référence] [2]

2. http_load : ab est similaire à plus flexible et est conçu pour tester les serveurs Web et est fourni via un fichier d'entrée. Plusieurs URL peuvent être sélectionnées au hasard pour les tests, ou peuvent être personnalisées pour tester en fonction du rapport temporel [Référence]

3. JMeter, un programme Java , peut charger d'autres applications et tester leurs performances. Cela semble bien. Je n'ai pas été en contact avec les deux ci-dessus, je ne ferai donc pas de commentaire

Type à composant unique : test de MySQL, performances du système basé sur MySQL<.>

1. mysqlslap : livré avec mysql5.1, simule la charge du serveur et génère des informations de synchronisation, vous pouvez exécuter le nombre de connexions simultanées et spécifier des instructions SQL, sinon l'instruction select sera automatiquement générée [Référence ]

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 gratuit

5. 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

Le n mot. est omis ici

Résumé 2.6

Enfin, je vous attends ~ musique, il est recommandé d'être au moins familier avec sysbench, comment utiliser oltp (comparaison de différentes performances du système) et les tests fileio ; effectuer des tests de référence, il est nécessaire de formuler quelques principes et de choisir celui qui convient. Testez les outils, construisez des bibliothèques de scripts, collectez les résultats d'analyse des informations et maîtrisez un outil de dessin

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 MySQL

[Base de données MySQL] Interprétation du chapitre 3 : Analyse des performances du serveur (Partie 2)

Ce 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn