ওম কিলার সঠিকভাবে কাজ করে না, হিমায়িত ওএসের দিকে পরিচালিত করে


23

কয়েক বছর ধরে, আমার অপারেটিং সিস্টেমের ওওএম কিলারটি সঠিকভাবে কাজ করে না এবং হিমায়িত সিস্টেমের দিকে পরিচালিত করে।
যখন মেমরির ব্যবহার খুব বেশি হয় তখন পুরো সিস্টেমটি স্মৃতি মুক্ত করতে প্রক্রিয়াগুলি হত্যার পরিবর্তে ঘন্টার বা কয়েক দিনের জন্য "হিমায়িত" (আসলে: অত্যন্ত ধীর হয়ে যাওয়া ) হয়ে থাকে । আমি সর্বাধিক যা রেকর্ড করেছি তা পুনরায় সেট করার জন্য নিজেকে পদত্যাগ করার 7 দিন আগে। যখন ওওএম পৌঁছতে চলেছে , অযৌক্তিক হওয়ার আগে আইওয়েট খুব বেশি (~ 70%)। সরঞ্জামটি: দেখিয়েছে যে প্রতিটি প্রোগ্রামগুলি আমার হার্ড ড্রাইভ থেকে খুব উচ্চতর থ্রুপুট (প্রতি দশক এমবি / সেকেন্ড) পড়ছে। এই প্রোগ্রামগুলি কি পড়ছে?


iotop

- ডিরেক্টরি হায়ারার্কি?
- এক্সিকিউটেবল কোড নিজেই?
আমি ঠিক এখন না।

[সম্পাদিত] আমি এই বার্তাটি লিখেছিলাম (2017 সালে) আমি একটি আপডোডেট আর্কলিনাক্স (4.9.27-1-lts) ব্যবহার করছিলাম তবে এর আগে কয়েক বছর ধরে সমস্যাটি ইতিমধ্যে অনুভব করেছি।
বিভিন্ন লিনাক্স ডিস্ট্রিবিউশন এবং বিভিন্ন হার্ডওয়্যার কনফিগারেশন সহ আমি একই সমস্যাটি অনুভব করেছি।
বর্তমানে (2019), আমি একটি আপডোডেট ডেবিয়ান 9.6 (4.9.0) ব্যবহার করছি আমার কাছে 16 জিবি দৈহিক র‌্যাম রয়েছে, একটি এসএসডি যার উপরে আমার ওএস ইনস্টল করা আছে, এবং কোনও অদলবদল নয় ।

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

আমার কাছে এই সমস্যাটি ঘটেছিল যে লিনাক্স ক্যাশেগুলি থেকে প্রয়োজনীয় ডেটা ফেলে দেয় যা হিমায়িত সিস্টেমের দিকে নিয়ে যায় কারণ এটি হার্ড ড্রাইভ থেকে প্রতিবারই পড়তে হয়।

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

আমি এই সমস্যাটি সমাধানের আশায় বেশ কয়েকটি বিষয় চেষ্টা করেছি।
একটিতে সেট /proc/sys/vm/min_free_kbytesকরতে হবে 1000000(1 জিবি)।
যেহেতু এই 1 জিবিটি নিখরচায় থাকা উচিত, আমি ভেবেছিলাম গুরুত্বপূর্ণ ডেটা ক্যাশে করার জন্য এই মেমরিটি লিনাক্স দ্বারা সংরক্ষণ করা হবে।
তবে এটি কাজ করেনি।

এছাড়াও, আমি যুক্ত করতে দরকারী মনে করি যে এটি তাত্ত্বিকভাবে দুর্দান্ত লাগলেও, ভার্চুয়াল মেমরির আকারকে শারীরিক মেমরির আকারের মধ্যে সীমাবদ্ধ করে , আমার পরিস্থিতিতে প্রযুক্তিগতভাবে শালীনভাবে সম্ভব নয় বলে সংজ্ঞা /proc/sys/vm/overcommit_memoryদিয়ে 2, কারণ অ্যাপ্লিকেশনগুলির ধরণের যেটি আমি ব্যবহার করি, তাদের কিছু কারণে কার্যকরভাবে ব্যবহার করার চেয়ে আরও ভার্চুয়াল মেমরির প্রয়োজন হয়।
ফাইল অনুসারে /proc/meminfo, Commited_ASমানটি আমার সিস্টেমে দৈহিক র‌্যামের দ্বিগুণের চেয়ে বেশি (16 গিগাবাইট, Commited_AS প্রায়শই> 32 গিগাবাইট) থাকে।

আমি এই /proc/sys/vm/overcommit_memoryডিফল্ট মানটির সাথে এই সমস্যাটি অনুভব করেছি : 0এবং কিছুক্ষণের জন্য আমি এটি সংজ্ঞায়িত 1করেছি:, কারণ আমি অন্যায় আচরণ করার চেয়ে ওওম ঘাতক দ্বারা নিহত হওয়ার প্রোগ্রামগুলিকে পছন্দ করেছি কারণ তারা mallocকখন ফিরে আসার মানগুলি পরীক্ষা করে না বরাদ্দ অস্বীকার করা হয়।

আমি যখন আইআরসি- তে এই সমস্যাটি নিয়ে কথা বলছিলাম, তখন আমি অন্যান্য লিনাক্স ব্যবহারকারীদের সাথে দেখা করেছি যারা এই একই সমস্যাটি अनुभव করেছেন, তাই আমি অনুমান করি যে অনেক ব্যবহারকারী এই বিষয়ে উদ্বিগ্ন।
আমার কাছে এটি গ্রহণযোগ্য নয় কারণ উইন্ডোজ উচ্চ মেমরির ব্যবহারের সাথে আরও ভাল আচরণ করে।

আপনার যদি আরও তথ্যের প্রয়োজন হয় তবে একটি পরামর্শ দিন, দয়া করে আমাকে বলুন।

ডকুমেন্টেশন:
https://en.wikedia.org/wiki/Trasshing_%28computer_science%29
https://en.wikedia.org/wiki/Memory_overcommitment
https://www.kernel.org/doc/Docamentation/sysctl/vm txt
https://www.kernel.org/doc/Docamentation/vm/overcommit- অ্যাকাউন্টিং
https://lwn.net/Articles/317814/

তারা এটি সম্পর্কে কথা বলে:
লিনাক্স-অফ-মেমরি (ওওএম) ঘাতক কেন স্বয়ংক্রিয়ভাবে চালিত হয় না, তবে সিসেরকি-কি-তে কাজ করে?
OOM- ঘাতক কেন কখনও কখনও সংস্থান হগগুলিকে হত্যা করতে ব্যর্থ হয়?
ওওএম হত্যাকারীর প্রিললোড
করা জোর করে অদলবদল করে ওওএম -কিলার ট্রিগার করা সম্ভব?
কীভাবে ওওএম পরিস্থিতিটির কাছাকাছি উচ্চ বিলম্বিততা এড়ানো যায়?
https://lwn.net/Articles/104179/
https://bbs.archlinux.org/viewtopic.php?id=233843


1
আমি মনে করি এটিই আপনার প্রত্যাশা করা উচিত, যদি আপনি ছিটকে যাচ্ছেন, তবে আপনি সত্যই 100% "ব্যবহৃত" এর কাছে পৌঁছাচ্ছেন না, অর্থাত্ মেমরির অনেক বেশি ব্যবহার রয়েছে যা ফাইল-ব্যাকড, "বাফ / ক্যাশে" হিসাবে গণ্য। (ওহ, এই ফ্রেসিংগুলি আপনার tmpfs বরাদ্দগুলি তুচ্ছ হিসাবে ধরে নেওয়া হয়, কারণ এগুলি "বাফ / ক্যাশে" হিসাবে প্রদর্শিত হয়, তবে কোনও ফিজিক্যাল ফাইল সিস্টেমের সাথে সংযুক্ত করা যায় না)। min_free_kbytesপ্রাসঙ্গিক নয়, এটি ক্যাশেড পৃষ্ঠাগুলির জন্য কোনও রিজার্ভ নয়। VM sysctls এর AFAICT কেউ ক্যাশে পৃষ্ঠাগুলির জন্য কোনো স্মৃতি সংরক্ষণ করার অনুমতি দেয় বিশেষভাবে, অর্থাত MAP_ANONYMOUS বরাদ্দ সীমিত :(।
sourcejedi

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

2
আমি এই সম্পর্কে আর্চ লিনাক্স ফোরামে পোস্ট করেছি ।
ইনসারাভ

1
@ dsstorefile1 ধন্যবাদ, আমি এটি চেষ্টা করব। কিন্তু এই পরিস্থিতিতে যখন কার্নেল এটি সঠিকভাবে করতে না পারে তখন কীভাবে এটি নিশ্চিতভাবে ওওএম ঘাতকটিকে ট্রিগার করতে পারে?
M89

1
ক্রোম যখন আমার সমস্ত র‍্যামের মধ্য দিয়ে ফাঁস হয়ে যায় তখন এটি সাহায্য করেছিল ... (যদিও আমি অবশেষে একটি প্রকৃত ডিস্ক অদলবদলও জুড়েছি এবং শেষ পর্যন্ত র‌্যামের একটি ভাল পরিমাণে আপগ্রেড করেছি)
গার্ট ভ্যান ডান বার্গ

উত্তর:


5

আমি কেন যেমন (একই জিনিস) দুই ব্যাখ্যা পাওয়া করেছি kswapd0 নেই ধ্রুবক ডিস্ক পড়া ঘটে ভাল আগে হলে OOM kills-হত্যাকারী আপত্তিকর প্রক্রিয়া নষ্ট:

  1. এসইউবুন্টু এসই উত্তরটির উত্তর এবং মন্তব্য দেখুন
  2. উত্তরটি এবং ইউনিক্স এসই-তে এই উত্তর সম্পর্কে ডেভিড শোয়ার্জের মন্তব্য দেখুন

আমি 1. যা সত্যিই কেন আমি ধ্রুবক ডিস্ক পড়া পেয়ে ছিল যখন সবকিছু ছিল হিসেবে আমার চোখ খোলা থেকে এখানে মন্তব্য উদ্ধৃত করব হিমায়িত :

উদাহরণস্বরূপ, এমন কোনও ক্ষেত্রে বিবেচনা করুন যেখানে আপনার শূন্যের অদলবদল রয়েছে এবং সিস্টেমটি প্রায় র‍্যামের বাইরে চলেছে। কার্নেল যেমন ফায়ারফক্স থেকে মেমরি নেবে (এটি এটি করতে পারে কারণ ফায়ারফক্সটি এক্সিকিউটেবল কোড চালাচ্ছে যা ডিস্ক থেকে লোড করা হয়েছে - কোডটি আবার ডিস্ক থেকে লোড করা যেতে পারে) প্রয়োজনে)। যদি ফায়ারফক্সের সেই র‌্যামটি পুনরায় অ্যাক্সেস করার দরকার হয় N সেকেন্ড পরে, সিপিইউ "হার্ড ফল্ট" উত্পন্ন করে যা লিনাক্সকে কিছুটা র‌্যাম মুক্ত করতে বাধ্য করে (উদাহরণস্বরূপ অন্য প্রক্রিয়া থেকে কিছুটা র‌্যাম নেয়), অনুপস্থিত ডেটাটি ডিস্ক থেকে লোড করুন এবং তারপরে ফায়ারফক্সকে চালিয়ে যাওয়ার অনুমতি দিন চলিত. এটি সাধারণ অদলবদলের সাথে বেশ সমান এবং কেএসপিডি 0 এটি করে। - মিক্কো রেন্টালাইনেন 15 ফেব্রুয়ারি 13:08 এ

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

