জ্রাম ব্যবহার করার সময় vm.swppiness এর উপযুক্ত মানটি কী?


13

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

তাহলে কি কেউ জিরাম vm.swappinessব্যবহার করার সময় 100 এর সাথে সেট করে , এর সাথে চারপাশে গোলমাল করেছে? এটা কি কাম্য হবে?

sysctl -w vm.swappiness=100

2
এটি একটি দুর্দান্ত প্রশ্ন এবং আমি মনে করি কিছু মতামতগুলি মতামতগুলি সরিয়ে ফেলার জন্য এবং
এল্ডার গিক

ভাল ধারণা, এবং জ্রাম সম্ভবত ২০১২ সাল থেকে উন্নত হয়েছে যখন আমি এটি শেষ ব্যবহার করেছি :-)
হিউজেনস

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

উত্তর:


2

আমি সত্যিই অদলবদলকে আরও উঁচুতে রাখার পরামর্শ দেব না। কার্নেলের একটি সাধারণ প্রক্রিয়া হ'ল এটি চলমান অন্যান্য কাজের জন্য কিছু স্মৃতি মেমরি মুক্ত করার জন্য পৃষ্ঠাগুলি (মেমরির অংশ) অদলবলে রাখবে।

প্রথম "সমস্যা" যখন কার্নেল এন পৃষ্ঠাগুলি মুক্ত করতে চায়, এম (এম <এন, এম দিয়ে এন ধরে রাখতে প্রয়োজনীয় সংকোচিত পৃষ্ঠাগুলির সংখ্যা) নতুনভাবে র‌্যামে তৈরি হয়েছে, আমি নিশ্চিত নই যে এটি কার্নেলটি বিঘ্নিত করতে পারে বা না না.

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

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

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


zram র‌্যাম ব্লক ডিভাইস সরবরাহ করে। এই ব্লক ডিভাইসে লেখা সমস্ত কিছুই সংকুচিত হয়ে যায়। যদি জ্রাম ব্লক ডিভাইসগুলিকে অদলবদল হিসাবে ব্যবহৃত হয়, সিস্টেম যখন মেমরির কিছু অংশ অদলবদলে সরিয়ে আনার চেষ্টা করে তখন এটি কার্যকরভাবে র‌্যামের এক অংশ থেকে অন্য অংশে মেমরি স্থানান্তরিত করবে, গন্তব্যটিতে অনুলিপি করার আগে ডেটা সংকুচিত করা হবে except সীমিত পরিমাণে মেমরি থাকা সিস্টেমগুলিতে প্রতিক্রিয়াশীলতার উন্নতি করতে এটি কার্যকরভাবে একটি সস্তা মেমরি সংক্ষেপণ প্রক্রিয়া হিসাবে কাজ করে। ... লিনাক্স ২.6.৩৩ থেকে জ্রাম মঞ্চস্থ হয়েছে। ৩.১৪ সালে জ্রামটি ড্রাইভার / ব্লক / জ্রামে মঞ্চের বাইরে চলে গেছে।
এল্ডার গিক

1
@ ওল্ডারজিক ঠিক! এবং কেন এটি নিখুঁত নয় তা বর্ণনা করার জন্য আমি একটি উদাহরণ নেব। কার্নেলটি M৪ এমবি র‌্যাম সরিয়ে ফেলতে চেষ্টা করবে, এটি সেগুলিকে জ্রাম সোয়েপে রেখে দিয়েছে। সংকুচিত M৪ এমবি অংশ এখন 32MB M ফলস্বরূপ মেমরিটি 32MB দ্বারা কমেছে এবং 64MB নয়। এখন যখন অ্যাপ্লিকেশনটির 64MB মেমরির ফিরে দরকার হয় তখন কী ঘটেছিল, কার্নেলের অনুলিপি (এবং না সরানো) মেমরিতে ফিরে আসে। আপনার কাছে এখন জিআরেমে র‌্যাম + 32 এমবি 64৪ এমবি। কপি কেন? কার্নেল পৃষ্ঠাগুলি ক্যাশে করে কারণ আমি আমার উত্তরে ব্যাখ্যা করেছি। উভয় আচরণই আদর্শ নয়। এবং স্মৃতি যখন সংকোচনযোগ্য নয় তখন এটি আরও খারাপ।
হিউজেনস

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

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

