Ho un nuovo VPS per eseguire alcuni programmi Java che io e alcuni amici abbiamo fatto. Comincio il processo con una linea come questa:Java sta allocando 2gb di memoria in più
java -Xmx512M -jar program.jar
Sul nostro vecchio VPS, è possibile utilizzare il comando 'top' per vedere come veniva usata molta memoria virtuale e residente. Userebbe come 600-700 MB di memoria virtuale. Ora sul nostro nuovo VPS, con lo stesso comando, la memoria virtuale sembra essere sempre un extra ~ 2gb rispetto al valore -Xmx. Quindi, invece della memoria virtuale intorno ai 600-700mb, è invece 2700-3000mb.
Il vecchio VPS esegue CentOS 5.7 e il nuovo esegue CentOS 6.2. Entrambi eseguono JRE 1.7u3 a 64 bit.
Perché è questo e come posso risolvere il problema?
edit: top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27645 pyro 20 0 3003m 270m 10m S 5.0 1.7 1:19.18 java -Xmx512M -jar cserver.jar
un'altra edit: Non metto in discussione il motivo per cui la memoria virtuale utilizza più memoria di quanto specificato nella riga di comando java. Sto mettendo in discussione il motivo per cui sta usando molto di più rispetto al passato.
Controlla che il tuo processo java utilizzi definitivamente il parametro Xmx512m usando 'ps -ef', e se davvero lo è, aggiorna la tua domanda con l'output di top. – Rich
Se la dimensione del residente è 270 MB e non vi sono problemi di paginazione, c'è un problema? –
Se il programma non è cambiato dal vecchio VPS, e con il vecchio VPS, la memoria virtuale userebbe solo ~ 600-700mb, quindi sì qualcosa non sembra giusto. Sia il vecchio che il nuovo VPS eseguono lo stesso sistema operativo e la stessa versione di Java. –