Maison Tutoriel système Linux Analysez N façons d'optimiser les performances de Tomcat

Analysez N façons d'optimiser les performances de Tomcat

Jun 14, 2024 pm 09:10 PM
linux linux教程 红帽 linux系统 linux命令 certification Linux chapeau rouge Linux vidéo Linux

Analysez N façons doptimiser les performances de Tomcat

Tomcat est souvent l'environnement de développement par défaut pour les praticiens JavaWeb, mais la configuration par défaut de Tomcat en tant qu'environnement de production, en particulier la configuration de la mémoire et des threads, est très faible par défaut et peut facilement devenir un goulot d'étranglement en termes de performances. Heureusement, Tomcat. a encore de nombreuses fonctionnalités à améliorer. Ce qui suit présente l'optimisation de Tomcat, qui peut être divisée en mémoire, thread et IO.
Tomcat est souvent l'environnement de développement par défaut pour les praticiens JavaWeb, mais la configuration par défaut de Tomcat en tant qu'environnement de production, en particulier la configuration de la mémoire et des threads, est très faible par défaut et peut facilement devenir un goulot d'étranglement en termes de performances.

Heureusement, Tomcat a encore beaucoup à faire. Vous trouverez ci-dessous une introduction à l'optimisation de Tomcat, qui peut être divisée en mémoire, threads et IO.

1 : Optimisation de la mémoire Tomcat, dites à la JVM que je veux une grande mémoire au démarrage (le réglage de la mémoire est le moyen le plus direct)

catalina.bat sous Windows

catalina.sh sous Linux tel que :

JAVA_OPTS='-Xms256m -Xmx512m'  
Copier après la connexion

-Xms Taille du tas d'initialisation JVM

-Xmx La valeur maximale du tas JVM. La taille réelle des paramètres dépend de la configuration du serveur ou des paramètres spécifiques au projet.

2 : Optimisation des threads Tomcat dans server.xml tel que :

maxThreads="X" signifie traiter jusqu'à X connexions en même temps

minSpareThreads="X" Initialiser les connexions X

maxSpareThreads="X" signifie que s'il peut y avoir au plus X threads, une fois de plus que X, les threads qui ne sont plus nécessaires seront fermés

acceptCount="X" Lorsque le nombre de personnes connectées en même temps atteint maxThreads, vous pouvez toujours faire la queue. La taille de la file d'attente est X. Si elle dépasse X, elle ne sera pas traitée.

Trois : optimisation des E/S Tomcat
1 : Blocage synchrone des IO (JAVA BIO) Synchronisation et blocage, le mode d'implémentation du serveur est une connexion un thread (c'est effrayant d'y penser, les threads sont des ressources très précieuses), bien sûr, il peut être amélioré via le mécanisme du pool de threads.

2 : JAVA NIO : il est divisé en IO synchrones non bloquantes, IO bloquantes asynchrones et BIO. La plus grande différence est qu'une requête par thread peut être réutilisée pour traiter plusieurs connexions (multiplexage).

3 : IO asynchrone non bloquant (Java NIO2 est également appelé AIO). La principale différence avec NIO est la différence sous-jacente du système d'exploitation. Elle peut être comparée à la livraison express, ce qui signifie qu'après les achats en ligne, vous devez y aller. sur le site officiel pour vérifier si la livraison express a été livrée. Lorsque vous arrivez (peut-être plusieurs fois), vous pouvez récupérer l'express vous-même ; cela signifie que le coursier livrera la marchandise à votre porte (vous n'avez pas besoin de payer) ; attention à l'avancement de l'express).

La méthode BIO convient aux architectures avec un nombre de connexions relativement petit et fixe. Cette méthode a des exigences relativement élevées en ressources serveur, et la concurrence est limitée aux applications. C'était le seul choix avant JDK1.4, mais le programme est intuitif. , simple et facile à comprendre.

La méthode NIO convient aux architectures avec un grand nombre de connexions et des connexions relativement courtes (opérations légères), comme les serveurs de chat. La concurrence est limitée aux applications, et la programmation est compliquée pour la prendre en charge.

La méthode AIO est utilisée dans les architectures avec un grand nombre de connexions et des connexions relativement longues (opérations lourdes), comme les serveurs d'albums photos. Elle appelle entièrement l'OS pour participer à des opérations concurrentes. La programmation est relativement compliquée, et JDK7 commence à le faire. soutenez-le.

Dans server.xml

Réalisez la commutation IO pour Tomcat.

