জেভিএম মেমরির খরচ


9

আমি লো মেমোরি সিস্টেমে (150-256Mb) টমকাট চালানোর চেষ্টা করছি। যদিও আমি JVM -Xmx64m দিয়ে শুরু করি (যা যাইহোক ডিফল্ট হওয়া উচিত), প্রক্রিয়াটি অবিলম্বে 200Mb + গ্রহণ করে takes

আমি ভাবছি কেন জেভিএমকে নিজেই এতো বেশি মেমরি দরকার, বা যদি এই টিউন করার কোনও উপায় থাকে? অন্যান্য জেভিএম কি কম স্মৃতিশক্তি গ্রহণের জন্য সূর্যের চেয়ে ভাল - এবং তারা টমক্যাট দিয়ে কাজ করে?

উত্তর:


5

গাদা ছাড়াও ( -Xmsএবং এর দ্বারা নির্দিষ্ট -Xmx) আপনাকে নন হ্যাপ অঞ্চলগুলি অন্তর্ভুক্ত করতে হবে। এর মধ্যে রয়েছে

  • পারম জেনার, যা 32 বিট সিস্টেমে mb৪ এমবি এবং প্রাথমিকভাবে bit৪ বিট সিস্টেমে 96৯ এমবি রয়েছে
  • কোড ক্যাশে, যা JVM এর উপর নির্ভর করে 20 এবং 40mb এর মধ্যে রয়েছে
  • এনআইও বাফার অঞ্চল (সেখান DirectByteBufferথেকে আঁকা), এটি প্রাথমিকভাবে mb৪ এমবি

নিজেই জেভিএমের কাজের স্থান রয়েছে যা কয়েক ডজন এমবি হবে b

সার্ভার ক্লাস মেশিন ব্যবহার করার সময় আপনার সান জেভিএমের অটো সাইজিং সম্পর্কেও সচেতন হওয়া উচিত । সময়ের সাথে সাথে সার্ভার ক্লাসের সংজ্ঞা (2 জিবি মেমরি, একাধিক কোর) কিছুটা হ্রাস পেয়েছে এবং এখন বেশিরভাগ মেশিন -serverঅপ্টিমাইজেশন ট্রিগার করতে সক্ষম । আমার পরামর্শটি সর্বদা সেটিংস নির্দিষ্ট করে জানাতে হয় -Xmsএবং আপনি খুব ভাল কারণ সম্পর্কে না ভাবতে পারলে -Xmxপাস -serverহয়।


ভার্চুয়াল মেমরি থেকে সাবধান থাকুন যা জেভিএম কেবলমাত্র সংরক্ষণ করে, এবং এখনও ব্যবহার করে না।
স্টিভ স্নেপ

সত্য, পারমজেন এবং কোড ক্যাশের মতো এই বিভাগগুলির বেশিরভাগই শুরুতে বরাদ্দ করা হয়, তবে বেশিরভাগ কার্নেলগুলি প্রয়োজন পর্যন্ত এই বিভাগগুলিতে পৃষ্ঠা বরাদ্দ করা এড়াতে পারে।
ডেভ চেনি

1
তথ্যের জন্য ধন্যবাদ - আমি মনে করি এটি মেমরিটি কোথায় যাচ্ছে তা ব্যাখ্যা করে। এই মান পরিবর্তন করার কোন উপায় আছে কি? এমনকি আরও প্রতিটি বিভাগের কতটা ব্যবহার ছিল তা দেখার উপায় হতে পারে - আমি জানি না জাভা ডিবাগিং / মনিটরিংয়ের কোনও সরঞ্জাম আপনাকে এটি করতে দেয় কিনা?
ড্রইমন

