أكثر

تجنب GeoServer / Java بسبب نفاد خطأ مساحة الكومة؟

تجنب GeoServer / Java بسبب نفاد خطأ مساحة الكومة؟


أنا جديد على Geoserver و Ubuntu و Java ، لكنني قمت بتنزيل آلة افتراضية من gisvm.com وأستعد الآن. لقد وصلت إلى حد تكوينه باستخدام بعض ملفات الأشكال الكبيرة إلى حد ما من مشروع عملت عليه سابقًا.

سؤالي يتعلق بمشكلة أرى ما إذا كنت أعرض ملف الأشكال باستخدام خيار معاينة طبقة OpenLayers. أرى خطأ:

كود معاينة خريطة OpenLayers = "خطأ داخلي" فشلت عملية التقديم. java.lang.OutOfMemoryError: Java heap space

قادني Googling إلى الكثير من خيارات سطر أوامر Java لزيادة مساحة الكومة ، لكن ليس لدي أي فكرة عما إذا كان ينبغي تطبيق ذلك على متغير البيئة ، في برنامج نصي لبدء التشغيل أو كجزء من تكوين Geoserver.

هل يمكنك مساعدتي في فهم ما أحتاج إلى تعديله لكي يعمل هذا؟

أنا أتساءل أيضًا عما إذا كان يجب أن أقوم بتقسيم ملف الأشكال إلى قطع أصغر.


يجب عليك تغيير كومة الذاكرة في JVM الخاص بك. افترضت أن gisvm.com يستخدم Tomcat ، لذا يمكنك العثور على الكثير من البرامج التعليمية حول "زيادة مساحة كومة java في Tomcat" في google. بشكل أساسي هو إضافة معلمة -Xmx128m إلى JVM لزيادة كومة الذاكرة.


تلقيت نفس رسالة الخطأ على ملف مشغل برامج وندوز مع GeoServer باستخدام جيتي. بعد بعض البحث وجدت الملفC: Program Files (x86) GeoServer 2.10.1 wrapper wrapper.confحيث قمت بتحرير هذين السطرين:

# حجم كومة Java الأولي (بالميغا بايت) wrapper.java.initmemory = 16 # الحد الأقصى لحجم كومة Java (بالميغا بايت) wrapper.java.maxmemory = 128

الواضح انه انهى الخدعة…

لقد وجدت تلميحًا لهذا الملف هنا: http://osgeo-org.1560.x6.nabble.com/Geoserver-heap-size-permgen-space-configuration-td5145590.html


يمكنك زيادة تخصيص الذاكرة بالطرق التالية

(إعدادات الأداء في Java Virtual Machine (JVM) لحاويتك)

-Xmx256M -Xms48 م

"تخصيص ذاكرة إضافية للخادم الخاص بك. بشكل افتراضي ، ستستخدم JVM 64 ميغا بايت فقط من الكومة. إذا كنت تخدم فقط بيانات متجهية ، فسوف تقوم بالبث ، لذا فإن امتلاك المزيد من الذاكرة لن يؤدي إلى زيادة الأداء. إذا كنت تخدم أغلفة ، ومع ذلك ، سيستخدم JAI ذاكرة تخزين مؤقت على القرص. -Xmx256M يخصص 256 ميجابايت من الذاكرة إلى GeoServer (استخدم المزيد إذا كان لديك ذاكرة زائدة). من الجيد أيضًا تكوين حجم ذاكرة التخزين المؤقت لتجانب JAI (انظر صفحة تكوين الخادم في الويب قسم واجهة الإدارة) بحيث يستخدم 75٪ من الكومة (0.75). -Xmx48m سيخبر الجهاز الظاهري بالاستيلاء على كومة 48 ميجابايت عند بدء التشغيل ، مما سيجعل إدارة الكومة أكثر استقرارًا أثناء خدمة التحميل الثقيل. "

-XX: MaxPermSize = 128 م

"يزيد الحد الأقصى لحجم التوليد الدائم (أو" permgen ") المخصص لـ GeoServer إلى 128 ميجا بايت. Permgen هو جزء الكومة حيث يتم تخزين رمز بايت للفئة. يستخدم GeoServer الكثير من الفئات ، وقد يستنفد هذه المساحة بسرعة ، مما يؤدي إلى الخروج من أخطاء الذاكرة. هذا مهم بشكل خاص إذا كنت تنشر GeoServer مع تطبيقات أخرى في نفس الحاوية ، أو إذا كنت بحاجة إلى نشر مثيلات GeoServer متعددة داخل نفس الحاوية. "

http://docs.geoserver.org/stable/en/user/production/container.html


تغيير Java Heap Memory for Geoserver

sudo vi /usr/share/tomcat7/bin/catalina.sh

السطر 3

تصدير CATALINA_OPTS = "- Xms2048m -Xmx8g"

غير ال"-Xmx2048m"إلى القيمة المطلوبة ، مثلXmxحساس لحالة الأحرف ، يمكنك استخدامه"ز"لـ GB أو"م"لـ MB

بعد حفظ التغييرات ، تذكر إعادة التشغيلهر:

إعادة تشغيل خدمات sudo tomcat7


شاهد الفيديو: Building a simple web mapping application using PostGIS, GeoServer u0026 OpenLayers