স্থির করুন: ভিএম আরম্ভের সময় ত্রুটি ঘটেছে এবং অবজেক্ট হ্যাপের জন্য পর্যাপ্ত জায়গা সংরক্ষণ করতে পারেনি



সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন

যদিও আজকাল জাভা অ্যাপলেটগুলি একটি জনপ্রিয় ওয়েব প্রযুক্তি না হলেও জাভা ভার্চুয়াল মেশিনটি সরাসরি একটি লিনাক্স সার্ভারে স্থাপন করার অসংখ্য কারণ রয়েছে। আপনি যদি লিনাক্স জাভা কমান্ডটি সরাসরি বিচ্ছিন্ন হার্ডওয়্যার বা তার নিজস্ব ভিএম এর অভ্যন্তরে চালানোর চেষ্টা করেন, তবে আপনি 'ভিএম সূচনা করার সময় ত্রুটি ঘটেছিল বস্তু হিপটির জন্য যথেষ্ট স্থান সংরক্ষণ করতে পারে নি'।



সম্ভবত এটি সম্ভবত অদ্ভুত দেখাচ্ছে কারণ আপনার কাছে সম্ভবত কমান্ডটি চালানোর জন্য পর্যাপ্ত পরিমাণ র‌্যাম রয়েছে, তবে এটি মূলত শারীরিক এবং ভার্চুয়াল মেমরি পৃষ্ঠাগুলি যেভাবে ব্যবহার করা হয় তার নির্দিষ্ট স্ফূরণের কারণে। কিছু অপেক্ষাকৃত বড় আকার নির্ধারণ করা আপনাকে এই বার্তাটিকে পুরোপুরি বাইপাস করার এবং জাভা কমান্ডটি চালানোর জন্য আপনাকে অন্য কোনওভাবে চালানো উচিত should



পদ্ধতি 1: কমান্ড লাইন বিকল্প ব্যবহার করে

আপনি যদি জাভা চালানোর চেষ্টা করে এবং এই বার্তাটি অর্জন করে থাকেন, তবে প্রোগ্রামটি চালুর জন্য মেমরির পর্যাপ্ত পরিমাণ রয়েছে কিনা তা নিশ্চিত করার জন্য আপনি সম্ভবত ফ্রি কমান্ডটি চালিয়ে গেছেন।



জাভা এবং ফ্রি কমান্ড

লক্ষ্য করুন যে আমাদের পরীক্ষার মেশিনে আমাদের প্রায় ২.৩ গিগাবাইট শারীরিক র‍্যাম ছিল এবং ভার্চুয়াল মেমরির একটিও পৃষ্ঠা এখনও ব্যবহার করেনি। যদি আপনি লক্ষ্য করেন যে আপনার কাছে একটি স্মৃতি ক্রাচ আছে, তবে আপনি আবার চেষ্টা করার আগে চালিত অন্যান্য জিনিসগুলি বন্ধ করতে চাইবেন। অন্যদিকে, যারা খুঁজে পেয়েছেন যে তাদের প্রচুর ফ্রি মেমরি রয়েছে তারা সরাসরি কোনও আকার নির্দিষ্ট করার চেষ্টা করতে পারেন।

উদাহরণস্বরূপ, আমাদের মেশিনে আমরা java -Xms256m -Xmx512M হিসাবে কমান্ডটি চালাতে সক্ষম হয়েছি এবং এটি এমনভাবে কাজ করেছে যা অন্যথায় প্রত্যাশিত ছিল। এটি জাভা ভার্চুয়াল মেশিন স্টার্টআপে রিজার্ভ করার চেষ্টা করে এমন হিপ আকারকে বাধা দেয়। যেহেতু একটি সীমাহীন ভার্চুয়াল মেশিন অনুমিতভাবে অস্বাভাবিক কাজ করতে পারে তাই এটি অন্যথায় মুক্ত সিস্টেমে ত্রুটি বার্তা ফেলে দিতে পারে। আপনি সঠিক সংমিশ্রণটি আবিষ্কার করার আগে আপনি এই দুটি মানটির সাথেও খেলতে চাইতে পারেন।



আপনি এটি চালাচ্ছেন তা নির্বিশেষে এটি একটি সমস্যা হতে পারে যেহেতু জেএনএম / লিনাক্স চালানোর জন্য আপনি যে ধরণের ভিএম ব্যবহার করছেন তা জেভিএমের কোনও সম্পর্ক নেই।

পদ্ধতি 2: পরিবর্তন স্থায়ী করতে ভেরিয়েবলগুলি রফতানি করা

