2010-12-04 32 views
3

Nous utilisons le serveur Windows 2003 64 bits pour exécuter une application WebSphere/J2EE (la machine virtuelle Java est également 64 bits). La machine a 16 Go de mémoire physique. Malheureusement, notre application demande beaucoup de mémoire et il nous faudrait encore du temps pour ajouter de la mémoire. Je comprends que le système d'exploitation lui-même nécessite une quantité de mémoire suffisante. Cela étant dit, quelle serait la taille maximale de segment de sécurité (sans pagination?) Que nous pourrions utiliser, en supposant que c'est la seule application fonctionnant sur le système?Quelle est la taille de segment Java maximale que je peux utiliser en toute sécurité sur une plate-forme Windows 64 bits?

Répondre

2

Je pense que la réponse dépendra de nombreux facteurs, dont beaucoup sont difficiles à prévoir. IMO, le moyen le plus pratique pour déterminer la taille de tas maximale de sécurité est par essais et erreurs. Je commencerais avec une taille de tas maximale d'environ 15 Go, regarder les statistiques de mémoire/pagination du système, et ajuster vers le haut ou vers le bas.

0

La meilleure idée est d'expérimenter ... Vérifiez la première réponse here ... il vous aidera ...

Vous pouvez écrire un fichier batch pour faire l'expérience pour différentes tailles de tas et de voir où il se bloque ...

0

Si vous avez deux banques de mémoire, par exemple Comme vous avez deux processeurs, vous pouvez constater que les performances de votre application sont considérablement plus lentes si vous utilisez plus de la moitié de votre mémoire. Vous obtiendrez les meilleures performances de votre mémoire si vous utilisez environ les 3/4 de votre taille de banque de mémoire.

Vous pouvez toujours obtenir de meilleures performances pour utiliser plus de votre mémoire, mais il ne sera pas à l'échelle comme vous pourriez vous y attendre et vos temps de GC vont sauter de manière significative.