প্রায় সম্পূর্ণ র‍্যামে কম্পিউটার ফ্রিজিং, সম্ভবত ডিস্ক ক্যাশে সমস্যা


74

আমার মনে হয় সমস্যাটি এই থ্রেডের সাথে কিছুটা মিল ।

আমি অদলবদ সক্ষম বা অক্ষম করেছি কিনা তা বিবেচ্য নয়, যখনই আসল ব্যবহৃত র‌্যাম পরিমাণ সর্বোচ্চের কাছাকাছি যেতে শুরু করে এবং ডিস্ক ক্যাশে প্রায় কোনও স্থান অবশিষ্ট থাকে না, সিস্টেমটি সম্পূর্ণ প্রতিক্রিয়াহীন হয়ে যায়।

ডিস্কটি বুনোভাবে স্পিনিগ হয়, এবং কখনও কখনও 10-30 মিনিটের দীর্ঘ অপেক্ষা করার পরে এটি বন্ধ হয়ে যায়, এবং কখনও কখনও হয় না (বা আমি ধৈর্য ধরে চলে না)। কখনও কখনও যদি আমি দ্রুত কাজ করি তবে আমি ধীরে ধীরে কনসোলটি খুলতে এবং ব্রাউজারের মতো কিছু র‌্যাম খাওয়ার অ্যাপ্লিকেশনগুলিকে মেরে ফেলতে পারি এবং সিস্টেমটি তত্ক্ষণাত্ হিমশীতল হয়ে যায়।

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

লস ফাইল (500MB +) যা ডিস্ক ক্যাশে লোড করা হয় এবং যথাযথভাবে পরবর্তী সময়ে সিস্টেম এগুলিতে দ্রুত তা লোড করতে অক্ষম হয় তার সাথে কাজ করলে সমস্যাটি খুব দ্রুতই অর্জন করা যায়।

যে কোনও সহায়তা বা আইডিয়া প্রশংসিত হবে।

আপাতত আমাকে ধ্রুব ভয়ে বাঁচতে হবে, যখন কম্পিউটার করার সময় কিছুটা ঠিক হিমশীতল হতে পারে এবং আমাকে সাধারণত এটি পুনরায় চালু করতে হয়, যদি এটি সত্যিই র‌্যামের বাইরে চলে যায় তবে আমি ব্রোজারের মতো কিছু ইউজারস্পেস অ্যাপ্লিকেশনকে মেরে ফেলতে চাই much যদি আমি কোনভাবে প্রথমে কোনটি মেরে ফেলতে পারি তবে সম্ভবতঃ

যদিও মিস্ত্রি হ'ল কেন এই পরিস্থিতিতে আমাকে অদলবদল করে না।

আপডেট: এটি কিছু সময়ের জন্য স্থির ছিল না, তবে এখন আবার বেশ কয়েকটি ঘটনা পেয়েছি। আমি এখন সর্বদা আমার পর্দায় র‌্যাম মনিটর রাখছি এবং যখন হ্যাং ঘটেছিল তখনও এটি ~ 30% মুক্ত দেখিয়েছে (সম্ভবত ডিস্ক ক্যাশে দ্বারা ব্যবহৃত)। অতিরিক্ত উপসর্গ: আমি যখন ভিডিওটি দেখছি (ভিএলসি প্লেয়ার) শব্দটি প্রথমে থামে, কয়েক সেকেন্ড পরে ছবিটি বন্ধ হয়ে যায়। শব্দটি থামার সময় আমার পিসিতে এখনও কিছুটা নিয়ন্ত্রণ রয়েছে, তবে চিত্রটি বন্ধ হয়ে গেলে আমি এমনকি মাউসটি আর সরাতে পারি না, তাই কিছুক্ষণ অপেক্ষা করার পরে আমি এটি পুনরায় চালু করেছি। কিন্তু, যখন আমি ভিডিওটি দেখতে শুরু করলাম তা ঘটেনি তবে কিছুক্ষণের মধ্যে (২০ মিনিট) এবং আমি তখন সক্রিয়ভাবে অন্য কিছু করিনি, যদিও ব্রাউজার এবং উওরাইট পুরো সময় দ্বিতীয় পর্দায় খোলা ছিল। মূলত কিছু ঠিক এক পর্যায়ে হওয়ার সিদ্ধান্ত নিয়েছে এবং সিস্টেমটিকে স্তব্ধ করে দেয়।

