2010-09-01 28 views
1

J'utilise un conteneur Solaris avec 2 cœurs (la machine physique en a 32 avec 8 threads, chacun) pour exécuter un jvm (BEA Jrockit). La surprise est: Runtime.getRuntime().availableProcessors() renvoie 256 plutôt que 2 ou, disons 16. Autrement dit, l'application (un produit scellé) croit en 256 cœurs disponibles, ce qui peut causer des problèmes de performance.Java availableProcessors() dans un conteneur Solaris

Est-il possible de limiter le nombre de cœurs qu'un conteneur Solaris peut voir ou de passer à JRockit (ou même à Sun Hotspot)?

Répondre

1

Vous pouvez utiliser:

# poolcfg -c 'create pset zone_pset (uint pset.min=2; uint pset.max=15)' 
# poolcfg -c 'create pool zone_pool' 
# poolcfg -c 'associate pool zone_pool (pset zone_pset)' 
# poolcfg -c 'modify pool zone_pool (string pool.scheduler="FSS")' 
# pooladm -c 

spécifier entre 2 et 15 cœurs dans votre récipient. Lire la suite here