আপনি যখন এমন কোনও মান খুঁজে বের করেন যা কার্যকর হয় আপনি সেই অধিবেশনটিকে স্থায়ী করার জন্য এটিকে রপ্তানি করতে পারেন। উদাহরণস্বরূপ, আমরা ব্যাশ কমান্ড প্রম্পট থেকে _JAVA_OPTIONS = ’- Xms256M -Xmx512M’ রফতানি ব্যবহার করেছি এবং আমাদের সার্ভার থেকে লগ আউট না হওয়া পর্যন্ত এটি আমাদের অন্য কোনও বিকল্প ছাড়াই জাভা কমান্ডটি চালানোর অনুমতি দেয়।

যখন আমরা অন্য সেশনে লগইন করেছি তখন এটি আবার চালানো দরকার, সুতরাং আপনি যদি জাভা কমান্ডটি প্রায়শই ব্যবহার করার পরিকল্পনা করেন তবে আপনি এটি কোনও প্রাসঙ্গিক স্টার্টআপ স্ক্রিপ্টগুলিতে যুক্ত করতে চাইতে পারেন। আমরা আমাদের .বাশ_লগিন ফাইলে লাইনটি যুক্ত করেছিলাম এবং মনে হয় প্রতিটি সময় আমরা আবার লগইন না করে লগইন প্রম্পটটি ব্যবহার করি, যদিও আপনি যদি অন্য কোনও শেল নিয়ে কাজ করে থাকেন তবে আপনাকে এর জন্য অন্য কোনও জায়গা সন্ধান করতে হতে পারে।

আপনি লক্ষ্য করেছেন যে কেবলমাত্র কয়েকটি হার্ডওয়্যার কনফিগারেশনই এই ত্রুটি বার্তাকে ট্রিগার করে। এর কারণ এটি সাধারণত মেশিনে প্রচুর পরিমাণে শারীরিক র‍্যাম নিয়ে ঘটে থাকে তবে কীভাবে এটি ব্যবহার করতে হয় তা হ্রাস করেন। জাভা একটি বিশাল ব্লক বরাদ্দ দেওয়ার চেষ্টা করবে কেবল এটি বলা যেতে পারে না, এটি এটি মেমরির বাইরে চলে যাওয়ার অর্থ দেয়।

পদ্ধতি 3: বর্তমান জাভা বিকল্পগুলি মুদ্রণ করা

আপনি যদি কমান্ড লাইনে কাজ করছেন এবং আপনি বর্তমানে _JAVA_OPTIONS মানটি কীভাবে সেট করেছেন তার একটি দ্রুত রেফারেন্স চান, তবে কেবল প্রতিধ্বনি run _JAVA_OPTIONS চালান এবং এটি অবিলম্বে বর্তমান মানগুলি মুদ্রণ করবে। আপনি যখন চেষ্টা করার জন্য সঠিক সংখ্যাগুলি বের করার চেষ্টা করছেন তখন সমস্যা সমাধানের জন্য এটি কার্যকর।

মনে রাখবেন যে এই ফিক্সটির চারপাশে অন্য কোনও খেলার দরকার পড়ে না, আপনি যদি ভার্চুয়াল মেমরির সংক্ষিপ্ত প্রান্তে সত্যই নিজেকে খুঁজে পান তবে জাভা 'অবজেক্ট হিপের জন্য পর্যাপ্ত জায়গা সংরক্ষণ করতে পারে না' বার্তাটি ফেলে দেবে। যদি এটি হয় তবে আপনি বর্তমানে কোন প্রক্রিয়াগুলি চলছে তা দ্বিগুণ করতে চান এবং যদি কোনও বিকল্প হয় তবে সম্ভবত সার্ভারটি পুনরায় চালু করতে চান। আপনি আরও অদলবদল তৈরি করতে পারেন, তবে এটি যদি কোনও সমস্যা হয় তবে এটি অন্য কোনও উপায়ে চেষ্টা করে সংশোধন করা ভাল।

বিরল ক্ষেত্রে আপনার সেটিংসটি সঠিক বলে মনে হচ্ছে তবে এটি এখনও কাজ করছে না, নিশ্চিত হয়ে নিন যে আপনি 64৪-বিট জাভা প্যাকেজটি ইনস্টল করেছেন যেহেতু এটি এই সমস্যার প্রতিরোধী হওয়া উচিত। সামঞ্জস্যপূর্ণ মেমরির প্রয়োজনীয়তা কেবল জাভার 32-বিট সংস্করণে প্রযোজ্য। আমরা কয়েকটি মুখ্য ক্ষেত্রে পেয়েছি যে 64৪-বিট সংস্করণটি একটি 32-বিট ভার্চুয়াল মেশিন তৈরি করার চেষ্টা করেছিল, তাই কমান্ড লাইনে -d64 বিকল্পটি নির্দিষ্ট করে এটি আমাদের জন্য স্থির করে।

3 মিনিট পড়া