আপনি কি সর্বনিম্ন লিনাক্স ডিস্ক বাফার আকার সেট করতে পারেন?


8

আমার কাছে একটি 2 জিবি র‌্যাম, কোনও অদলবদল নয়, পুরানো লিনাক্স মেশিন রয়েছে এবং এটি খুব ভালভাবে কাজ করছে, সিস্টেমটি দুর্দান্ত প্রভাবের সাথে ক্যাশে করার জন্য প্রতিটি অপ্রয়োজনীয় মেমরির টুকরো ব্যবহার করে।

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

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

আবার, কোনও অদলবদল নেই, সুতরাং এটি অদলবদল হয় না - এটি কেবল ছিটকে যাচ্ছে কারণ এর কোনও বাফার নেই।

আমার কাছে অনেক বেশি 100MB থাকবে বা কেবলমাত্র ডিস্ক বাফারগুলিতে একমাত্র উত্সর্গীকৃত, যা OOM হত্যাকারীকে আগে চালিত করবে (প্রোগ্রামগুলির জন্য কম মেমরি, সর্বোপরি) তবে অন্যদিকে মেশিনকে সর্বদা প্রতিক্রিয়াযুক্ত রাখবে।

এটা করার কোন উপায় আছে? আমি কোনও প্রকার / কার্নেল বা / sys / vm এন্ট্রি খুঁজে পাইনি যা এই ধরণের কাজ করে।


আমারও একই সমস্যা রয়েছে এবং দুর্ভাগ্যক্রমে এই তারিখের উত্তরগুলির কোনওটিরই এই ক্ষেত্রে সহায়তা হয় না।
ক্রেজিজনিস নেজেনবার্গস

উত্তর:


1

কটাক্ষপাত আছে জন্য / proc / sys / vm / min_free_kbytes । এটি ফ্রি কেবিটসের সীমা যা ওম-হত্যাকারীকে ট্রিগার করে। এটি সুশৃঙ্খলভাবে কি হত্যা করা হয় শব্দ হলে OOM kills-হত্যাকারী জন্য লগের এ চেক করতে হবে {propably আপনি SSH হত্যা করতে চাই না , আপনি এটি ভালো renice এটা}


ধন্যবাদ। আমি এটি প্রসারিত করেছি, তবে এটি সমস্যার সমাধান বলে মনে হচ্ছে না - একবার শারীরিক স্মৃতি ক্লান্তির কাছাকাছি থাকলে কোনও বাফার মেমরি অবশিষ্ট ছিল না, এবং মেশিনটি ক্রলটিতে ধীর হয়ে গেছে।

এখানে কোনও সহায়তা নেই, সিস্টেম এখনও সম্পূর্ণরূপে প্রতিক্রিয়াহীন goes
Tronic

এটি আসলে আমাকে সাহায্য করেছিল, আমার কাছে 2 জিবি র‌্যাম রয়েছে এবং আমি এটি প্রায় 500
এমবিতে

