JVM لا يمكن استخدام الكبيرة صفحة الذاكرة لأنه لا يملك ما يكفي من امتياز تأمين الصفحات في الذاكرة

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

  •  06-07-2019
  •  | 
  •  

سؤال

أتساءل كيف يمكن التوفيق بين الخطأ التالية?

JVM لا يمكن استخدام الكبيرة صفحة الذاكرة لأنه لا يملك ما يكفي امتياز تأمين الصفحات في الذاكرة

الإعدادات:

مجموعة JAVA_OPTS=-Xms20g -Xmx20g -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseLargePages -Duser.التوقيت="GMT" %تصحيح%

حدث هذا في Windows Server 2003.

هل كانت مفيدة؟

المحلول 3

ويدعم فقط ويندوز سيرفر 2003 صفحة الذاكرة الكبيرة. من أجل استخدامها، يجب على المسؤول أولا بتعيين امتياز إضافي للمستخدم الذي سيقوم بتشغيل التطبيق: 1. لوحة التحكم -> أدوات إدارية -> سياسة الأمن المحلي 2. تحديد السياسات المحلية -> تعيين حقوق المستخدم 3. انقر نقرا مزدوجا فوق "صفحات قفل في الذاكرة"، إضافة مستخدمين و / أو مجموعات 4. إعادة تشغيل الجهاز

نصائح أخرى

وغوغلينغ على الخطأ يؤدي إلى / الملف المصدر SRC / السراج / Win32 و/ الظاهري / 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.

إذا كنت تستخدم ويندوز 2003، وهذا قد يساعد. إذا لا، أنا لم يكن لديك أي اقتراح آخر.

أنا واجهت هذا فقط تعيين تكوينات أدناه لا يكفي:

النوافذ الكبيرة صفحة الدعم متوفر على ويندوز 2003.من أجل استخدام
كبيرة الصفحة الذاكرة ، يجب على المسؤول الأول تعيين إضافية امتياز
المستخدم:

  • حدد "لوحة التحكم" - > administrative Tools -> نهج الأمان المحلي
  • تحديد السياسات المحلية -> تعيين حقوق المستخدم
  • انقر نقرا مزدوجا فوق "تأمين الصفحات في الذاكرة" ، إضافة مستخدمين أو مجموعات
  • إعادة تشغيل

ملاحظة الخطوات اللازمة المسؤول وكذلك المسؤولين
بشكل افتراضي لا يشرفني أن تأمين الصفحات في الذاكرة.

البرنامج الذي سيتم استدعاء مترجم جافا (java program.java) يجب أن يسمى الإدارية rulles.على سبيل المثال:Eclipse, Netbeans, cmd, الخ.في النوافذ المصنوعة بعد عام 2003 حيث يمكنك أن تفعل كل الإعدادات أعلاه, و بعد يمكنك انقر بواسطة الزر الأيمن فتح القائمة واختيار "تشغيل admnistrator" على أيقونة أو قابل للتنفيذ المتصل البرنامج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top