সিস্টেমের স্মৃতিশক্তি কম থাকলেও উবুন্টুকে ঠাণ্ডা করা থেকে বিরত করুন


24

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

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

উবুন্টু আমার জন্য যা করে তা এখানে: সমস্ত ফ্রি মেমোরি খান, তারপরে অপারেটিং সিস্টেমটিকে সমস্ত প্রয়োজনীয় পরিষেবাদি (জিনোম সেশন, টার্মিনাল, কীবোর্ড) অদলবদল করতে বলুন, তারপরে স্থির করে রাখুন এবং পাওয়ার প্লাগটি টানতে অপেক্ষা করুন।

দুটি প্রশ্ন:

  1. কোনও অপারেটিং সিস্টেম কীভাবে ধরে নিতে পারে, যে কোনও কিছু এত গুরুত্বপূর্ণ হতে পারে যে ব্যবহারকারীর ইনপুট শুনতে বন্ধ করা ঠিক আছে?
  2. উবুন্টুকে আমি কীভাবে বলতে পারি যে প্রয়োজনীয় পরিষেবাগুলি কখনই অদলবদল না করে এবং ব্যবহারকারী ইনপুটটিতে সর্বদা প্রতিক্রিয়া জানায়, এমনকি যদি কিছু বোকা প্রক্রিয়া সিস্টেম সরবরাহের চেয়ে আরও বেশি সংস্থান গ্রহণ করার চেষ্টা করে।

আপনি কতটা র‌্যাম ইনস্টল করেছেন? আপনার অদলবদুর আকারটি (টার্মিনালে, এটির swaponজন্য টাইপ করুন )? চিয়ার্স, আল
হেননেমা

3
16 জিবি র‌্যাম এবং 16 জিবি অদলবদল। তবে এখানে কথাটি নয়, আরও মেমরি যুক্ত করে এই সমস্যার সমাধান করা যায় না।
ক্লাম্যান

1
দুটি জিনিসের একটি চেষ্টা করে দেখুন। 1) swappinessসেটিংসটি 10 ​​এ পরিবর্তন করুন , যেমন: vm.swappiness = 10/etc/sysctl.conf এ। এটি সম্পর্কে আরও তথ্যের জন্য অদলবদল জন্য এখানে অনুসন্ধান করুন। 2) অদলবদল যদি সহায়তা না করে ... আপনি নাও চাইলেও ... আপনার সোয়াফিল ফাইলটির আকার 1.5x16G এ বাড়িয়ে দিন এবং দেখুন যে এটি সাহায্য করে কিনা। আমাকে পোস্ট রাখুন। চিয়ার্স, আল
হেননেমা

1
@ ক্লাম্যান আমি সম্মত হই যে আরও স্বাপ যোগ করা সমস্যার সমাধান করবে না। আপনার একবারে কোনও ভাঙা প্রোগ্রাম হয়ে গেলে সমস্ত র‌্যাম + সোয়্যাপ ব্যবহার করে অতিরিক্ত এসডাব্ল্যাপ যোগ করলে কেবল অনিবার্যতা বিলম্বিত হয়।
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix, আমি আগেই বলেছি, vm.swappiness=10করতে হবে সংযোজন sysctl.conf করতে। অভিজ্ঞ ব্যক্তি এমনকি সিএসটিএল.কোনফ ফাইলটি সম্পাদনা না করে vm.swappiness = 10 সেট করতে ফ্লাইতে সিসটেল কমান্ডটি ব্যবহার করতে পারেন। চিয়ার্স, আল পিএস: ওপি সাড়া দেওয়ার জন্য অপেক্ষা করছে।
হেননেমা

উত্তর:


5

এখনও সমস্যার সমাধান আমার কাছে নেই, তবে আমি দুটি কাজের প্রস্তাব দিতে পারি যা অন্যের পক্ষে আগ্রহী হতে পারে:

1) প্রারম্ভিক

