কেন কোনও সোয়াপবিহীন কম্পিউটারে kswapd0 চলছে?


21

আমার কাছে ~ 14G র্যামের সাথে ক্লাউড সার্ভার রয়েছে এবং কোনও অদলবদল নেই। যাইহোক, আমি মাঝে মধ্যে দেখি kswapd0 আমি চালানোর সময় কিছু সিপিইউ গ্রহণ করি top। কেন kswapd0 এটি পরিচালনা করার জন্য যদি অদলবদলের জায়গা না থাকে তবে এগুলি চলছে কেন?

উত্তর:


8

এটিতে এখনও কোনও অদলবদল আছে কিনা তা পরীক্ষা করার প্রক্রিয়া রয়েছে has এটি হ্রাস করার জন্য, আপনাকে নিজের অদলবদল সেট করতে হবে -

"/etc/sysctl.conf" কে রুট হিসাবে সম্পাদনা করুন, তারপরে পরিবর্তন করুন (বা যুক্ত করুন)

vm.swappiness = 0

3
ঠিক আছে, তবে এটি আমার সিপিইউয়ের 1% ব্যবহার করছে কেন?
Portforwardpodcast

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

আপনি যদি সোয়াপ সক্ষম করে থাকেন এবং kswapd0কিছু সিপিইউ ব্যবহার করেন এবং আপনি এটি না চান তবে নীচের অংশটি কম করুনswappiness সেটিংসটি । যাইহোক, আপনার অদলবদল এসএসডি দ্বারা সমর্থন না করা যা লেখার ফলে ভোগ করে (উদাঃ খারাপ পরিধান লেভেলিং অ্যালগরিদম), হ্রাস কমিয়ে swappinessসামগ্রিক কর্মক্ষমতা হ্রাস করে। ধারণা একটি রাখা কপি আরো র্যাম প্রয়োজন হয় ক্ষেত্রে swap 'র মধ্যে উপস্থিত RAM- র - যে ক্ষেত্রে RAM- র মধ্যে কপি দূরে নিক্ষিপ্ত হয় অবিলম্বে পরিবর্তে swap' র শুরু করে র্যাম সামনে থেকে দূর করে ব্যবহার করা যাবে। এই আশাবাদী অদলবদলটি কেবল তখনই করা হয় যখন সিস্টেমটি যথেষ্ট অলস থাকে তাই এটি কখনই আপনার সিস্টেমকে ধীর করে না।
মিক্কো রেন্টালাইনেন

26

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


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

4

এটি একটি সুপরিচিত সমস্যা যে লিনাক্স যখন মেমরির বাইরে চলে যায় তখন এটি যা করা উচিত তা না করে র‌্যামকে মুক্ত করতে প্রসেস হত্যা করে অদলবদলে প্রবেশ করতে পারে। সেখানে একটি ওওএম (মেমোরির বাইরে) হত্যাকারী রয়েছে এটি কেবল তখনই ঘটে যখন অদলবদল এবং র‌্যাম পূর্ণ থাকে।

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

আপনি যদি অদলবদাকে অক্ষম করে থাকেন তবে আপনি এই সমস্যাটিকে আরও খারাপ করে তুলবেন কারণ kswapd0 এর কাছে এখন এক্সিকিউটেবলের মতো ম্যাপ করা মেমরির বদলে নেওয়া ছাড়া আর কোনও বিকল্প নেই। আপনি যদি এক্সিকিউটেবলের অদলবদল করেন তবে এগুলি আরও দ্রুত সম্ভব আবার দ্রুত বদলে ফেলা হবে।

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

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

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

অদলবদল = 0 নির্ধারণ করা কোনও সমাধান নয় কারণ সিস্টেমটি যখন ফ্রি র‌্যামের বাইরে চলে যায় তখন তা অদলবদল শুরু করে যাই হোক না কেন। গ্যারান্টি দেওয়ার কোনও বিকল্প নেই যে সিস্টেমটি অদলবদল শুরু করে না।

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

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

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

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

হ্যাঁ এটি কিছুটা কৌতুকপূর্ণ তবে আমি আশা করি এটি লিনাক্স মেমরির সাবসিস্টেমগুলির সাথে সাথে এটি তৈরির অ্যাপ্লিকেশনগুলির সাথে বর্তমান সমস্যাটিও স্পষ্ট করে।


1

আপনার যদি অদলবদল হয় না এবং kswapd0চলমান থাকে, আপনার সিস্টেমটি সেই মুহুর্তে প্রায় সমস্ত র‌্যাম ব্যবহার করছে। মেমরির ব্যবহার (বা সিস্টেমে ফ্রি / উপলভ্য মেমরি) নিরীক্ষণের জন্য আরও ভাল সরঞ্জাম পাওয়ার সময় এসেছে।

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


এখানে আপনার মন্তব্যেও ভাল তথ্য রয়েছে তবে স্বাপ সক্রিয় করা সীমাবদ্ধতার কোনও সমাধান নয় যেখানে উপলব্ধ সমস্ত মেমরি (ram + swap) পূরণ হচ্ছে। এটি মেমরি ফাঁসের ক্ষেত্রে একটি বিশেষ সমাধান, কারণ এটি অনিবার্য যে সমস্ত স্মৃতি শেষ পর্যন্ত পূর্ণ হয়ে যায়। Swap + ram পূর্ণ হলে ফলাফলটি যখন ram পূর্ণ হয় এবং swap অক্ষম থাকে তেমন হয়।
কোড ব্লিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.