আমি যা বুঝি তার জন্য, যখন সিস্টেমটি নিখরচায় মেমরি না রাখে, কার্নেলের কিছু মেমরি ফিরে পেতে প্রক্রিয়াগুলি শুরু করা উচিত। তবে আমার সিস্টেমে এটি মোটেই ঘটে না।
ধরুন একটি সহজ স্ক্রিপ্ট যা সিস্টেমে উপলব্ধ থেকে আরও অনেক বেশি মেমরি বরাদ্দ করে (উদাহরণস্বরূপ লক্ষ লক্ষ স্ট্রিং সহ একটি অ্যারে)। যদি আমি এটির মতো কোনও স্ক্রিপ্ট চালাই (একটি সাধারণ ব্যবহারকারী হিসাবে), সিস্টেমটি সম্পূর্ণ জমে না হওয়া অবধি এটি সমস্ত স্মৃতি পেয়ে যায় (কেবলমাত্র সিসআরকিউ রিআইএসইউবি কাজ করে না)।
এখানে অদ্ভুত অংশটি হ'ল কম্পিউটার যখন হিমশীতল হয় তখন হার্ড ড্রাইভের নেতৃত্বে চালু হয়ে কম্পিউটারটি রিবুট না হওয়া পর্যন্ত সেভাবেই থাকে, হয় আমার কাছে অদলবদলের পার্টিশন লাগানো আছে বা না!
সুতরাং আমার প্রশ্নগুলি হ'ল:
- এই আচরণ কি স্বাভাবিক? এটি অদ্ভুত যে কোনও সাধারণ ব্যবহারকারী হিসাবে কার্যকর একটি অ্যাপ্লিকেশন কেবল এইভাবে সিস্টেমটি ক্র্যাশ করতে পারে ...
- যখন আমি খুব বেশি (বা সর্বাধিক) মেমরি পেয়েছি তখন উবুন্টু কেবলমাত্র সেই অ্যাপ্লিকেশনগুলিকেই মেরে ফেলতে পারে এমন কোনও উপায় আছে?
অতিরিক্ত তথ্য
- উবুন্টু 12.04.3
- কার্নেল 3.5.0-44
র্যাম: 4 জিবি থেকে ~ 3.7 জিবি (গ্রাফিক্স কার্ডের সাথে ভাগ করা)। *
$ tail -n+1 /proc/sys/vm/overcommit_* ==> /proc/sys/vm/overcommit_memory <== 0 ==> /proc/sys/vm/overcommit_ratio <== 50 $ cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 4194300 344696 -1
Allocation failed
)। তবে অদলবদল ছাড়াই এটি কেবল কম্পিউটারকে হিমশীতল করে। এটি এইভাবে কাজ করার কথা রয়েছে (কেবল সোয়াপ ব্যবহারের সময় হত্যা করব)?
tail -n+1 /proc/sys/vm/overcommit_*
করে আউটপুট যুক্ত করুন। এখানেও দেখুন: আমি কীভাবে ওম-কিলারটি কনফিগার করব