যে একটি পরিষেবা যা মেমোরি ব্যবহার ঘড়ি ও প্রক্রিয়া যা হ্রাস সবচেয়ে মেমরির যখন একটি নির্দিষ্ট থ্রেশহোল্ড উপনিত (এছাড়াও দেখুন নিহত এর এই এবং এই Linux kernel- র মধ্যে হলে OOM kills হত্যাকারী সংক্রান্ত প্রশ্ন)

আমি এটি একটি ডেমো প্রক্রিয়া দিয়ে পরীক্ষা করেছি যা ছোট খণ্ডগুলিতে অনির্দিষ্টকালের জন্য মেমরির জন্য আবেদন করে। এখানে আমার প্রথম ধারণাটি রয়েছে: আমি যখন দুর্বৃত্ত প্রক্রিয়া শুরু করি তখন তা আমার সমস্ত র‍্যাম দ্রুত খায়। তারপরে অদলবদল শুরু হয়, সিস্টেমটি প্রতিক্রিয়াহীন হয়ে যায়। কয়েক সেকেন্ড পরে সিস্টেমটি আবার অনলাইনে ফিরে আসবে। প্রারম্ভিকের লগটি দেখায় যে এটি মেমরি এবং অদলবদ্বার ব্যবহার 90%-এ পৌঁছানোর পরে মেমরি খাওয়ার প্রক্রিয়াটিকে মেরে ফেলেছে।

অদলবদল শুরু হয়ে গেলে এবং প্রক্রিয়াটি মারা যাওয়ার পরে, অন্য প্রক্রিয়াগুলির কিছু অংশ সাধারণত অনুরোধ না করা পর্যন্ত অদলবদলে থাকে তবে এটি একটি শুরু।

2) কেবল অদল বদল করুন able

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

আপনি বর্তমান সেশনের সাথে অদলবদল অক্ষম করতে পারেন sudo swapoff -aবা পরিবর্তন স্থায়ী করতে পারেন


সমস্যার যথাযথ সমাধান অবশ্যই হ'ল মূল মেমোরিটি ক্ষয়প্রাপ্ত হয়ে গেলে সিস্টেমটি প্রতিক্রিয়াশীল থাকে এবং কাল যেমন কোনও স্মৃতি নেই তার মতো মেমরিটি অদলবদল করতে শুরু করে, তবে তা শীঘ্রই ঘটছে বলে মনে হয় না।


1
আমি অদলবদল অক্ষম করেছি এবং আমার সিস্টেমটি সরাসরি কম মেমোরি (<100MB) থেকে হিমায়িত হয়ে যায়। OOM হত্যাকারী যদি বাস্তবে সক্ষম হয় তবে আমি কীভাবে বলতে পারি?
মাইকেল

0

দুটি জিনিসের একটি ব্যবহার করে দেখুন:

1) অদলবদল সেটিং এর ডিফল্ট সেটিং 60 থেকে 10 এ পরিবর্তন করুন, অর্থাত: vm.swappiness = 10 /etc/sysctl.conf (টার্মিনাল টাইপ করুন sudo gedit /etc/sysctl.conf) এ যুক্ত করুন, তারপরে সিস্টেমটি পুনরায় বুট করুন। এটি সম্পর্কে আরও তথ্যের জন্য অদলবদল জন্য এখানে অনুসন্ধান করুন।

2) অদলবদল যদি সহায়তা না করে ... আপনি নাও চাইলেও ... আপনার সোয়াফিল ফাইলটির আকার 1.5x16G এ বাড়িয়ে দিন এবং দেখুন যে এটি সাহায্য করে কিনা।

আমাকে পোস্ট রাখুন। চিয়ার্স, আল


