JVM не может использовать большую страничную память, поскольку у нее недостаточно прав для блокировки страниц в памяти

StackOverflow https://stackoverflow.com/questions/1615717

  •  06-07-2019
  •  | 
  •  

Вопрос

Интересно, как я могу устранить следующую ошибку?

JVM не может использовать большую страничную память, поскольку у нее недостаточно прав для блокировки страниц в памяти

Настройки следующие:

установить JAVA_OPTS=-Xms20g -Xmx20g -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+Страницы использования -Duser.timezone="GMT" %DEBUG%

Это произошло в Windows Server 2003.

Это было полезно?

Решение 3

Только Windows Server 2003 поддерживает память большого объема. Чтобы использовать его, администратор должен сначала назначить дополнительную привилегию пользователю, который будет запускать приложение: 1. выберите Панель управления - > Инструменты администрирования - > Политика локальной безопасности 2. выберите Локальные политики - > Назначение прав пользователя 3. дважды щелкните «Блокировать страницы в памяти», добавьте пользователей и / или группы. 4. перезагрузите машину

Другие советы

Поиск в Google по ошибке приводит к точке доступа / Исходный файл src / os / win32 / vm / os_win32.cpp в openjdk-6, содержащий следующий комментарий:

// Windows large page support is available on Windows 2003. In order to use
// large page memory, the administrator must first assign additional privilege
// to the user:
//   + select Control Panel -> Administrative Tools -> Local Security Policy
//   + select Local Policies -> User Rights Assignment
//   + double click "Lock pages in memory", add users and/or groups
//   + reboot
// Note the above steps are needed for administrator as well, as administrators
// by default do not have the privilege to lock pages in memory.
//
// Note about Windows 2003: although the API supports committing large page
// memory on a page-by-page basis and VirtualAlloc() returns success under this
// scenario, I found through experiment it only uses large page if the entire
// memory region is reserved and committed in a single VirtualAlloc() call.
// This makes Windows large page support more or less like Solaris ISM, in
// that the entire heap must be committed upfront. This probably will change
// in the future, if so the code below needs to be revisited.

Если вы используете Windows 2003, это может помочь. Если нет, у меня нет других предложений.

Я столкнулся с тем, что только приведенных ниже конфигураций недостаточно:

Поддержка Windows large page доступна в Windows 2003.Для того, чтобы использовать
большая страничная память, администратор должен сначала назначить дополнительные привилегии
для пользователя:

  • выберите Панель управления -> Административные инструменты -> Локальная политика безопасности
  • выберите Локальные политики -> Назначение прав пользователя
  • дважды щелкните "Заблокировать страницы в памяти", добавьте пользователей и /или группы
  • перезагрузка

Обратите внимание, что описанные выше шаги необходимы также для администратора, поскольку администраторы
по умолчанию у вас нет права блокировать страницы в памяти.

Программа, которая будет вызывать интерпретатор java (java program.java) должен быть вызван с административными правилами.Пример:Eclipse, Netbeans, cmd и т.д.В Windows, созданной после 2003 года, вам нужно выполнить приведенные выше настройки, и после этого вы можете щелкнуть правой кнопкой мыши, чтобы открыть меню и выбрать "баллотироваться в качестве администратора" на значок вызывающей программы или исполняемый файл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top