1
ব্যবহৃত বিভিন্ন বিভাগ সম্পর্কে ধারণা পেতে আপনি pmap বা jmap ব্যবহার করতে পারেন। বেশিরভাগ সাধারণ বিকল্প (এবং তাদের পূর্বনির্ধারিত ) এখানে লিখিত রয়েছে, java.sun.com/javase/technologies/hotspot/vmoptions.jsp । এগুলি প্রায়শই পরিবর্তিত হয় এবং ওএস (সাধারণত স্ট্যাকের আকার) এবং খিলান (bit৪ বিট ওএসের সাধারণত বৃহত্তর জেভিএম অঞ্চলগুলি বোঝায়) এর মধ্যে পার্থক্য থাকতে পারে
ডেভ চেনি

3

-এক্সএমএক্স বিকল্পের সাহায্যে আপনি জেভিএম সংরক্ষণ করেছেন যে স্তূপের আকার সীমাবদ্ধ করে রেখেছেন ... এখানে জেভিএমের অতিরিক্ত সংস্থান রয়েছে ...

"মেমরির জন্য ধন্যবাদ" * একটি ভাল নিবন্ধ যা একটি জেভিএম কীভাবে স্মৃতি ব্যবহার করে তা ব্যাখ্যা করে ...

এটি ছাড়াও আপনি আইবিএমের জেভিএম চেষ্টা করতে পারেন এটি টমকেটের সাথে কাজ করা উচিত, জানেন না যে কোনও ফ্রি জেভিএম বাস্তবায়ন কাজ করে কিনা।

তবুও, আমি মনে করি না যে মেমরির কম একটি মেশিন আপনার কোনও উপকার করবে। জাভা শুধু স্মৃতি প্রয়োজন।

* যেহেতু নতুন ব্যবহারকারী হাইপারলিঙ্কগুলি জমা দিতে পারবেন না, আপনাকে সেই নিবন্ধটি নিজেই সন্ধান করতে হবে ... "মেমরি আইবিমের জন্য ধন্যবাদ" এর জন্য এটি গুগলে প্রথম হিট।



2

এছাড়াও JRockit JVM ব্যবহার করে দেখুন, যার স্মৃতিচারণ কম রয়েছে। আপনি এখনও বিএএ লাইসেন্সপ্রাপ্ত জেআরকিট সংস্করণগুলি বিনামূল্যে ডাউনলোড করতে পারেন। অর্থাত্ ওরাকল বিইএর দায়িত্ব নেওয়ার আগে সংস্করণগুলি।

ডাউনলোড লিঙ্কগুলির জন্য http://forums.oracle.com/forums/thread.jspa?threadID=816133&tstart=0 দেখুন ।


0

আমি খুঁজে পেয়েছি একটি দরকারী কৌশল হিপ বনাম পার্জেন স্পেস দ্বারা ঠিক কতটা মেমরি ব্যবহৃত হয় তা দেখতে জেএমএক্স মনিটরিং ব্যবহার করা।

টমকাটে জেএমএক্স সেটআপ করুন এখানে বর্ণিত হিসাবে http://tomcat.apache.org/tomcat-6.0-doc/monmitted.html

তারপরে JConsole ব্যবহার করুন (JDK 5 বা JDK 6 এর সাথে আসে) - মেমরি ট্যাগটি সময়ের সাথে সাথে মেমরির খরচ ট্র্যাক করবে।

এছাড়াও - ওয়েব অ্যাপসটির নরম পুনঃসূচনাগুলি থেকে সাবধান থাকুন। আপনি যদি কোনও ওয়েব অ্যাপ্লিকেশন পুনরায় লোড করেন তবে পার্জেন স্পেসটি আবর্জনা সংগ্রহ করা হবে না এবং সময়ের সাথে সাথে বাড়বে। পার্জেন স্পেস পুনরায় দাবি করার জন্য আপনাকে টমক্যাটটির একটি সম্পূর্ণ স্টপ / স্টার্ট করতে হবে।


জেভি কনসোলের পরিবর্তে ভিজুয়ালভিএম ব্যবহার করা যেতে পারে এবং জেভিএমের মধ্যে মেমরির সমস্যার সন্ধান করার সময় আরও বিশদ দিতে পারে। সমস্যাগুলি খুঁজে পেতে আমাকে একাধিক অনুষ্ঠানে এটি ব্যবহার করতে হয়েছিল।
জেরেমি বাউস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.