মন্তব্যে অনুরোধ অনুসারে আমি হ্যাঙের ঠিক পরে dmesg চালিয়েছি। আমি কোনও অদ্ভুত কিছু লক্ষ্য করি নি, তবে কী দেখতে হবে তা জানতাম না, তাই এটি এখানে: https://docs.google.com/docament/d/1iQih0Ee2DwsGd3VuQZu0bPbg0JGjSOCRZhu0B05CMYs/edit?hl=en_US&authkey=CPCc7


11
এটি আরও মনোযোগ পেতে প্রয়োজন। আমি জানি যে অনেকগুলি বছর ধরে বাগগুলি ফাইল করা আছে।
n3 তম


@ ক্রিজিজনিস নেজেনবার্গস: দয়া করে আমাকে সংশোধন করুন যদি আমি লম্বা ফাইল আটকানো ভুল অনুলিপিও হয়ে যায় তবে এটি স্থির হয়ে যায়।
রিক 2047

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

উত্তর:


63

এই সমস্যাটি সমাধানের জন্য আমি দেখতে পেয়েছি যে কম্পিউটারে কোর সংখ্যা দ্বারা বিভক্ত আপনার মোট শারীরিক র্যামের প্রায় 5% -6% এর মধ্যে আপনাকে নিম্নলিখিত সেটিংসটি সেট করতে হবে:

sysctl -w vm.min_free_kbytes=65536

মনে রাখবেন যে এটি প্রতি-কোর সেটিংস, সুতরাং আমার কাছে যদি 2 জিবি র‌্যাম এবং দুটি কোর থাকে, তবে আমি কেবল 1 জিবি এর 6% গণনা করেছি এবং সুরক্ষিত হওয়ার জন্য কিছুটা অতিরিক্ত যুক্ত করেছি।

এটি কম্পিউটারকে এই পরিমাণে র‌্যাম মুক্ত রাখার চেষ্টা করতে বাধ্য করে এবং এর ফলে ডিস্ক ফাইলগুলি ক্যাশে করার ক্ষমতা সীমাবদ্ধ করে। অবশ্যই এটি এখনও তাদের ক্যাশে করার চেষ্টা করে এবং তাত্ক্ষণিকভাবে এগুলি অদলবদল করার চেষ্টা করে, তাই আপনার সম্ভবত অদলবদলও সীমাবদ্ধ করা উচিত:

sysctl -w vm.swappiness=5

(যত দ্রুত সম্ভব 100 = অদলবদল, 0 মোট প্রয়োজন অনুসারে কেবল অদলবদল)

ফলাফলটি হ'ল লিনাক্স আর এলোমেলোভাবে মোটামুটি 1 জিবি মুভি ফাইলটি দেখার সময় লোড করার সিদ্ধান্ত নেয় না এবং এটি করতে গিয়ে মেশিনটিকে হত্যা করে।

স্মৃতি অনাহার এড়ানোর জন্য এখন পর্যাপ্ত সংরক্ষিত জায়গা রয়েছে, যা খুব স্পষ্টতই সমস্যা ছিল (আগের মতো আর কোনও জমাট নেই বলে দেখে)।

এক দিনের জন্য পরীক্ষার পরে - লকআপগুলি চলে যায়, কখনও কখনও ছোটখাটো ধীরগতি হয়, কারণ জিনিসগুলি প্রায়শই ক্যাশে হয়ে যায়, তবে আমি যদি কয়েক ঘন্টা পর পর কম্পিউটারটি পুনরায় চালু না করতে পারি তবে আমি তার সাথে বেঁচে থাকতে পারি।

এখানে পাঠটি হ'ল - ডিফল্ট মেমরি পরিচালনা কেবল ব্যবহারের ক্ষেত্রে একটি এবং এটি সর্বোত্তম নয়, যদিও কিছু লোক অন্যথায় পরামর্শ দেওয়ার চেষ্টা করে - হোম বিনোদন উবুন্টুকে সার্ভারের চেয়ে আলাদাভাবে কনফিগার করা উচিত।


আপনি সম্ভবত এই পছন্দগুলি এগুলি যোগ করে এই সেটিংসটি স্থায়ী করতে চান /etc/sysctl.conf:

vm.swappiness=5
vm.min_free_kbytes=65536

