پیکربندی های اولیه

ابتدا Heap را تعریف می‌کنیم و سپس به نحوه تنظیم آن در وبلاجیک بپردازیم. درک مفهوم Heap قطعا دید بهتری به Administration می‌دهد که می‌تواند بسیار مثمر ثمر واقع گردد.

توصیه می‌شود قبل از مطالعه این پست، حتما پست قبلی با عنوان مروری مفهومی بر تکنولوژی جاوا را مرور فرمایید.

 

Heap چیست و چگونه تنظیم می‌گردد؟

هنگام استارت شدن JVM ایجاد می‌شود و بین تمامی  JVM Threadها به اشتراک گذاشته می‌شود. یک فضای ذخیره دیتای Runtime می‌باشد. فضای اختصاص داده شده به آن نیاز به پیوستگی ندارد. Object ،Class Variable‌ها و Instance Variableها داخل Heap قرار می‌گیرد. Objectهای درون آن توسط automatic storage management system بازپس‌گیری می‌شود.

نکته : automatic storage management system در حقیقت همان Garbage Collector است.

با توجه به تعریف بالا در صورتی که شما با مشکل Memory Leak مواجه هستید؛ این مشکل را باید در Heap جستجو و پیدا کنید.

JVM Architecture. Heap Inside JVM
JVM Architecture. Heap Inside JVM By IranWeblogic.ir

در تصویر زیر معماری جاوا ۷ بر اساس JVM را ملاحظه می‌کنید.

 

مقدار Heap Size توسط ۲ پارامتر Xms و Xmx تنظیم می‌گردد. خوب تفاوت این دو پارامتر در چیست؟ احتمالا ما فقط یاد گرفته باشیم این دو مقدار را یکسان قرار دهیم. به عنوان یک قانون کلی مساوی قراردادن این مقادیر ایده بدی نیست. قطعا مساوی قراردادن این مقادیر میزان STW را کاهش می‌دهد.

مقدار Xms مقداری است که در هنگام Start شدن و بالا آمدن سرور به آن اختصاص می‌یابد. مقدار Xmx در حقیقت Maximum مقدار Heap ایست که می‌تواند داشته باشد.

تعیین دقیق این ۲ مقدار در بهبود کارآیی نقش مهمی دارد و بستگی به موارد مختلفی دارد که از حوصله این مقاله خارج است.

برای تنظیم این مقادیر در وبلاجیک به مسیر روبرو رفته و مقادیر دلخواه را وارد نمایید(مثال زیر).   (Server’ – Server Start(tab) – Arguments(box’

Xms2048m -Xmx2048m-

در عبارات فوق m مخفف megabyte و افزون بر آن g مخفف gigabyte است. Xms2g -Xmx2g- معادل عبارت بالاست.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *