ডিফল্ট অদলবদলের আকার কত?


16

কীভাবে ইনস্টলার কোন আকারের অদলবদল তৈরি করতে পারে তা গণনা করে? সম্ভবত এটি ইনস্টল করা র‌্যাম আকারের উপর ভিত্তি করে, তবে এটি কতটা র‌্যামের উপর নির্ভর করে?


কোনও ডিফল্ট মান নেই এটি আপনার কত র‌্যামের উপর নির্ভর করে।
উরি হেরেরা

1
আচ্ছা হ্যাঁ, তবে আমি "এটি নির্ভর করে" এর চেয়ে কিছুটা বিশদ অনুসন্ধান করছিলাম। এটি কি সর্বদা র‌্যাম আকারের একাধিক সেট, বা এটি কতটা র‌্যাম রয়েছে তার উপর নির্ভর করে? উদাহরণস্বরূপ, হাই র‌্যাঙ্কনেস সক্ষম করার জন্য বড় র‌্যাম মাপের প্রয়োজনের তুলনায় কখনও বেশি প্রয়োজন হয় না, তবে খুব কম র‌্যাম মাপগুলি 1: 1 এর চেয়ে বড় আকারের অদলবদল থেকে উপকৃত হতে পারে।
সেরেট

উত্তর:


5

প্রকৃতপক্ষে কোনও dphys-swapfileডিফল্ট উবুন্টু ইনস্টলেশন সিডিতে কোনও প্রোগ্রাম নেই এবং এটি অদলবদলের আকার গণনা করতে ব্যবহৃত হয় না ।

যা ঘটে তা হ'ল সমস্ত পার্টিশনের মাপ নির্ধারণ করতে ubiquityইনস্টলার partman-autoস্ক্রিপ্ট এবং কনফিগারেশন ফাইল (যাকে রেসিপি বলা হয় ) ব্যবহার করে । এটি এর মতো কাজ করে:

  • পার্টম্যান কম্পিউটারের ধরণ এবং ব্যবহারকারী যে বিকল্পটি বেছে নিয়েছেন তার অনুসারে সঠিক রেসিপি ফাইলটি সন্ধান করে।
  • সেখানে এটি পার্টিশনের সর্বনিম্ন এবং সর্বাধিক আকার এবং এর অগ্রাধিকার খুঁজে পায়। জন্য swap 'র 512 (অগ্রাধিকার) 300% (সর্বোচ্চ) - এটি 96 (মেগাবাইটে মিনিট) হতে পারে।
  • তারপরে এটি র‍্যাম আকার (মাধ্যমে /proc/meminfo) পায়।
  • এটি আকারগুলি গণনা করতে তার নিজস্ব অ্যালগরিদম ব্যবহার করে।

বিবরণ:

একটি রেসিপি ফাইলটি দেখতে এটি দেখতে পারে:

1 1 1 free
    $iflabel{ gpt }
    method{ biosgrub } .

500 10000 -1 $default_filesystem
    $lvmok{ }
    method{ format }
    format{ }
    mountpoint{ / } .

96 512 300% linux-swap
    $lvmok{ }
    method{ swap }
    format{ } .

আকারগুলি গণনা করার জন্য অ্যালগরিদম:

for(i=1;i<=N;i++) {
   factor[i] = priority[i] - min[i];
}
ready = FALSE;
while (! ready) {
   minsum = min[1] + min[2] + ... + min[N];
   factsum = factor[1] + factor[2] + ... + factor[N];
   ready = TRUE;
   for(i=1;i<=N;i++) {
      x = min[i] + (free_space - minsum) * factor[i] / factsum;
      if (x > max[i])
         x = max[i];
      if (x != min[i]) {
         ready = FALSE;
         min[i] = x;
      }
   }
}

আরও দেখুন:


আকর্ষণীয় বিতর্ক: একটি অদ্ভুত ডেবিয়ান ওয়েবসাইটের চেয়ে ভাল রেফারেন্স?
এনজোটিব

ঠিক আছে আমি এটি সন্ধান করার পরেও পেয়েছি কিন্তু প্যাকেজের একটি "সতর্কতা: এই প্যাকেজটি কেবলমাত্র ডেবিয়ান-ইনস্টলার ইমেজ তৈরির জন্য তৈরি। এটি সাধারণ উবুন্টু সিস্টেমে ইনস্টল করবেন না" " আমি ধরে নিয়েছি এটি ব্যবহার করা হয়নি তাই আমি অনুসন্ধান করেছি এবং ডিএফিস-সোয়াপ ফাইলের কোড> খুঁজে পেয়েছি: - ডি হুম সত্যই আকর্ষণীয়।
রিঞ্জউইন্ড