ভাল অনুসন্ধান করুন, এ সম্পর্কে বাগগুলি জানার চেষ্টা করুন যাতে সমস্যা সম্পর্কে আরও সচেতনতা রয়েছে এবং আশা করা যায় যে কেউ এলোমেলোভাবে পুরো সিনেমাটি লোড না করার জন্য একটি সমাধান নিয়ে আসবে,
অক্সভিভি

ধন্যবাদ, দুর্দান্ত বিবরণ এবং আমার সমস্যাটি ব্যাখ্যা করে। অনেক প্রশংসিত!
অজডবিডি

1
ভাল, আমি প্রায় সব কিছু চেষ্টা করেছিলাম, এবং কেবলমাত্র আপনার পরামর্শই জিনিসগুলিকে উন্নত করেছে। আপনাকে ধন্যবাদ
প্রাণবন্ত

1
যদি আমি অদলবদল ছাড়া চালাচ্ছি, আমি কি 5-6% এর চেয়ে বেশি পরিমাণ ব্যবহার করব? এবং সেটিং vm.swappinessসে ক্ষেত্রে কিছুই করবে না, আমি ধরে নিই?
জেরেট মিল্লার্ড

1
"[vm.min_free_kbytes] কম্পিউটারকে এই পরিমাণ র‌্যাম মুক্ত রাখার চেষ্টা করতে বাধ্য করে এবং এর ফলে ডিস্ক ফাইলগুলি ক্যাশে করার ক্ষমতা সীমাবদ্ধ করে।" - বিরক্ত করার জন্য দুঃখিত, তবে এটি যা কিছু করে তা সম্পর্কিত vm.min_free_kbytesনয়। এটি __GFP_WAITউচ্চ সিস্টেমের মেমরির বিরোধের অধীনে যখন পারমাণবিক (যেমন পূরণ বা হত্যা / অ- ) বরাদ্দকে স্বাচ্ছন্দ্যে সংরক্ষণ করা পৃষ্ঠাগুলির একটি ব্লক হিসাবে কাজ করে। এটা তোলে পারে প্রকৃতপক্ষে অর্থে তা এখানে বাড়াতে (যেমন সম্ভবত এই স্টল সিস্টেম মেমরি বিবাদের সাথে সম্পর্কিত হয়), কিন্তু এটা অবশ্যই কারণ এই উত্তর বর্ণিত হবে না।
ক্রিস ডাউন

9

এটি আমার জন্য উবুন্টু 14.04 এর একটি নতুন ইনস্টল-এ ঘটেছিল।

আমার ক্ষেত্রে এটি উল্লিখিত সিস্টেস্টাল ইস্যুগুলির সাথে কিছুই করার ছিল না।

পরিবর্তে, সমস্যাটি ছিল যে অদলবদলের পার্টিশনের ইউইউডিটি ইনস্টলেশনের পরে ইনস্টলেশনের পরে পৃথক ছিল। সুতরাং আমার অদলবদল কখনই সক্ষম করা হয়নি, এবং কয়েক ঘন্টা ব্যবহারের পরে আমার মেশিন লক হয়ে যায়।

সমাধান সঙ্গে swap পার্টিশন বর্তমান UUID চেক করতে ছিল

sudo blkid

এবং তারপরে sudo nano /etc/fstabব্লকিডের দ্বারা প্রতিবেদন করা একের সাথে ভুল স্বাপের ইউআইডি মানটি প্রতিস্থাপন করতে।

পরিবর্তনগুলি এবং ভয়েলা প্রভাবিত করার জন্য একটি সাধারণ রিবুট।


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

@ পাগল 2be এটি ব্যর্থ হচ্ছে না, এটি অবিরাম সফল হচ্ছে। এমনকি কোনও অদলবদল ছাড়াই লিনাক্স এখনও মেমরির মধ্যে প্রোগ্রাম এবং আনমডাইফাইড ফাইলগুলি পৃষ্ঠাভুক্ত করতে এবং ডিস্ক থেকে এগুলি পুনরায় পড়তে পারে।
মার্টিন থর্নটন

4

আমি জানি এই প্রশ্নটি পুরানো, তবে আমার একটি সমস্যা এসার সি 720 ক্রোমবুকে উবুন্টু (ক্রুবুন্টু) 14.04 এ ছিল। আমি ক্রিজিজনিস নেজেনবার্গস সমাধানটি চেষ্টা করেছি এবং এটি কিছুটা কাজ করেছে, তবে এখনও মাঝে মাঝে ক্র্যাশ হয়ে গেছে।