আমি বর্তমানে আমার ওয়ার্কস্টেশনে এই সেটিংটি পরীক্ষা করছি। আমার কাছে 8 জিবি র‌্যাম রয়েছে এবং বেশিরভাগ সময় আমি 5 এর বেশি ব্যবহার করি না ... যখন কোনও কারণে আমাকে একটি উইন্ডোজ ভিএম চালিত করতে হয় যার জন্য প্রায় 4 জিবি র‌্যামের প্রয়োজন হয়। আমি আমার হোস্ট ওএসে জেডআরএএম সেটআপ করেছি আমার হার্ড ড্রাইভটি যান্ত্রিক বলে মনে করে, তবে ফাইল সিস্টেম বাফার এবং ক্যাশে কম র‌্যামের স্পষ্টভাবে র্যামটি প্রায় সম্পূর্ণরূপে এটি ধীরে ধীরে হয়ে যায়। আমি ঠিক নিশ্চিত আমি সবসময় অন্তত 2 GB মুক্ত করা হয়েছে এবং (যা বাকি জিপ করা র্যাম থেকে পেজড আছে vm.min_free_kbytes ব্যবহৃত পথ স্বাভাবিক swap 'র স্থান তুলনায় দ্রুততর)। ফলাফল পরে পোস্ট করবে।
রাক

1

মেমরি মুক্ত করার জন্য ওম-কিলারটির জন্য অপেক্ষা করা আপনার ইঞ্জিনটি আপনার গাড়ীতে থামার অপেক্ষা রাখার মতো, যা আপনার গ্যাস ট্যাঙ্কটি পূরণ করার সময়। ওম-কিলার একটি রিসোর্স-অনাহারে মেশিনের জন্য সর্বশেষ অবলম্বন এবং হতাশার একটি ভারী হাতের সরঞ্জাম। এটি পরের প্রোগ্রামটিকে হত্যা করে যা এটি আপনার প্রয়োগ, পুনঃব্যবহারযোগ্যতা, নির্ভরযোগ্যতা এবং আরও কীভাবে এর প্রভাব ফেলবে তা বিবেচনা করেই বিবেচনা করে না। যখন ওম-কিলারকে ডাকা হয়, তখন আপনার সার্ভারটি নিঃশ্বাসের জন্য হাঁপান এবং গুরুতর অবস্থায় থাকে।

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


আমি যে পরিস্থিতি আবিষ্কার করেছি তা হ'ল ঠিক সেই সময়টিতে যা আমার সার্ভারটি দম ফেলার জন্য এবং গুরুতর অবস্থায়। সম্পূর্ণ প্রতিক্রিয়াশীল মেশিন থেকে Ctrl-Alt-F1 (X থেকে কনসোল এ স্যুইচ করুন) এর প্রতিক্রিয়া জানাতে এক মিনিট সময় নিতে 20 সেকেন্ডেরও কম সময় লাগে। এবং লগ-ইন করা অসম্ভব কারণ এটি পাসওয়ার্ড না জিজ্ঞাসা করেও 1 মিনিটের পরে শেষ হয়। এটি এমন একটি মেশিন যার অনেকগুলি প্রক্রিয়া চলছে; প্রত্যেকেই স্বাধীনভাবে সমস্যা নয়। এছাড়াও, এটি কঠোরভাবে একটি মেমরির সমস্যা - সিপিইউ ভাল, এবং যতক্ষণ না প্রায় 50MB ডিস্ক বাফার রয়েছে disk

আপনি যদি ইউলিমিট ব্যবহার করেন এবং যদি কোনও অ্যাপ্লিকেশন কোনও পদক্ষেপ গ্রহণের জন্য একটি চৌম্বক ব্যবহার করে?
নিকোলাইডিস ফোটিস

সমস্যাটি সমস্ত অ্যাপ্লিকেশনগুলির যোগফল; 20 বা ততক্ষণে চলমান, 20-100 এমবি বরাদ্দযুক্ত প্রতিটি each এটি সপ্তাহ, এমনকি কয়েক মাস ধরে দুর্দান্ত কাজ করে, তবে যখন তারা সকলে একই সময়ে ~ 100MB বরাদ্দ করতে চায়, তখন সমস্ত কিছু ক্র্যাশ হয়ে যায় এবং জ্বলতে থাকে; আমি বরং মেশিনটি রিবুট করার চেয়ে ওম_কিলারটিকে তাদের একজনকে মেরে ফেলি। যাইহোক, আমি আপাতত অদলবদ চালু করে রেখেছি - বেশিরভাগ অ্যাপ্লিকেশনগুলি সমস্ত সময় তাদের সমস্ত মেমরি ব্যবহার করে না, তাই শারীরিক স্মৃতির শেষের দিকে চাপ দেওয়ার পরেও যন্ত্রটি স্থিতিশীল থাকে; তবে, যদি আমি পারি তবে এই মেশিনটির জন্য আমার কোনও বদল নেই।

1
যথাযথ মেমোরি ব্যবহারের সীমা নির্ধারণ না করা (উলিমিটগুলি খুব দরকারী নয়), অ্যাপ্লিকেশনগুলি সহজেই মেমরির বরাদ্দ দিয়ে ধ্বংস করে দেয়, OOM হত্যাকারী খুব তাড়াতাড়ি গুলি চালাতে ব্যর্থ হয় এবং বিশাল ডিস্ক ট্র্যাশিং এবং প্রতিক্রিয়াহীনতা প্রকৃত সমস্যার সমাধান করে না যে সমস্ত কারণে। আমি আমার নিয়োগকর্তার সময়টির 30 মিনিট সময় নষ্ট করেছি কারণ ডেভলপমেন্ট মেশিনটি আমার কোডটি সংকলন করার সময় আধা ঘন্টার জন্য ডিস্কটি ট্র্যাশ করে দেবে, ক্রমিয়াম প্রক্রিয়াগুলি কেবলমাত্র একটি সেকেন্ডের চেয়ে কম সময়ে খুন করার প্রয়োজন (বা নিজেই সংকলন করা) এর পরিবর্তে killing এটি দিয়ে করা।
Tronic

আপনি যদি oom_adjসঠিকভাবে সেট করেন তবে আপনার ডেস্কটপ সিস্টেমটি অ্যান্ড্রয়েডের মতো কিছুটা কাজ করতে পারে যেখানে সিস্টেমটি কার্যত সর্বদা ওওএম হত্যাকারীর বিরুদ্ধে চলতে থাকে (প্রযুক্তিগতভাবে একটি "লো মেমরি কিলার" রয়েছে এবং এটি এর মাধ্যমে সুরযুক্ত /sys/module/lowmemorykiller)। যুক্তি হ'ল অ-সমালোচনামূলক পটভূমি প্রক্রিয়াগুলি OOM হত্যাকারীর সম্ভাব্য শিকার হিসাবে চিহ্নিত করা এবং নিহত প্রক্রিয়াগুলির সন্ধান এবং সিস্টেমকে অতিরিক্ত চাপ দেওয়া এড়াতে ধীরে ধীরে প্রয়োজনীয় নিহত প্রোগ্রামগুলি পুনরায় শুরু করা। কেবল নিশ্চিত হয়ে নিন যে প্রক্রিয়াটি অন্য প্রক্রিয়াগুলি পুনরায় চালু করে OOM হত্যাকারীর সীমা ছাড়াই চিহ্নিত রয়েছে।
মিক্কো রেন্টালাইনেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.