@ এঞ্জোটিব: আজব কেন?
ব্যবস্থা করুন

@ অ্যারেঞ্জ: অদ্ভুত কারণ কোনও অফিসিয়াল উবুন্টু সাইট নয়, এবং একটি ডেবিয়ান সাইট হিসাবে এটি কোনও অফিসিয়াল বলে মনে হচ্ছে না।
enzotib

আমি অদলবদলের আকার ডি গণনা করার জন্য আরও 2 টি পদ্ধতি পেয়েছি: এই পদ্ধতিটি গ্রেপ ^ মেম: / প্রো / মেমিনফো ব্যবহার করে বা যদি 0 গ্রেপ হয় ^ মেমটোটাল: / প্রোক / মেমিনফো এবং তারপরে 2 (ডিফল্ট) বা 3 দ্বারা সর্বাধিক সেট হয় 300%) প্রতি আর্কিটেকচার সহ ন্যূনতম। একটি মিপসেল-এসবি 1-বিসিএম 91250a একটি স্থির 512 ব্যবহার করে i i386-efi 200% ব্যবহার করে।
রিনজউইন্ড

19

এটি বরং প্রযুক্তিগত হতে চলেছে তবে এটি মজাদার ছিল তাই এখানে চলে যায় ...

  • আমি একটি প্যাকেজ খুঁজে পাওয়া dphys-swapfileএবং এখানে সোর্স কোড । পছন্দsetupসেট আপ করতে ব্যবহৃত হয়:
সেটআপ - dphys-swapfile কে অনুকূল স্বাপ ফাইল আকার এবং গণনা করতে বলে
(পুনরায়) একটি ফিটিং স্বাপ ফাইল তৈরি করুন। এটি র‍্যাম আকারের 2 বার ডিফল্ট করুন।
বুট করার সময় এটি বলা যেতে পারে, সুতরাং ফাইলটি সর্বদা থাকে
বর্তমান র‌্যামের জন্য ডান আকার, বা যখনই র‌্যামের আকার হবে তখন হাতে চালিত
পরিবর্তন করেছেন।
  • ভিতরে একটি পূর্বনির্ধারিত আকারের জন্য dphys-swapfileএকটি সেটিংস রয়েছে conf_swapsize(নাট্টিতে এটি খালি):
আকারটিকে আমরা এটি হতে বাধ্য করতে চাই, ডিফল্ট (খালি) 2 * র‌্যাম দেয়
CONF_SWAPSIZE =

এবং একটি জন্য একটি সেটিং swapfactor...

this is what we want, 2 times RAM size
SWAPFACTOR=2
  • আসল আকারটি আরও কিছুটা এখানে গণনা করা হয়:

    যদি ["$ {CONF_SWAPSIZE}" = ""]; তারপর
      # গণনা স্বয়ংক্রিয় অনুকূল মাপ
      প্রতিধ্বনি -n "কম্পিউটিং আকার,"
      # এটি শারীরিক র‌্যাম আকারের নিকটতম বলে মনে হচ্ছে, প্রায় 60 কিলোবাইট নেই
      KCORESIZE = "` ls -l / proc / kcore | awk '{মুদ্রণ $ 5}' `"
      # এমবিাইট তৈরি করুন যা গোলাকার নিচে ঠিক 1 খুব কম হবে, তাই 1 যুক্ত করুন
      MEMSIZE = "` এক্সপ্রেস "$ {KCORESIZE}" / 1048576 + 1` "
      # ডিফল্ট, কনফিগারেশন ফাইল ওভাররাইড ছাড়াই, অদলবদল = 2 * র‌্যাম
      CONF_SWAPSIZE = "` এক্সপ্রেস "$ E MEMSIZE}" '*' "$ W স্বচ্ছল}" `"
    ফাই

আপনি দেখতে পাচ্ছেন যে এই প্যাকেজে তারা যেভাবে এটি গণনা করে তা আকারের উপর নির্ভর করে /proc/kcore, তারপরে এটির জন্য 1048576, +1 দ্বারা ভাগ হয়ে যায় এবং তারপরে স্ব্যাপফ্যাক্টর দ্বারা গুণিত হয়। আমার মেশিন থেকে:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং এই সিস্টেমের জন্য ডিফল্ট হবে 1065349120/1048576 = 1015 + 1 = 1016 * 2 = 2032 এমবিাইট।

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