কোনও কমান্ড চালানো উবুন্টু সার্ভারে "মেমরি বরাদ্দ করতে পারে না" দেয়


16

আমি উবুন্টু 14.04 ব্যবহার করছি। সম্প্রতি, যখন আমি এসএসএইচ-এর মাধ্যমে সুডু সুবিধাগুলি সহ আমার ব্যবহারকারীর সাথে লগইন করি, তখন প্রতিটি কমান্ডের ফলে "মেমরি বরাদ্দ করতে পারি না" ত্রুটি হয়। আমি আমার কনসোলে চেষ্টা করেছি এমন কয়েকটি এখানে

myuser@mymachine:~$ whoami
-bash: fork: Cannot allocate memory
myuser@mymachine:~$ uname -a
-bash: fork: Cannot allocate memory

এমনকি আমি চেষ্টা করলেও আমি sudo reboot nowউপরের ত্রুটিটি পেয়েছি, তাই আমার উদাহরণটি আনলক করার জন্য আমি আর কী চেষ্টা করতে পারি তা আমি জানি না। হোস্টটি যদি গুরুত্বপূর্ণ হয় তবে ডিজিটাল ওশন।

সম্পাদনা করুন: এখানে প্রদত্ত উত্তর / পরামর্শ অনুযায়ী হ'ল "ফ্রি" আউটপুট

myuser@mymachine:~$ free
-bash: fork: Cannot allocate memory

উত্তর:


12

সমাধান

এটি ত্রুটি বার্তাগুলিতে যেমন বলেছে, আপনার মেশিনটির মেমরি ফুরিয়েছে। এটি বিভিন্ন কারণে হতে পারে, তবে মূলত, কিছু আপনার সমস্ত স্মৃতি খেয়ে ফেলছে এবং এমনকি বেসিক কমান্ড ব্যবহারের জন্য কোনও বাম ছাড়বে না।

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি আপনার বোঁটাটি পুনরায় বুট করুন (কেবলমাত্র আপনার ক্লায়েন্ট নিয়ন্ত্রণ প্যানেলে যান এবং "রিবুট" নির্বাচন করুন), sshএবং তারপরে এবং চালনা করুন topবা htop। মেমরির ব্যবহারের দিকে নজর রাখুন এবং দেখুন কী প্রক্রিয়া সমস্ত মেমরি ব্যবহার করে। সেখান থেকে, চেষ্টা করুন

  1. ত্রুটিযুক্ত প্রোগ্রাম / প্রক্রিয়া হত্যা / অপসারণ

    সতর্কতা : দয়া করে প্রথমে প্রক্রিয়াটি একটি প্রয়োজনীয় সিস্টেম প্রক্রিয়া কিনা তা নিয়ে আপনার গবেষণাটি করুন! যদি কোনও সিস্টেম প্রক্রিয়া মেমরির সমস্যার কারণ হয়ে থাকে, তবে কেবল এটি হত্যা করবেন না, এটির জন্য গবেষণা করুন এবং এর সাথে মোকাবিলার নির্দিষ্ট উপায়ের জন্য।
  2. সেই প্রোগ্রাম / প্রক্রিয়ার জন্য কনফিগারেশন পরিবর্তন করা যাতে এটি আপনার সমস্ত স্মৃতি হারিয়ে না যায়।

সমস্যাটি আবার না ঘটে তার জন্য পরামর্শ

  • অদলবদলের মেমরি যুক্ত করা ভাল কিছু , যদি এটি শেষ হয়ে যায় তবে এটি আরও মেমরির বরাদ্দ করে।
  • আপনি যখনই প্রোগ্রাম ইনস্টল করেন, নিশ্চিত হয়ে নিন যে আপনি সেগুলি সঠিকভাবে কনফিগার করেছেন যাতে তারা অনিচ্ছাকৃত উপায়ে (মেমরি খাওয়ার মতো) না করে don't
  • প্রতিবার আপনি যখন কোনও প্যাকেজ যুক্ত করেন বা মূলত নতুন কিছু কনফিগার করা থাকে তখন আপনি বর্তমান প্রোগ্রামগুলির সাথে কতটা মেমরি ব্যবহার করছেন তা পরীক্ষা করে দেখুন htopবা topদেখুন। আপনি যদি লক্ষ্য করেন যে আপনি এটির প্রায় সবগুলি ব্যবহার করছেন, অপ্রয়োজনীয় প্রোগ্রাম / প্রক্রিয়াগুলি দেখে এবং মুছে ফেলার চেষ্টা করে কিছু সাফ করুন।
  • যদি অটো-স্টার্ট হচ্ছে এমন কোনও কিছু থাকে (অবশ্যই সিস্টেম প্রক্রিয়াগুলি ছাড়াও!) যা আপনি স্বীকৃত বা স্ব-শুরু হতে চান না, এটি সরিয়ে দিন! কোনও প্রক্রিয়া হত্যার আগে / মুছে ফেলার আগে কী তা নিয়ে সর্বদা আপনার গবেষণাটি করুন, কারণ এটি বুটআপ পদ্ধতি বা সিস্টেম ফাংশন ইত্যাদির জন্য প্রয়োজনীয় হতে পারে etc.

