Здесь нужно кое-что понять, а затем рассмотреть в вашей ситуации.
Каждый процесс JVM имеет свое собственное виртуальное адресное пространство, которое защищено операционной системой от других процессов.ОС отображает физические диапазоны адресов (называемых страницами) в виртуальное адресное пространство каждого процесса.Когда требуется больше физических страниц, чем доступно, страницы, которые не использовались в течение некоторого времени, будут записаны на диск (так называемый пейджинг) и затем могут быть использованы повторно.Когда данные этих сохраненных страниц требуются снова, они считываются обратно на ту же или другую физическую страницу.Делая это, вы можете легко запустить 16 или более JVM с кучей 1 ГБ на машине с 8 ГБ физической памяти.Проблема состоит в том, что чем больше требуется подкачки на диск, тем больше вы собираетесь снизить производительность ваших приложений, поскольку дисковый ввод-вывод на несколько порядков медленнее, чем доступ к ОЗУ.Это также является причиной того, что пространство кучи одной JVM не должно быть больше физической памяти.
Причина наличия опций -Xms и -Xmx заключается в том, что вы можете указать начальный и максимальный размер кучи.,Поскольку ваше приложение работает и требует больше места в куче, JVM может увеличить размер кучи в этих пределах.Часто эти значения устанавливаются одинаковыми, чтобы исключить накладные расходы, связанные с изменением размера кучи во время работы приложения.Большинство операционных систем выделяют физические страницы только тогда, когда они требуются, поэтому в вашей ситуации, если -Xms small, не изменит количество выполняемой подкачки.
Ключевым моментом здесь является то, что это система виртуальной памяти операционной системы.система, позволяющая создать впечатление, что она использует больше памяти, чем физически на вашем компьютере.