হ্যাঁ, আমার ফলাফলগুলি কিছুটা একই রকম হয়েছে, 8 জিবি সহ একটি সিস্টেমে আমি একটি এনকোডিং কাজের সময় বেশ কয়েকটি ভিএম চালু করে একটি ওওকে জোর করতে সক্ষম হয়েছি। Zswap নিয়ে আপনার কি কোনও অভিজ্ঞতা আছে? আমি যা পড়েছি তার ভিত্তিতে এটি একটি কার্যকর বিকল্প বলে মনে হচ্ছে।
বয়স্ক গীক

2

সংক্ষিপ্ত উত্তর: vm.swappiness=100নেই প্রযোজ্য মান zram জন্য (লিনাক্সের 4.9 সঙ্গে ডেবিয়ান প্রসারিত উপর অন্তত, আমি বিশ্বাস করি যে শ্রেষ্ঠ মান)

আমি ইতিমধ্যে vm.swappiness=100আমার জন্য পরীক্ষা ।

আমি মনে করি কোন মানটি আপনার পক্ষে সবচেয়ে ভাল তা নিশ্চিত করার জন্য আপনি কিছু সাধারণ পরীক্ষা করতে পারেন।

এছাড়াও আমি এই প্রশ্নটি পরীক্ষার জন্য আরও একটি সহজ প্রোগ্রাম তৈরি করেছি । এক্স আমার মেশিনে খুব কম vm.swappinessমান (যেমন vm.swappiness=1) স্পষ্ট প্রতিক্রিয়াশীলতার সমস্যা সৃষ্টি করবে।

আমাদের সম্পর্কে SwapCachedমধ্যে /proc/meminfo:

প্রথমে চেষ্টা করুন vm.page-cluster=0, এটি অদলবদল থেকে কিছু অকেজো হ্রাস করতে পারে SwapCached

অদলবদল অদলবদল ডিভাইসের মতোই সোয়াপচ্যাশড জ্রামকে গতি বাড়িয়ে তুলতে পারে

SwapCached প্রয়োজনে পুনঃব্যবহার করতে পারেন (বিনামূল্যে):

./linux-4.9/mm$ grep -rn delete_from_swap_cache
memory-failure.c:715:   delete_from_swap_cache(p);
shmem.c:1115:       delete_from_swap_cache(*pagep);
shmem.c:1645:            * unaccounting, now delete_from_swap_cache() will do
shmem.c:1652:               delete_from_swap_cache(page);
shmem.c:1668:       delete_from_swap_cache(page);
vmscan.c:673:       __delete_from_swap_cache(page);
swap_state.c:137:void __delete_from_swap_cache(struct page *page)
swap_state.c:218:void delete_from_swap_cache(struct page *page)
swap_state.c:227:   __delete_from_swap_cache(page);
swapfile.c:947:         delete_from_swap_cache(page);
swapfile.c:987: delete_from_swap_cache(page);
swapfile.c:1023:            delete_from_swap_cache(page);
swapfile.c:1571:            delete_from_swap_cache(page);
./linux-4.9/mm$ 

0

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


সিস্টেমটি স্মৃতিশক্তি শেষ হয়ে যাওয়ার পরে আমি জরাম-ব্যাকড অদলবদল নিজেকে বেশ সহায়ক বলে মনে করেছি। এটি আমাকে জাহান্নামের অদলবদল হয়ে যাওয়া এবং পুনরায় আরম্ভ করতে পুরোপুরি আটকা পড়ার থেকে কয়েকবার বাঁচিয়েছে (আমি বড় ডেটা সেটগুলি বিশ্লেষণ করছি, সুতরাং এর সমস্ত 24 জিবি) আমার স্মৃতি দরকার। আমি কেবল ভাবছি যদি vm.swappinessডিস্ক-ব্যাকড অদলবদলের জন্য মানটি সুর করা হয় এবং আমি যদি তা পরিবর্তন করি তবে আমি বেশিরভাগই জ্রাম-ব্যাকযুক্ত স্ব্যুপ ব্যবহার করব।
রায়ান সি। থম্পসন

1
"ক্রমবর্ধমান দ্রুত"? গত দশকের চেয়ে বেশি সময় ধরে
ফ্লাইতে সংক্ষেপণ

সিমকাবিয়ান, আপনি "স্মৃতির গতির তুলনায়" ভুলে গেছেন। মতভেদ কোথায়?
আলেকজান্ডার

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