7

রিবুট না করে এই অবস্থা থেকে বেরিয়ে আসার জন্য, আপনি নিম্নলিখিত হিসাবে OOM হত্যাকারীকে ম্যানুয়ালি ট্রিগার করতে পারেন :

echo 1 > /proc/sys/kernel/sysrq
echo f > /proc/sysrq-trigger
echo 0 > /proc/sys/kernel/sysrq

উল্লেখ


এই আদেশগুলি সমর্থন করে আপনার কাছে কোনও ডকুমেন্টেশন রয়েছে? কেন শুধু sudo sysctl -w vm.oom_kill_allocating_task=1বা স্থায়ীভাবে/etc/sysctl.conf চলবে না ।
পাবলো বিয়ানচি

1
এটির মতো কোনও শব্দ আসে না, এটি যদি বিশ্রামে ঘটে তবে সিস্টেমটি প্রকৃত ওওএম শর্তটিকে আঘাত করে না কারণ কোনও প্রক্রিয়া মেমরি বরাদ্দ করার চেষ্টা করছে না এবং কোনও অতিরিক্ত প্রক্রিয়া শুরু করা যাবে না। এবং অর্ধ-সম্পর্কিত নয় তবে আপনি এই অবস্থায় একবারে sudo বা sysctl ব্যবহার করতে পারবেন না।
লুক এফ

এটি আমার পক্ষে কাজ করেছে। কীভাবে জানি না, যত্ন নেই। এটি চালানোর sudo rebootআগে আমি দৌড়াতেও সক্ষম হইনি । ধন্যবাদ!
বোল্ডার_রবি

0

স্বীকৃত উত্তরের সমাপ্তির জন্য এখানে আরও একটি বিষয় বিবেচনা করতে হবে: আপনার সিস্টেমে ফাইল হ্যান্ডলগুলি এমনকি সকেট বাফারগুলি সমাপ্ত হতে পারে এবং একই ত্রুটি দেওয়ার পরেও প্রচুর মেমরি থাকতে পারে। এটি বিশেষত সত্য যদি ভাগ করা হোস্টিং যেমন প্রকৃতির সীমাবদ্ধতা আরোপ করে। ওপেনভিজেড সিস্টেমে এর সামগ্রীগুলি দেখুন

# বিড়াল / প্রকোক্ত / ব্যবহারকারীর_উপঞ্জিকা

এটি আপনাকে ডানদিকের কলামে প্রথম ছাড়িয়ে যাবে। যদি এটি সত্য হয়, হয় হয় বৃহত্তর হোস্টিং প্যাকেজ এ চলে যান বা সর্বাধিক সম্ভাব্য অপরাধীকে খোঁজেন: মাইএসকিএল বা মারিয়্যাডবি ডাটাবেস যা কোনও ত্রুটিযুক্ত পিএইচপি অ্যাপের উপস্থিতিতে, ফাইল প্রতি সেকেন্ডে ফাঁস হয়ে যায় file

আপনার ওয়েবসার্ভার যদি ইন্টারনেটে খোলা থাকে এবং ব্যবহারকারীর নাম / পাসওয়ার্ড লগইন গ্রহণ করে তবে এটি ঘটতে পারে: আপনার ব্যর্থতা 2b চলমান থাকলেও আপনি প্রচেষ্টায় একটি বিতরণকৃত অভিধান বিরতি আকৃষ্ট করতে পারেন যা প্রচুর সংস্থান গ্রহণ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.