Quatre : APR Big Killer
APR是从操作系统级别来解决异步的IO问题,大幅度的提高性能. (http://apr.apache.org/).
Copier après la connexion
APR (Apache Portable Runtime) est une bibliothèque hautement portable, qui constitue le cœur d'Apache HTTP Server 2.x. Elle peut être mieux intégrée à d'autres technologies Web locales et rend généralement Java plus efficace en tant que plate-forme de serveur Web hautes performances. Au lieu de simplement servir de conteneur d'arrière-plan.

Dans un environnement de production, notamment lors de l'utilisation directe de Tomcat comme serveur WEB, Tomcat Native doit être utilisé pour améliorer ses performances, en gros 300 threads seront bientôt pleins, et les futures requêtes devront attendre. le nombre de threads simultanés a considérablement diminué, passant des 300 d'origine à seulement quelques dizaines, et de nouvelles requêtes arriveront sans blocage.

Lors des tests dans un environnement LAN, même 400 requêtes simultanées ont été traitées/transmises en un instant. Cependant, dans un environnement Internet réel, le temps de traitement des pages ne représente que moins de 0,1 %, et la plupart du temps est utilisé pour la transmission des pages. . Si APR n'est pas utilisé, un thread ne peut traiter qu'un seul utilisateur à la fois, ce qui entraînera inévitablement un blocage. Par conséquent, il est très nécessaire d'utiliser apr dans un environnement de production.

Installez la bibliothèque native Apache Tomcat et prenez en charge apr (http://tomcat.apache.org/native-doc/) lorsqu'elle est démarrée directement. Elle est basée sur APR. Pour les méthodes d'installation spécifiques, veuillez vous référer à d'autres blogs et articles de dépannage. problèmes de code et optimisation Tomcat À ce niveau, la plupart des besoins de performances peuvent être satisfaits.

最后一句话"再牛B的服务器,也顶不住一个傻B的代码".优化的前提条件是良好的代码质量和设计.
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle configuration de l'ordinateur est requise pour VScode Quelle configuration de l'ordinateur est requise pour VScode Apr 15, 2025 pm 09:48 PM

Vs Code Système Exigences: Système d'exploitation: Windows 10 et supérieur, MacOS 10.12 et supérieur, processeur de distribution Linux: minimum 1,6 GHz, recommandé 2,0 GHz et au-dessus de la mémoire: minimum 512 Mo, recommandée 4 Go et plus d'espace de stockage: Minimum 250 Mo, recommandée 1 Go et plus d'autres exigences: connexion du réseau stable, xorg / wayland (Linux) recommandé et recommandée et plus

Architecture Linux: dévoiler les 5 composants de base Architecture Linux: dévoiler les 5 composants de base Apr 20, 2025 am 12:04 AM

Les cinq composants de base du système Linux sont: 1. Kernel, 2. Bibliothèque système, 3. Utilitaires système, 4. Interface utilisateur graphique, 5. Applications. Le noyau gère les ressources matérielles, la bibliothèque système fournit des fonctions précompilées, les utilitaires système sont utilisés pour la gestion du système, l'interaction GUI fournit une interaction visuelle et les applications utilisent ces composants pour implémenter des fonctions.

Tutoriel d'utilisation des terminaux VScode Tutoriel d'utilisation des terminaux VScode Apr 15, 2025 pm 10:09 PM

Le terminal intégré VScode est un outil de développement qui permet d'exécuter des commandes et des scripts au sein de l'éditeur pour simplifier le processus de développement. Comment utiliser la borne VScode: ouvrez le terminal avec la touche de raccourci (CTRL / CMD). Entrez une commande ou exécutez le script. Utilisez des raccourcis clavier (tels que Ctrl L pour effacer le terminal). Modifiez le répertoire de travail (comme la commande CD). Les fonctionnalités avancées incluent le mode de débogage, l'achèvement de l'extrait de code automatique et l'historique des commandes interactives.

Comment vérifier l'adresse de l'entrepôt de Git Comment vérifier l'adresse de l'entrepôt de Git Apr 17, 2025 pm 01:54 PM

Pour afficher l'adresse du référentiel GIT, effectuez les étapes suivantes: 1. Ouvrez la ligne de commande et accédez au répertoire du référentiel; 2. Exécutez la commande "git Remote -v"; 3. Affichez le nom du référentiel dans la sortie et son adresse correspondante.

Où écrire du code dans vscode Où écrire du code dans vscode Apr 15, 2025 pm 09:54 PM

L'écriture de code dans Visual Studio Code (VSCODE) est simple et facile à utiliser. Installez simplement VScode, créez un projet, sélectionnez une langue, créez un fichier, écrivez du code, enregistrez-le et exécutez-le. Les avantages de VSCOD incluent la plate-forme multiplateuse, gratuite et open source, des fonctionnalités puissantes, des extensions riches et des poids légers et rapides.

Comment exécuter le code Java dans le bloc-notes Comment exécuter le code Java dans le bloc-notes Apr 16, 2025 pm 07:39 PM

Bien que le bloc-notes ne puisse pas exécuter directement le code Java, il peut être réalisé en utilisant d'autres outils: à l'aide du compilateur de ligne de commande (Javac) pour générer un fichier bytecode (filename.class). Utilisez l'interpréteur Java (Java) pour interpréter ByteCode, exécuter le code et sortir le résultat.

Quel est le but principal de Linux? Quel est le but principal de Linux? Apr 16, 2025 am 12:19 AM

Les principales utilisations de Linux comprennent: 1. Système d'exploitation du serveur, 2. Système intégré, 3. Système d'exploitation de bureau, 4. Environnement de développement et de test. Linux excelle dans ces domaines, offrant des outils de stabilité, de sécurité et de développement efficaces.

Comment exécuter sublime après avoir écrit le code Comment exécuter sublime après avoir écrit le code Apr 16, 2025 am 08:51 AM

Il existe six façons d'exécuter du code en sublime: via les raccourcis clavier, les menus, les systèmes de construction, les lignes de commande, définir des systèmes de construction par défaut et les commandes de construction personnalisées et exécuter des fichiers / projets individuels en cliquant avec le bouton droit sur des projets / fichiers. La disponibilité du système de construction dépend de l'installation du texte sublime.

See all articles