অবশেষে আমি একটি সমাধান পেয়েছি যা এসএসডি তে শারীরিক অদলবদলের পরিবর্তে জ্রাম ইনস্টল করে কাজ করেছিল। এটি ইনস্টল করতে আমি ঠিক এখানে নির্দেশাবলী অনুসরণ করেছি :

sudo apt-get install zram-config

এরপরে আমি /etc/init/zram-config.confলাইন 21-তে পরিবর্তন করে জারাম অদলবদলের আকারটি কনফিগার করতে সক্ষম হয়েছি ।

20: # Calculate the memory to user for zram (1/2 of ram)
21: mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024))

আমি যতটুকু র‌্যাম থাকি তার আকারের আকারটি একই আকারে করার জন্য আমি 2 টি 1 এর সাথে প্রতিস্থাপন করেছি। এটি করার পরে, আমার আর জমাট বা সিস্টেমের প্রতিক্রিয়াহীনতা নেই।


zramযদি আপনি আরও র‍্যাম ইনস্টল করতে না পারেন তবেই এটি ব্যবহারযোগ্য বিকল্প। এসএসডিটিতে অদলবদল করার সময় যদি সিস্টেমটি খুব ধীর হয় এবং অদলবদল ছাড়াই র‌্যামের বাইরে চলে যায়, তবে zramআপনি আরও কিছুটা চেষ্টা না করা অবধি কিছুটা সাহায্য করতে পারেন এবং ফলাফলটি অদলবস্থার সাথে র‌্যামের বাইরে একইরকম হয়।
মিক্কো রেন্টালাইনেন

4

আমার পক্ষে কিছুই কাজ হয়নি !!

সুতরাং আমি স্মৃতি ব্যবহার নিরীক্ষণ করতে একটি স্ক্রিপ্ট লিখেছিলাম। এটি প্রথমে র‌্যাম ক্যাশে পরিষ্কার করার চেষ্টা করবে যদি মেমরির ব্যবহারটি একটি প্রান্তিক বৃদ্ধি করে। আপনি স্ক্রিপ্টে এই চৌম্বকটি কনফিগার করতে পারেন। তবুও যদি মেমোরি খরচ প্রান্তিকের নীচে না আসে, মেমরির ব্যবহারটি প্রান্তিকের নীচে না হওয়া পর্যন্ত এটি মেমরির ক্রম হ্রাস ক্রমে একের পর এক প্রক্রিয়া শুরু করবে। আমি এটি ডিফল্টভাবে 96% এ সেট করে রেখেছি। আপনি স্ক্রিপ্টে ভেরিয়েবলের RAM_USAGE_THRESHOLD এর মান পরিবর্তন করে এটি কনফিগার করতে পারেন।

আমি সম্মত হই যে উচ্চ স্মৃতিশক্তি গ্রাসকারী হত্যার প্রক্রিয়াগুলি সঠিক সমাধান নয়, তবে সমস্ত কাজ হারাবার পরিবর্তে একটি অ্যাপ্লিকেশনকে হত্যা করা ভাল better স্ক্রিপ্টটি আপনাকে ডেস্কটপ বিজ্ঞপ্তি প্রেরণ করবে যদি র‌্যামের ব্যবহার প্রান্তিক বৃদ্ধি করে। এটি কোনও প্রক্রিয়া মারা গেলে এটি আপনাকেও অবহিত করবে।

#!/usr/bin/env python
import psutil, time
import tkinter as tk
from subprocess import Popen, PIPE
import tkinter
from tkinter import messagebox
root = tkinter.Tk()
root.withdraw()

RAM_USAGE_THRESHOLD = 96
MAX_NUM_PROCESS_KILL = 100

