"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment le réglage MySQL améliore les performances de Laravel

Comment le réglage MySQL améliore les performances de Laravel

Publié le 2024-07-30
Parcourir:936

Le réglage de la configuration MySQL est un composant important de la gestion de bases de données mis en œuvre par les professionnels et les administrateurs de bases de données. Il vise à configurer la base de données en fonction de son matériel et de sa charge de travail. Mais au-delà de la sphère de gestion des bases de données, l’utilité du réglage de la configuration MySQL est largement ignorée.

Nous émettons l'hypothèse que le réglage de MySQL peut affecter de manière significative les performances des applications Web. Si nous parvenons à démontrer la valeur du réglage MySQL, nous pensons que les entreprises et les organisations pourraient être désireuses d'intégrer cette pratique à plus grande échelle.

Comment améliorer les performances des applications Laravel

L'amélioration des performances des applications grâce au réglage est mieux obtenue avec une approche globale qui aborde les domaines suivants :

  • Ressources du serveur – CPU, mémoire, stockage
  • Configurations logicielles – Linux, Nginx, Php…
  • Configurations du système de gestion de base de données (SGBD) – MySQL, PostgreSQL
  • Optimiser le schéma de base de données et modifier les index
  • Optimiser les applications – Code, Requêtes, Architecture…

De nombreux développeurs expérimentés ne considèrent pas l'optimisation des performances des bases de données comme une opportunité d'améliorer les performances de leurs applications, car ils connaissent peu ce domaine. Ils passent beaucoup de temps à optimiser la base de code, mais celle-ci atteint un point où elle n'apporte plus de résultat précieux pour le temps et l'énergie investis. Notre recherche sur la façon dont le réglage de MySQL affecte positivement les performances des applications Web open source populaires vise à présenter ce fait aux développeurs.

Approche de test

Notre procédure de test pour Laravel Aimeos nous permet de comparer les performances de l'application avant et après la configuration à l'aide de données prédéfinies. En exécutant d'abord le test avec la configuration par défaut, nous obtenons des résultats de contrôle précieux avec lesquels comparer la configuration optimisée.

Nous avons utilisé le processus suivant pour préparer et tester chaque candidature :

  1. Déployez Laravel Aimeos.
  2. Base de données de départ avec des données.
  3. Préparer le test pour JMeter.
  4. Exécutez le test pendant 10 minutes – Exécutez le test JMeter à l'aide de la plateforme de test de performances Blazemeter.
  5. Régler la configuration de MariaDB – Après les tests de configuration par défaut, notre configuration est restée la même, mais MariaDB a été optimisée pour la charge de travail, les ressources du serveur et la taille de la base de données.
  6. Réexécuter le test – Répétition du test JMeter à l'aide de Blazemeter pour la configuration optimisée.

Nous avons publié les tests JMeter, le statut MySQL et les variables MySQL lors des tests sur Github.

Quelles mesures avons-nous examinées ?

Les indicateurs que nous avons examinés au cours de cette recherche sont :

  1. Temps de réponse (latence) est le temps entre l'envoi de la demande et son traitement côté serveur jusqu'au moment où le client reçoit le premier octet. Il s'agit d'une mesure importante qui vous donne un aperçu des performances du serveur.
  2. Requêtes par seconde est une mesure qui mesure le nombre de requêtes exécutées par le serveur de base de données par seconde.
  3. Utilisation du processeur.

Nous avons collecté des métriques Utilisation du processeur et Requêtes par seconde pour comparer la charge de travail.

Laravel Aiméos

Aimeos Laravel est un framework d'applications Web de commerce électronique populaire permettant de créer des boutiques en ligne, des marchés et des applications B2B. Avec Aimeos, les utilisateurs peuvent créer des boutiques de commerce électronique basées sur une API pour Laravel, capables d'évoluer pour prendre en charge plus d'un milliard d'articles. Il est disponible dans plus de 30 langues et compte plus de 300 000 installations.

Configuration des tests

Pour tester Aimeos, nous avons commencé le test avec dix utilisateurs, mais nous avons dû diminuer le nombre d'utilisateurs car nous ne pouvions pas terminer le test avec la configuration par défaut.

Nous avons ensemencé la base de données avec 500 Mo de données.
La durée de notre test était de 10 minutes.

