Quel est l'ensemble de paramètres GC le plus couramment utilisé?Quel est le jeu de paramètres JVM GC le plus simple pour une application serveur?
Répondre
Je pensais partager quelques paramètres qui ont fonctionné pour les applications serveur que j'ai réglées par le passé. Ceux-ci ont été avec Sun/Oracle JDK 6 (au moment d'écrire ces lignes).
Il s'agit probablement de l'ensemble de paramètres GC le plus couramment utilisé. Bien sûr, les paramètres dépendent fortement de la nature de votre application: vie de l'objet, taux d'allocation, complexité des références/pointeurs, etc. Si votre expérience a été différente, partagez-la.
Paramètres de base. Les tas min et max sont les mêmes. Suppose une machine 64 bits. Les tas de plus de 4-6g nécessiteront un réglage et un test minutieux. 6g n'est pas obligatoire
-server -Xms6g -Xmx6g -XX:MaxPermSize=256m
Option A (collecteur parallèle): travail à haut débit, par lots. Pauses périodiques notables.
-XX:+UseParallelGC
Option B (CMS): débit inférieur, latence inférieure, traitement en continu. Des micro-pauses fréquentes et imperceptibles, de longues pauses rares. Surveillance supplémentaire pendant UAT/SAT/Pré-production. Voir ce journal en utilisant HPJmeter ou GCViewer.
-verbose:gc -Xloggc:my_gc_output.hprof -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Cheers!
Eh bien, iCMS n'est plus recommandé [http://blogs.oracle.com/jonthecollector/entry/really_icms_really], d'autant plus que la plupart des serveurs ont plusieurs cœurs/threads. –
La question comme indiqué est trop vague pour répondre sainement. Cela dépend de votre charge de travail, de vos exigences et de vos objectifs.
En général, je commencerais par -Xmx (quantité de RAM dont vous avez besoin) g, et -XX: UseCompressedOops. Au-delà, faites un test. Apportez les modifications un à la fois et mesurez leur effet sur votre propre charge de travail.
La question est vraiment très vague, AFAIK il n'y a pas un ensemble de paramètres qui peuvent être utilisés pour toutes/la plupart des applications. A moins que je ne me trompe, à partir de JDK 6, la JVM a aussi une capacité limitée à se régler de toute façon. Les étapes que vous pourriez prendre sont:
étape 1. mettre dans certains Xmx et MaxPermSize si vous "connaissez" votre application aura besoin de plus que la valeur par défaut. étape 2. Exécutez l'application et regardez jstat. Passez à l'étape 3 si le modèle GC n'est pas satisfaisant. étape 3. Réglez un paramètre à la fois en fonction de votre observation. étape 4. Répétez - passez à l'étape 2 :-)
C'est la seule façon dont j'ai vu le travail de réglage. Si vous utilisez un produit (tel que Weblogic, Websphere), le fournisseur peut vous recommander des paramètres de base avec lesquels vous pourriez commencer, mais en général, vous voudriez commencer par ceux par défaut. Sincères salutations
- 1. Quel est le moteur de jeu par navigateur le plus simple/le plus simple?
- 2. Quel est le moyen le plus simple d'écrire une application de type guide pour iPhone?
- 3. Quel est le format le plus simple pour AVAudioRecorder?
- 4. Django: quel est le moyen le plus simple de tester si l'objet est en jeu
- 5. Quel est le moyen le plus simple d'utiliser le code source C dans une application Java?
- 6. C# GC pour le serveur
- 7. Quel est le moyen le plus simple de déployer une application WPF?
- 8. Paramètres Jvm côté serveur
- 9. Quel est le moyen le plus simple de créer un fichier de paramètres en python
- 10. Quel est le Java ORM le plus simple supportant Sqlite?
- 11. Quel est le moyen le plus simple de créer une grille cliquable pour un jeu en C++?
- 12. Quel est le moyen le plus simple d'ajouter une image à mon application GWT?
- 13. Quel SGBD est le plus approprié pour un serveur de jeu MMORPG?
- 14. Quel est le moyen le plus simple d'exporter des données depuis une application google app engine?
- 15. conf jvm pour normal gc à charge élevée
- 16. Quel est le GC parallèle standard appelé dans les vidages sur incident JVM?
- 17. Quel est le moyen le plus simple de créer une authentification facebook frontend-javascript (pour une application facebook)?
- 18. Quel est le moyen le plus simple de découper de gros fichiers XAML dans mon application?
- 19. Quel est le système d'exploitation le plus simple disponible?
- 20. Quel est le XSD le plus simple/le plus clair pour ce XML?
- 21. Application FileChooser simple pour le serveur Tomcat?
- 22. Quel est le framework AJAX le plus simple, le plus réputé et le plus expérimenté?
- 23. Quel est le format d'image RGB le plus simple?
- 24. Dans une application C#, quel est le moyen le plus optimal pour insérer de nombreux enregistrements dans le serveur SQL?
- 25. Quel est le moyen le plus simple d'installer mon application Grails avec LightHTTPD pendant le développement?
- 26. Quel est le moyen le plus simple pour effectuer une recherche sur un ensemble de données?
- 27. Quel est le meilleur, uploader le plus simple fichier ajax?
- 28. Quel est le mécanisme GC de Gambit-C?
- 29. Quel est le meilleur moyen de stocker/définir les paramètres de configuration pour une application C#?
- 30. Quel est le moyen le plus simple pour télécharger le fichier en PHP
Je ne sais pas si cette question est vraiment sur le sujet. De toute façon, vous devriez poster tout en dessous de la ligne comme une réponse à votre question. Vous pouvez répondre à vos propres questions! –
icms n'est recommandé sur aucun système moderne (plus d'un noyau) en raison de la nature à thread unique de la phase init mark et de la programmation entre les récupérations en mode icms. – Matt
Vous devriez également avoir ces logs toujours en test et déclaration globale d'un tas 6g est assez insignifiant, par exemple l'impact de compressedoops – Matt