def main():
    if psutil.virtual_memory().percent >= RAM_USAGE_THRESHOLD:
        # Clear RAM cache
        mem_warn = "Memory usage critical: {}%\nClearing RAM Cache".\
            format(psutil.virtual_memory().percent)
        print(mem_warn)
        Popen("notify-send \"{}\"".format(mem_warn), shell=True)
        print("Clearing RAM Cache")
        print(Popen('echo 1 > /proc/sys/vm/drop_caches',
                    stdout=PIPE, stderr=PIPE,
                    shell=True).communicate())
        post_cache_mssg = "Memory usage after clearing RAM cache: {}%".format(
                            psutil.virtual_memory().percent)
        Popen("notify-send \"{}\"".format(post_cache_mssg), shell=True)
        print(post_cache_mssg)

        if psutil.virtual_memory().percent < RAM_USAGE_THRESHOLD:
            print("Clearing RAM cache saved the day")
            return
        # Kill top C{MAX_NUM_PROCESS_KILL} highest memory consuming processes.
        ps_killed_notify = ""
        for i, ps in enumerate(sorted(psutil.process_iter(),
                                      key=lambda x: x.memory_percent(),
                                      reverse=True)):
            # Do not kill root
            if ps.pid == 1:
                continue
            elif (i > MAX_NUM_PROCESS_KILL) or \
                    (psutil.virtual_memory().percent < RAM_USAGE_THRESHOLD):
                messagebox.showwarning('Killed proccess - save_hang',
                                       ps_killed_notify)
                Popen("notify-send \"{}\"".format(ps_killed_notify), shell=True)
                return
            else:
                try:
                    ps_killed_mssg = "Killed {} {} ({}) which was consuming {" \
                                     "} % memory (memory usage={})". \
                        format(i, ps.name(), ps.pid, ps.memory_percent(),
                               psutil.virtual_memory().percent)
                    ps.kill()
                    time.sleep(1)
                    ps_killed_mssg += "Current memory usage={}".\
                        format(psutil.virtual_memory().percent)
                    print(ps_killed_mssg)
                    ps_killed_notify += ps_killed_mssg + "\n"
                except Exception as err:
                    print("Error while killing {}: {}".format(ps.pid, err))
    else:
        print("Memory usage = " + str(psutil.virtual_memory().percent))
    root.update()


if __name__ == "__main__":
    while True:
        try:
            main()
        except Exception as err:
            print(err)
        time.sleep(1)

কোডটি একটি ফাইলে সংরক্ষণ করুন save_hang.py বলুন। স্ক্রিপ্টটি চালান:

sudo python save_hang.py

দয়া করে নোট করুন যে এই স্ক্রিপ্টটি কেবল পাইথন 3-এর জন্য উপযুক্ত এবং আপনার টিনেটার প্যাকেজ ইনস্টল করতে হবে। আপনি এটি হিসাবে এটি ইনস্টল করতে পারেন:

sudo apt-get install python3-tk

আশাকরি এটা সাহায্য করবে...


2

আমার ধারণাটি হ'ল আপনি vm.swappinessখুব স্বল্পমূল্যে সেট করেছেন , যার ফলে কার্নেলটি খুব দেরীতে বদল হতে পারে এবং সিস্টেমটি কাজ করার জন্য খুব কম র‌্যাম ফেলে।

এক্সিকিউট করে আপনি আপনার বর্তমান অদলবদল সেটিংটি প্রদর্শন করতে পারেন:

sysctl vm.swappiness

ডিফল্টরূপে, এটি 60 এ সেট করা হয়েছে The উবুন্টু উইকি এটিকে 10 তে সেট করার পরামর্শ দেয় তবে এটিকে একটি উচ্চতর মান নির্ধারণ করতে নির্দ্বিধায়। আপনি এটি চালিয়ে পরিবর্তন করতে পারেন:

sudo sysctl vm.swappiness=10

এটি কেবল চলমান সেশনের জন্য এটি পরিবর্তন করবে , এটি অবিরাম করার জন্য vm.swappiness = 10আপনাকে /etc/sysctl.confফাইলটিতে যুক্ত করতে হবে।

যদি আপনার ডিস্কটি ধীর গতিতে থাকে তবে একটি নতুন কেনার বিষয়টি বিবেচনা করুন।


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

