2012-12-19 3 views
1

Je me demande si je commence une machine virtuelle java avec:Java, JVM et OS et échange

-Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=256m 
-XX:+UseParallelGC -XX:ParallelGCThreads=4 -XX:+UseParallelOldGC 
-XX:LargePageSizeInBytes=4m -XX:-BindGCTaskThreadsToCPUs 

Je commence le serveur avec -Xms égal à I -Xmx le processus OS Java "hold" la mémoire de l'OS pour de bon? Donc, cette JVM aura 2 Go pour cela et si le système d'exploitation l'a alors il permettra au processus de démarrer sinon non.

Existe-t-il une possibilité qu'après le démarrage de la JVM avec 2 Go pour utiliser la mémoire d'échange de l'os?

(donc si elle commence d'abord sans utiliser la mémoire de swap)

Répondre

5

Cela utilisera environ 2400 Mo de mémoire virtuelle au démarrage. Il ne rend jamais la mémoire virtuelle. Il peut rendre la mémoire principale mais rarement.

Y a-t-il une possibilité qu'après le démarrage de la JVM avec 2 Go pour utiliser la mémoire d'échange de l'os?

Technique oui, mais en pratique c'est une très mauvaise idée. Le GC quand il est exécuté suppose qu'il a un accès aléatoire à toute la mémoire. Si votre JVM commence à échanger, elle peut s'arrêter pendant de longues périodes (plusieurs minutes) et même bloquer la machine.

Étant donné que vous pouvez acheter 32 Go pour environ 200 $, il est généralement plus simple d'acheter suffisamment de mémoire pour vos besoins.

+0

C'est ce qui se passe réellement "commence à échanger, il peut s'arrêter pendant de longues périodes de temps" mais je ne comprends pas pourquoi provoquer le système d'exploitation, montre qu'il y a assez ... donc si JVM utilisera 2 Go 'quand il pourrait utiliser le swap? – Cris

+0

Donc, quand une JVM commence à échanger? Cela aurait été plus facile à demander ... – Cris

+2

@Cris La mémoire virtuelle est virtuelle pour le processus car l'OS peut faire (presque toujours) ce qu'il juge nécessaire avec lui. Si un autre processus démarre et demande suffisamment de mémoire pour aller au-dessus de la mémoire physique de l'ordinateur, le système d'exploitation devra permuter certaines pages de la mémoire, et le fera généralement pour le processus plus long. –