У меня есть новый VPS для запуска некоторых программ Java, которые я и некоторые приятели сделали. Я начинаю процесс с линией, как это:Java выделяет дополнительные 2gb памяти
java -Xmx512M -jar program.jar
На нашем старом VPS, вы можете использовать команду «сверху», чтобы увидеть, как использовалось много виртуальных и резидентный. Он будет использовать как 600-700 мб виртуальной памяти. Теперь на нашем новом VPS с той же командой виртуальная память всегда будет лишней ~ 2gb по значению -Xmx. Поэтому вместо виртуальной памяти около 600-700 мб, вместо 2700-3000mb.
Старый VPS работает CentOS 5.7, а новый работает CentOS 6.2. Оба работают на JRE 1.7u3 64bit.
Почему это и как я могу это исправить?
редактировать: топ
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
другой редактировать: Я не подвергаю сомнению, почему виртуальная память использует больше памяти, чем указано в командной строке Java. Я задаюсь вопросом, почему он использует гораздо больше, чем раньше.
Убедитесь, что ваш java-процесс определенно использует параметр Xmx512m, используя «ps -ef», а затем, если это действительно так, обновите свой вопрос с помощью вывода сверху. – Rich
Если размер резидента составляет 270 МБ, а проблема с поисковым вызовом отсутствует, возникает ли проблема? –
Если программа не изменилась со старого VPS и со старым VPS, виртуальная память будет использовать только ~ 600-700mb, тогда да что-то не кажется правильным. Как старый, так и новый VPS запускают одну и ту же ОС и одну и ту же версию Java. –