@ ক্রিশা: সিস্টেমটি যখন মেমরির বাইরে চলে যায় (র‌্যাম এবং অদলবদল), কার্নেল ওম_কিলকে কল করে যা মেমরি সংরক্ষণের জন্য প্রক্রিয়াগুলিকে হত্যা করে। দুর্ভাগ্যক্রমে, আপনি লক্ষ্য প্রক্রিয়াগুলি নিয়ন্ত্রণ করতে পারবেন না। এটিকে ম্যানুয়ালি ট্রিগার করতে, Alt + SysRq + F টিপুন the dmesgকমান্ডটি চালানোর সময় , আপনাকে প্রক্রিয়াটির কিছু তথ্য (এবং প্রক্রিয়া নাম + আইডি) দেখতে হবে। আমি মনে করি আপনি একটি নতুন, দ্রুত ডিস্ক কিনে আরও ভাল করবেন। অথবা আপনার র‌্যাম আপগ্রেড করুন।
লেকেনস্টেইন

3
সমস্যাটি হল, কম্পিউটারটি প্রায় 30 মিনিটের জন্য লক করে রাখার আগে oom_kill কেবল কল হবে না। এছাড়াও - কমপক্ষে কোন প্রক্রিয়াটি প্রথমে হত্যা করা হবে তা জানার কোনও উপায় আছে?
ক্রিজিজনিস নেজেনবার্গস

2
আমার কাছে 2 জিবি রম এবং এইচডিডি 5400 আরপিএম। আমি সত্যিই ভাবতে পারি না যে এটি এমন একটি পুরানো ব্যবস্থা যা একটি মনিটরে কিছু ভিডিও দেখার সময় এবং অন্যটিতে 20-30 টি ট্যাব ব্রাউজ করার সময় আধ ঘন্টা স্থির হয়ে যায় tif আসলে আমি বেশ খুশি হব যদি আমি কেবল কনসোল অ্যাক্সেস করতে এবং কিছু প্রক্রিয়া মেরে ফেলতে পারি - ব্যবহারকারীর ইনপুট এবং টার্মিনালটিকে উচ্চ উচ্চ অগ্রাধিকার দেওয়ার কোনও উপায় আছে যাতে এটি সিস্টেমটি স্থির হয়ে যাওয়ার সময় কার্যকর হয়?
ক্রিজিজনিস নেজেনবার্গস

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

2

আমি দীর্ঘদিন ধরে এই সমস্যাটির সাথে লড়াই করছি, তবে এখন এটি আমার ল্যাপটপে সমাধান হয়েছে বলে মনে হচ্ছে।

যদি অন্য কোনও উত্তর আপনার পক্ষে কাজ করে না (আমি তাদের বেশিরভাগ চেষ্টা করেছি), আপনার কম্পিউটারের অদলবদল শুরু হওয়ার পরে র‌্যামে আরও স্থান পেতে min_free_kbytes নিয়ে খেলুন (আপনার নিখরচায় এই ন্যূনতম মানটি দেওয়ার আগে) free

আমার কাছে ১ RAM জিবি র‌্যাম রয়েছে, তবে খুব শীঘ্রই স্মৃতিটি পূর্ণ হয়ে যায় এবং তারপরে 10 থেকে 30 মিনিটের জন্য কিছু প্রতিক্রিয়া না দেওয়া পর্যন্ত প্রতিক্রিয়া বন্ধ করে দেয়।

আমার পক্ষে কমপক্ষে, মিনিমফ্রি_কিবিটস মান নির্ধারণের চেয়ে উপরে সেট করা সেই স্ব্যাপিং প্রক্রিয়াটিকে যথেষ্ট দ্রুততর করে তোলে।

১GB জিবি র‌্যামের জন্য, এটি ব্যবহার করে দেখুন:

vm.min_free_kbytes=500000

এই মানটি সেট করতে অন্যান্য উত্তরগুলি দেখুন বা এটি গুগল করুন :)


0

আমি একটি লাইভ উবুন্টু এসডি কার্ড থেকে আমার একটি ল্যাপটপ অবিচ্ছিন্নভাবে চালিত করি, একটি ছোট এক্সট্রোল স্টোরেজ পার্টিশন এবং হার্ড ড্রাইভে একটি স্ব্যাপ ফাইল। যখন প্রায় সমস্ত র‌্যাম ব্যবহার করা হয় এবং অদলবদলের মান খুব কম হয় (কখনও কখনও আমি যদি সম্ভব হয় তবে হার্ড ড্রাইভটি পুরোপুরি বন্ধ রাখতে পছন্দ করি, কারণ এটি গোলমাল), লিনাক্সের পারফরম্যান্সটি আমার জন্য একটি ঝাঁকুনির ঝাঁকুনির ঝোঁক ঝোঁক করে; TTY1 ফায়ারফক্সকে হত্যা করতে 15 মিনিট সময় নেয়।