কিছু পরীক্ষা চালানোর জন্য আমি একটি ভিএম সেটআপ করেছি, কারণ প্রতি কয়েক সেকেন্ডে আমার ওএস রিবুট করা সত্যিই বিরক্তিকর হয়ে পড়েছে। উবুন্টু 16.04, 2 জিবি র‌্যাম, 3 জিবি সোয়াপ, 20 জিবি ডিস্ক। তারপরে আমি একটি স্ক্রিপ্ট চালিয়েছিলাম যা প্রচুর স্মৃতি খায়: ডিফল্ট অদলবদল (60) দিয়ে সিস্টেমটি হিমশীতল হয়ে যায় এবং কয়েক মিনিটের পরে, আমি এটি বন্ধ করে দিয়েছিলাম কারণ পুনরুদ্ধারের সময়টি অগ্রহণযোগ্য ছিল। অদলবদল 10 এর সাথে, সিস্টেমটি কয়েক সেকেন্ডের জন্য হিমশীতল হয়ে যায়, তারপরে এটি ইনপুট গ্রহণ করে তবে আপনি কোনও প্রক্রিয়া শুরু করতে পারবেন না (উদাহরণস্বরূপ topমেমরি হগকে হত্যা করতে)। এক মিনিট বা তার পরে, প্রক্রিয়াটি মারা যায়। নিখুঁত নয়, তবে আমরা আরও কাছে এসেছি।
ক্লামান

আমাদের পোস্ট রাখা. ভিএম সত্যই আপনার বাস্তব জীবনের ওএসকে অনুকরণ করবে না, তবে এটি আপনাকে সেটিংসের সাথে খেলতে দেবে। অদলবদল যদি আপনার সমস্যার সাথে সহায়তা করে তবে আমি আগ্রহী। চিয়ার্স, আল
হেননেমা

অই ভাল. অগ্রগতি! অদলবদল নিয়ে একটু পড়ুন। আপনি কিছুটা মূল্য দিয়ে খেলতে পারেন। চিয়ার্স, আল
heynnema

সিস্টেমটি হিমশীতল হলে কতটা অদলবদল ব্যবহৃত হচ্ছিল? চিয়ার্স, আল
হেননেমা

2
কেন, এর মানে কী? আমি যদি সেই স্মৃতিটিকেও চুষে রাখি তবে আরও মেমরি সিস্টেমকে আটকে যাওয়া থেকে আটকাবে না।
ক্লামান

0

আমি একই সমস্যা সমাধান। আমার অভিজ্ঞতা আপনার পক্ষে উপযুক্ত কিনা তা আমি জানি না ...

ইউএসবি থেকে বুট করা লুপব্যাক এলভিএম ডিভাইসগুলিতে কীভাবে লিনাক্স ইনস্টল করতে হবে সে সম্পর্কে সম্প্রতি আমি একটি গাইড প্রকাশ করেছি (সুতরাং এটি অভ্যন্তরীণ ডিস্কে গ্রাব ইনস্টল করতে হবে না, এটি আসল হিসাবে রেখে)। এখানে গাইড: https://github.com/DareDevil73/linux-on-loopback-usb

তারপরে আমি হাই মেমোরি লোডের উপর ফ্রিজ ইস্যুতে পড়েছি এবং আমি একটি অস্বাভাবিক সোয়াপ স্পেস ব্যবহার (সমস্ত র‌্যাম খাওয়া, এবং শূন্যের কাছাকাছি অদলবদল) পর্যবেক্ষণ করেছি। স্পষ্টতই LVM অদলবদলটি মাউন্ট করা হয়েছিল এবং সঠিকভাবে কাজ করছে, তবে কার্নেলটি আশানুরূপভাবে কেন ব্যবহার করল না তা আমি জানি না।

আমি বিকল্প সমাধান চেষ্টা করেছি। আমি একটি অদলবদল লুপব্যাক ফাইল তৈরি করেছি (এলভিএম নয়) এবং ফ্রিজ চলে গেছে। এখন অদলবদল ফাইলটি যেমন হবে তেমন ব্যবহৃত হয়, এবং ওএস কখনই স্থির হয় না!

গভীর তথ্য পেতে দয়া করে https://github.com/DareDevil73/linux-on-loopback-usb# علوم-issues দেখুন।


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