Nous avons utilisé:

  • Instance AWS EC2 c5.xlarge avec Debian 11 installé comme système d'exploitation,
  • Apache en tant que serveur Web,
  • MariaDB 10.5 défini sur la configuration par défaut avec une taille de base de données de 500 Mo.

Configuration MySQL

La configuration utilisée pour Aimeos Laravel est la suivante :

Configuration optimisée pour Laravel Aimeos 500 Mo

query_cache_type=1
query_cache_size=134217728
query_cache_limit=16777216
query_cache_min_res_unit=4096
thread_cache_size=0
key_buffer_size=8388608
max_allowed_packet=1073741824
sort_buffer_size=2097152
read_rnd_buffer_size=262144
bulk_insert_buffer_size=8388608
myisam_sort_buffer_size=8388608
innodb_buffer_pool_chunk_size=134217728
innodb_buffer_pool_size=805306368
max_heap_table_size=16777216
tmp_table_size=16777216
join_buffer_size=8388608
max_connections=151
table_open_cache=2048
table_definition_cache=1408
innodb_flush_log_at_trx_commit=1
innodb_log_file_size=201326592
innodb_log_buffer_size=16777216
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=0
innodb_purge_threads=4
optimizer_search_depth=0
thread_handling=pool-of-threads
thread_pool_size=2

Résultats des tests

Les résultats des tests d'Aimeos Laravel ont montré des améliorations spectaculaires des performances entre les configurations par défaut et optimisées.

L'optimisation de MySQL a entraîné une amélioration significative du Temps de réponse moyen du serveur, qui a été réduit de 1,4 seconde à moins de 800 millisecondes.

Le

Temps de réponse (latence) a diminué de 42 % et l'utilisation moyenne du processeur de 86 %, tandis que les Requêtes par seconde ont augmenté de 291 %, passant de 12 à 35 requêtes par seconde.

Le graphique des résultats est disponible ci-dessous :

How MySQL Tuning Improves the Laravel PerformanceTemps de réponse (ms), configuration MySQL optimisée par Aimeos par rapport à la configuration par défaut
How MySQL Tuning Improves the Laravel PerformanceUtilisation du processeur (%), configuration MySQL optimisée par Aimeos par rapport à la configuration par défaut
How MySQL Tuning Improves the Laravel PerformanceRequêtes par seconde, configuration MySQL optimisée par Aimeos par rapport à la configuration par défaut

Contributeurs de la communauté

Nous avons fait équipe avec les développeurs Laravel Gevorg Mkrtchyan et Sergey Sinitsa de la société Initlab pour enquêter sur cette ligne de questions et sommes très reconnaissants pour leur expertise.
Sergey a déployé Aimeos et Gevorg a préparé le code pour amorcer la base de données.

Conclusion

Notre procédure de test, utilisant Aimeos Laravel, a montré des améliorations spectaculaires du Temps de réponse (latence), Utilisation du processeur et Requêtes par seconde après la configuration de la base de données. configuration du serveur.

Le

Temps de réponse (latence) a chuté de 42 %, tandis que l'Utilisation du processeur a chuté de 86 %. Les Requêtes par seconde ont augmenté de 291 % dans Aimeos Laravel 500 Mo.

En conclusion, le réglage de MySQL est un aspect essentiel de la gestion des bases de données qui peut avoir un impact significatif sur les performances des applications Laravel. Des applications Web peu performantes peuvent entraîner une augmentation des temps de chargement des pages, un traitement lent des requêtes et une mauvaise expérience utilisateur, ce qui peut affecter négativement le référencement et les ventes. En optimisant les performances des applications Web grâce au réglage MySQL, les entreprises et les organisations peuvent augmenter leurs ventes, les pages vues, les taux de conversion et les classements SEO.

Avec cette recherche, nous espérons mettre en valeur la valeur du réglage MySQL comme moyen d'améliorer les performances des applications Laravel et encourager les développeurs Laravel à considérer cette pratique lors de l'optimisation des performances de leurs applications.

Grâce à des outils tels que Releem, les bases de données peuvent être automatiquement configurées pour des performances optimales, réduisant ainsi la charge des équipes de développement logiciel.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/drupaladmin/how-mysql-tuning-improves-the-laravel-performance-282j?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3