পালন /proc/sys/vm/vfs_cache_pressure100-ডিফল্ট থেকে 6000 এর একটি মান এই প্রতিরোধ করতে সাহায্য বলে মনে হয়। তবে, কার্নেল ডকুমেন্টেশনগুলি এমনটি করার বিরুদ্ধে সতর্ক করে দিয়েছে

Increasing vfs_cache_pressure significantly beyond 100 may have negative
performance impact. Reclaim code needs to take various locks to find freeable
directory and inode objects. With vfs_cache_pressure=1000, it will look for
ten times more freeable objects than there are.

এটি করার পার্শ্বপ্রতিক্রিয়ার বিষয়ে আমি সম্পূর্ণরূপে নিশ্চিত নই তাই আমি এটি করতে সাবধান হব।


আপনি সম্ভবত vfs_cache_pressure10 এর কাছাকাছি (যা 100 এর চেয়ে অনেক কম) এবং min_free_kbytesউচ্চতর সেটিংয়ের সাথে আরও ভাল ফলাফলের অভিজ্ঞতা পাবেন । সতর্কতা অবলম্বন করুন যে আপনি যদি min_free_kbytesখুব বেশি সেট করেন তবে কার্নেল ওওএম কিলার সবাইকে মেরে ফেলবে!
মিক্কো রেন্টালাইনেন

@ মিকো রেন্টালাইনেন আমি ইতিমধ্যে 262144 এ উত্থাপিত করেছি min_free_kbytesএবং আমি দেখেছি যে কমিয়ে vfs_cache_pressureদেওয়ার বিপরীত প্রভাব রয়েছে - এটি 100 এর নীচে কমিয়ে দেওয়ার ফলে সিস্টেমটি আরও দ্রুত প্রতিক্রিয়াশীল হয়ে ওঠে। আমি ঠিক জানি না কেন।
হিটচেকম্পিউটারজেক

সাধারণভাবে বৃদ্ধি vfs_cache_pressureপেলে ক্যাশেড ফাইলের সামগ্রীর আগে নির্দেশনা ছুঁড়ে ফেলা হবে এবং ফলস্বরূপ, সামগ্রিক পারফরম্যান্স সাধারণত ১০০ এরও বেশি মান সহ্য করতে চলেছে If আপনি যদি সিস্টেমটি ক্র্যাশ / হ্যাং করে পুনরুত্পাদন করার পদক্ষেপগুলি সনাক্ত করতে পারেন তবে উবুন্টু লাইভ সিডি দিয়ে শুরু করে hang তারপরে কার্নেল বিকাশকারীরা এর মূল কারণটি সনাক্ত করতে পারেন। আমার জন্য, কোনও সতর্কতা ছাড়াই ঝুলন্ত ঘটনা ঘটে। আমার সর্বোত্তম অনুমান যে ওম কিলার যথেষ্ট পরিমাণ র্যাম মুক্ত করার আগে কার্নেলটি ওওমের কারণে স্তব্ধ হয়ে যায়। আমি এখন min_free_kbytes = 100000, অ্যাডমিন_রিজার_কিবিটস = 250000 এবং ব্যবহারকারীর_রক্ষিত_কিবিটিস = 500000 চালাচ্ছি।
মিক্কো রেন্টালাইনেন

(অবিরত) আমার অদলবদল = 5 এবং vfs_cache_pressure = 20 থাকলেও আমি উপরের কনফিগারেশনের সাথে এখনও ক্র্যাশ করিনি। সিস্টেমে র‌্যামের 16 গিগাবাইট এবং এসএসডিটিতে 8 জিবি অদলবদল রয়েছে। অন্য সিস্টেমে ৩২ জিবি র‌্যাম এবং জিরো অদলবদল রয়েছে এবং এটি এলোমেলোভাবে একই সমস্যায় ভুগছে বলে মনে হচ্ছে - সেখানে আল্ট + সিসারকিউ + এফ চাপলে সিস্টেমটি ধীরে ধীরে অনুভূত হয় বলে মনে হয় তাই আমি অনুমান করি যে ওওম কিলার যদি যথেষ্ট দ্রুত কাজ করে থাকে তবে সিস্টেমটি ঝুলবে না।
মিক্কো রেন্টালাইনেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.