আমি কীভাবে আবার ওওএম ঘাতক দাঁত দেব?


12

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

আমি ওওএম-ঘাতকটিকে কীভাবে তার পুরাতন, রক্তপিপাসুভাবে পুনরুদ্ধার করব?


1
কোনও সমস্যা সৃষ্টিকারী প্রোগ্রামগুলি একবার দেখুন এবং তারা যে পরিমাণ মেমরি limits.conf
লরেন্স

উত্তর:


4

আপনার কাছে যে অদলবদল রয়েছে তা আমি হ্রাস করব। সাধারণ ইনস্টলগুলি আজকাল শারীরিক মেমরির (বা কখনও কখনও দ্বিগুণ পরিমাণে) তত পরিমাণে সোয়াপ বরাদ্দ করার চেষ্টা করে। এর সাথে সমস্যাটি হ'ল যখন কোনও বিষয় উদ্বেগজনক হয় তখন সিস্টেমটি মেমরি থেকে ডিস্ক এবং পিছনে জিনিসগুলিকে "বদল" করার চেষ্টা করে একটি মৃত্যু-স্ফুলিতে চলে যায় এবং এটি এত বেশি করে শুরু করে যে এর প্রতিক্রিয়া জানাতে সময় নেই ব্যবহারকারী ইনপুট।

শুভ-ওল-দিনগুলিতে, সম্পূর্ণ প্রক্রিয়াগুলি ডিস্কে (এবং পিছনে) অদলবদল করা হত, সুতরাং বৃহত্তর অদলবদলের প্রয়োজন ছিল।

আধুনিক ভার্চুয়াল মেমরি সিস্টেমে, মেমোরিগুলি ব্লকগুলিতে বদলে যায় (পুরো প্রক্রিয়াগুলির পরিবর্তে), যাতে আপনি আরও ছোট অদলবদলগুলি পেতে পারেন। আপনার দৃশ্যে, প্রক্রিয়াগুলি মেরে ফেলা আপনি আরও ভাল হবেন, সুতরাং ছোট অদলবদল দিয়ে চালানো OOMকে শীঘ্রই হত্যা প্রক্রিয়াগুলি শুরু করবে (সিস্টেমটি ডিস্কে / থেকে ডিস্কে স্ট্যাপের জন্য অতিরিক্ত পরিমাণ ব্যয় করার চেয়ে))


আমার কাছে শূন্য অদলবদল হয় এবং আমার সিস্টেমটি 20+ মিনিটের জন্য লক হয়ে যায় যখন ক্রোমিয়ামে আমার কাছে একটি অ্যারে বা অন্য কোনও কিছুর চেয়ে ধীরে ধীরে জাভাস্ক্রিপ্ট লুপ থাকে। আমার সিস্টেমটি অকেজো হওয়ার আগে উপায়টি না করার আগে ট্রিগার করার জন্য আমাকে ওমকের দরকার।
জেসনউফ

0

আমার জন্য যা কাজ করেছে তা এখানে:

echo 1 > /proc/sys/vm/oom_kill_allocating_task

এটি কেবল এই বুটের জন্য। আপনি আপনার ব্রাউজারের পরিদর্শকের কনসোল ট্যাবে নিম্নলিখিতটি চালিয়ে পরীক্ষা করতে পারেন:

a = []; while (true) { a.push(1); }

আপনি যদি এই সেটিংটিতে খুশি হন তবে আপনি ভবিষ্যতের সমস্ত বুটের জন্য ডিফল্ট রূপে তৈরি করতে পারেন:

echo "vm.oom_kill_allocating_task=1" >> /etc/sysctl.conf
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.