আমরা মাঝারি লোডের অধীনে জাভা প্রক্রিয়াটির মেমরি ব্যবহার তদন্তের চেষ্টা করছি।
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12663 test 20 0 8378m 6.0g 4492 S 43 8.4 162:29.95 java
যেমন আপনি দেখতে পাচ্ছেন আমাদের 6 জিবিতে আবাসিক স্মৃতি রয়েছে। এখন আকর্ষণীয় অংশটি হ'ল: এই প্যারামগুলির সাথে প্রক্রিয়াটি কার্যকর করা হয়:
- -Xmx2048m
- -Xms2048m
- -XX: NewSize = 512m
- -XX: MaxDirectMemorySize = 256m
- ... আরও কিছু জন জিসি এবং স্টাফ জন্য
এই সেটিংস এবং প্রকৃত মেমরির ব্যবহারের দিকে তাকিয়ে আমরা এই প্রক্রিয়াটি কী ব্যবহার করবে এবং এটি আসলে কী ব্যবহার করে তা আমরা কী প্রত্যাশা করি তার পার্থক্য দেখতে আমরা হোঁচট খেয়ে যাই।
সাধারণত আমাদের স্মৃতি সমস্যা হিপ ডাম্প বিশ্লেষণ করে সমাধান করা হয় তবে এক্ষেত্রে আমাদের স্মৃতি স্তূপের বাইরে কোথাও ব্যবহৃত হয়।
প্রশ্ন: এ জাতীয় উচ্চ মেমরির ব্যবহারের কারণ এবং চেষ্টা করার পদক্ষেপগুলি কী হবে? কোন প্রক্রিয়া আমাদের সেই প্রক্রিয়াতে স্মৃতি ব্যবহার করে তা সনাক্ত করতে সহায়তা করতে পারে?
সম্পাদনা 0
দেখে মনে হচ্ছে এটি হিপ সম্পর্কিত সমস্যা কারণ আমাদের এখনও সেখানে বেশ কিছু জায়গা রয়েছে:
jmap -heap 12663
ফলাফল (স্থান বাঁচাতে সম্পাদিত)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 2147483648 (2048.0MB)
NewSize = 536870912 (512.0MB)
MaxNewSize = 536870912 (512.0MB)
OldSize = 1610612736 (1536.0MB)
NewRatio = 7
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 85983232 (82.0MB)
New Generation: 45.7% used
Eden Space: 46.3% used
From Space: 41.4% used
To Space: 0.0% used
concurrent mark-sweep generation: 63.7% used
Perm Generation: 82.5% used
সম্পাদনা 1
পিএমএপ ব্যবহার করে আমরা দেখতে পাচ্ছি যে 64Mb এর বরাদ্দের বেশ কিছু পরিমাণ রয়েছে:
pmap -x 12663 | grep rwx | sort -n -k3 | less
ফলাফল স্বরূপ:
... a lot more of these 64Mb chunks
00007f32b8000000 0 65508 65508 rwx-- [ anon ] <- what are these?
00007f32ac000000 0 65512 65512 rwx-- [ anon ]
00007f3268000000 0 65516 65516 rwx-- [ anon ]
00007f3324000000 0 65516 65516 rwx-- [ anon ]
00007f32c0000000 0 65520 65520 rwx-- [ anon ]
00007f3314000000 0 65528 65528 rwx-- [ anon ]
00000000401cf000 0 241904 240980 rwx-- [ anon ] <- Direct memory ?
000000077ae00000 0 2139688 2139048 rwx-- [ anon ] <- Heap ?
সুতরাং কীভাবে এটি সন্ধান করতে হবে যে এই 64 এমবি অংশগুলি? এগুলি কী ব্যবহার করছে? তাদের মধ্যে কী ধরনের ডেটা রয়েছে?
ধন্যবাদ