এই প্রশ্নটি মোটামুটি দীর্ঘ, তাই আমি শীর্ষে প্রশ্নগুলি জিজ্ঞাসা করব এবং তারপরে প্রশ্নগুলিতে আসার আমার পদ্ধতিটি অনুসরণ করব:
- (ব্যস্তবক্স ভিত্তিক) আরএম কি কার্যকর সংঘবদ্ধ র্যাম না থাকার কারণে কার্যকর করা যায় নি?
- যদি তা হয়, তবে কোনও সিস্টেম পুনরায় চালু না করে ডিএমএ-কে ডিফ্র্যাগ করার কোনও হালকা ওজন আছে?
- তা না হলে কিসের কারণ? কীভাবে ভবিষ্যতে এটি থেকে রোধ করতে পারি?
গত কয়েক দিন ধরে আমাদের পরীক্ষার ব্যবস্থাটি বেশ নিবিড়ভাবে চলার পরে - আমি সিস্টেমে টেলনেট করতাম এবং পরীক্ষার ফলাফলগুলি পরীক্ষা করেছিলাম। যখন আমি কিছু ডেটা মুছতে এসেছি, সিস্টেমটি কমান্ড লাইনটি ফিরিয়ে দিয়েছে (যেন কমান্ডটি সঠিকভাবে কার্যকর হয়েছে)। যখন আমি ফলাফলের অন্য সেটগুলির জন্য ডিরেক্টরিটি পরীক্ষা করতে এসেছি, তখনও দেখলাম ফাইলটি এখনও বিদ্যমান রয়েছে (এলএস ব্যবহার করে)।
এর পরে, আমি লক্ষ্য করেছি যে আমার শেল কমান্ডগুলির আরও অনেকগুলি প্রত্যাশার মতো পারফর্ম করছে না।
Rm সঠিকভাবে কার্যকর করতে ব্যর্থ হওয়ার পরে আমি dmesg থেকে একটি আউটপুট দিয়ে শুরু করব :
প্রক্রিয়া 6821 (আরএম) থেকে 61440 দৈর্ঘ্যের বরাদ্দ ব্যর্থ হয়েছে
প্রতি সিপিইউতে ডিএমএ:
সিপিইউ 0: হাই: 0, বিটিচ: 1 ইউএসডি: 0
অ্যাক্টিভ_অ্যানন: 0 অ্যাক্টিভ_ফিল: 1 অ্যাক্টিভ_অ্যানন: 0 অ্যাক্টিভ_ফিল: 0 অবিশ্বাস্য: 6 টি নোংরা: 0 লিখনব্যাক: 0 অস্থির: 0 ফ্রি: 821 স্ল্যাব: 353 ম্যাপড: 0 পেজ টেবিল: 0 বাউন্স: 0
ডিএমএ ফ্রি: 3284 কেবি মিনিট: 360 কেবি নিম্ন: 448 কেবি উচ্চ: 540 কেবি অ্যাক্টিভ_অ্যানন: 0 কেবি নিষ্ক্রিয়_আনন: 0 কেবি অ্যাক্টিভ_ফিল: 4 কেবি নিষ্ক্রিয়_ফিল: 0 কেবি অনিবার্য: 24 কেবি বর্তমান: 8128 কেবি পৃষ্ঠাগুলি_স্ক্যানড: 0 সমস্ত_আপনিযোগ্য? না
lowmem_re সংরক্ষণ []: 0 0 0
ডিএমএ: 31 * 4 কেবি 47 * 8 কেবি 42 * 16 কেবি 64 * 32 কেবি 1 * 64 কেবি 0 * 128 কেবি 0 * 256 কেবি 0 * 512 কেবি 0 * 1024 কেবি 0 * 2048 কেবি 0 * 4096 কেবি = 3284 কেবি
14 টি মোট পেজকেই পেজ
প্রক্রিয়া ডেটার জন্য র্যাম বরাদ্দ করতে অক্ষম, ভুল 12
প্রথমদিকে, আমি ভেবেছিলাম যে আমি সংবিঘ্ন স্মৃতির বৃহত্তম অংশে প্রোগ্রামটি চালাতে পারছি না। মানে ডিএমএ খুব খণ্ডিত ছিল এবং মেমরিটিকে ডিফল্ট করার জন্য আমাকে সিস্টেম পাওয়ার কোনও উপায় খুঁজে বের করতে হবে।
তারপরে আমি একটি দ্রুত গণিত / স্যানিটি পরীক্ষা করেছিলাম এবং বুঝতে পেরেছি যে প্রোগ্রামটি একমাত্র 64kB সংলগ্ন মেমরি স্লটে চালাতে সক্ষম হওয়া উচিত ছিল। আরএম 61440 বাইট (60 কেবি) অনুরোধ করছিল।
আমি একটি ভাল পুরানো "ম্যানুয়াল ডিফ্র্যাগ" করেছি এবং সিস্টেমটি পুনরায় বুট করেছি। আমি যখন সিমটেমটি পুনরায় বুট করি তখন আমি আউটপুট / প্রোক / বন্ধুসিনফো:
Node 0, zone DMA 2 8 3 12 0 1 0 1 0 1 0
যা আমি মানচিত্রে সন্দেহ করি:
- 2 এক্স 4 কেবি
- 8 এক্স 8 কেবি
- 3 এক্স 16 কেবি
- 12 x 32 কেবি
- 1 এক্স 128 কেবি
- 1 এক্স 512 কেবি
তবে যদি মানগুলির উপরের তালিকার সংখ্যার যোগফল থাকে তবে এটি / proc / meminfo এর ফলাফলের সাথে মেলে না :
MemTotal: 6580 kB
MemFree: 3164 kB
Buffers: 0 kB
Cached: 728 kB
SwapCached: 0 kB
Active: 176 kB
Inactive: 524 kB
Active(anon): 0 kB
Inactive(anon): 0 kB
Active(file): 176 kB
Inactive(file): 524 kB`
Unevictable: 0 kB
Mlocked: 0 kB
MmapCopy: 844 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 0 kB
Mapped: 0 kB
Slab: 1268 kB
SReclaimable: 196 kB
SUnreclaim: 1072 kB
PageTables: 0 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3288 kB
Committed_AS: 0 kB
VmallocTotal: 0 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
পুনরুদ্ধার করার জন্য, আমার প্রশ্নগুলি হ'ল:
- পর্যাপ্ত পরিমাণে র্যাম না থাকায় আরএম কি কার্যকর করা হয়নি?
- যদি তা হয়, তবে কোনও সিস্টেম পুনরায় চালু না করে ডিএমএ-কে ডিফ্র্যাগ করার কোনও হালকা ওজন আছে?
- তা না হলে কিসের কারণ? কীভাবে ভবিষ্যতে এটি থেকে রোধ করতে পারি?
আমি ল্যানট্রোনিক্সের এক্সপোর্ট প্রো (8 এমবি, লিনাক্স ওএস) ইউসি্লিনাক্স সংস্করণ 2.6.30 ব্যবহার করছি। ব্যবহৃত শেলটি হুশ।