আপডেট: আমি এখনও অবধি খুঁজে পেয়েছি কার্নেলটি প্যাচিংয়ের মাধ্যমে এবং এটি আমার জন্য সোয়াপ অক্ষম (যেমন। CONFIG_SWAP is not set) নিয়ে কাজ করে তবে স্ব্যাপ সক্রিয় অন্যদের পক্ষে কাজ করে না বলে মনে হয় ; এই প্রশ্নের ভিতরে প্যাচ দেখুন ।


বৈধ নয় এমন পাঠ্যটি সরান Please পাঠ্যে "EDIT" দিয়ে সম্পাদনাগুলি ট্যাগ করবেন না। তারা সংশোধন ইতিহাস থেকে সুস্পষ্ট ।
কুসালানন্দ

1
@ কুসালানন্দ এই ব্যবহারকারীকে উত্সাহিত করা উচিত কারণ তিনিই সম্ভবত সবচেয়ে বেশি অবদান রাখেন।
M89

@ কুসালানন্দ আমি ভেবেছিলাম এগুলি রাখা জরুরী যাতে অন্যেরা কী দেখতে পায় (অন্য) কী চেষ্টা করেছিল এবং কাজ করে না। UPDATEপরিবর্তে সম্ভবত EDITআরও ভাল হত?

@ মার্কাসলিন্সার না, দুঃখিত, আপনি ভুল বুঝে গেছেন। আপনি যখন যা জিজ্ঞাসা করেছেন তখন আপনি যা করেছেন তা প্রদর্শন করা । উত্তর প্রশ্নের জন্য সঠিক হতে উচিত এটি বর্তমানে যাকে জাহির করা হয়। মানে, একটি সম্পাদনা এমনকি পাঠককে পূর্ববর্তী সম্পাদনাগুলি উপেক্ষা করতে বলে । যদি কেউ সম্পাদনার ইতিহাস দেখতে আগ্রহী হয় তবে আপনি এটি এখানে দেখতে পাবেন
Kusalananda

0

memory.minমাপদণ্ড cgroups-v2মেমরি কন্ট্রোলার সাহায্য করা উচিত।

যথা, আমাকে উদ্ধৃতি দিন:

হার্ড মেমরি সুরক্ষা। যদি কোনও সিগ্রুপের মেমরির ব্যবহারটি কার্যকর ন্যূনতম সীমানার মধ্যে থাকে তবে সিগ্রুপের মেমরি কোনও অবস্থাতেই পুনরুদ্ধার করা হবে না। যদি কোনও সুরক্ষিত পুনঃসারণযোগ্য মেমরি উপলব্ধ না থাকে তবে OOM হত্যাকারীর প্রার্থনা করা হবে।

সূত্র: https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html


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