مقدمه ای برای مبادله فضای در سیستم های لینوکس

  • 2021-06-28

بیاموزید که چگونه فضای مبادله موجود در سیستم لینوکس خود را تغییر دهید و چقدر واقعاً به آن نیاز دارید.

arrows cycle symbol for failing faster

دو نوع حافظه اصلی در یک رایانه معمولی وجود دارد. نوع اول ، حافظه دسترسی تصادفی (RAM) ، برای ذخیره داده ها و برنامه ها در حالی که به طور فعال توسط رایانه استفاده می شود ، استفاده می شود. برنامه ها و داده ها توسط رایانه قابل استفاده نیستند مگر اینکه در RAM ذخیره شوند. رم حافظه بی ثبات است. یعنی در صورت خاموش بودن رایانه ، داده های ذخیره شده در RAM از بین می رود.

هارد دیسک ها رسانه های مغناطیسی هستند که برای ذخیره طولانی مدت داده ها و برنامه ها استفاده می شوند. رسانه های مغناطیسی غیر VOLATILE است. داده های ذخیره شده در دیسک حتی در صورت حذف برق از رایانه باقی می ماند. CPU (واحد پردازش مرکزی) نمی تواند مستقیماً به برنامه ها و داده های موجود در هارد دسترسی داشته باشد. ابتدا باید در RAM کپی شود ، و این جایی است که CPU می تواند به دستورالعمل های برنامه نویسی خود و داده هایی که توسط آن دستورالعمل ها داده می شود دسترسی پیدا کند. در طی فرآیند بوت ، یک رایانه برنامه های خاص سیستم عامل مانند هسته و INIT یا SYSTEMD و داده های هارد دیسک را به RAM کپی می کند ، جایی که به طور مستقیم توسط پردازنده رایانه ، CPU قابل دسترسی است.

نوع دوم حافظه در سیستم های مدرن لینوکس فضای مبادله است.

مبادله

بیشتر منابع لینوکس

عملکرد اصلی فضای مبادله جایگزینی فضای دیسک برای حافظه رم در هنگام پر کردن رم واقعی و فضای بیشتری است.

به عنوان مثال ، فرض کنید سیستم رایانه ای با 8 گیگابایت رم دارید. اگر برنامه هایی را راه اندازی کنید که آن قوچ را پر نمی کند ، همه چیز خوب است و هیچ مبادله ای لازم نیست. اما فرض کنید صفحه گسترده ای که هنگام اضافه کردن ردیف های بیشتری روی آن کار می کنید ، رشد می کند ، و این ، به علاوه هر چیز دیگری که در حال اجرا است ، اکنون همه رم را پر می کند. بدون اینکه فضای مبادله ای در دسترس باشد ، شما باید کار خود را روی صفحه گسترده متوقف کنید تا زمانی که بتوانید برخی از رم های محدود خود را با بستن برخی از برنامه های دیگر آزاد کنید.

هسته از یک برنامه مدیریت حافظه استفاده می کند که بلوک ها ، صفحات با نام مستعار ، حافظه ای را که اخیراً از آن استفاده نشده است ، شناسایی می کند. برنامه مدیریت حافظه به اندازه کافی از این صفحات نسبتاً نادر استفاده شده از حافظه به یک پارتیشن ویژه در هارد دیسک که به طور خاص برای "صفحه بندی" یا مبادله تعیین شده است ، مبادله می کند. این قوچ را آزاد می کند و باعث می شود تا اطلاعات بیشتری وارد صفحه گسترده شما شود. آن صفحات حافظه که به هارد دیسک تعویض می شوند توسط کد مدیریت حافظه هسته ردیابی می شوند و در صورت نیاز می توانند دوباره به RAM بپردازند.

مقدار کل حافظه در یک رایانه لینوکس فضای RAM Plus Swap است و از آن به عنوان حافظه مجازی یاد می شود.

انواع مبادله لینوکس

لینوکس دو نوع فضای مبادله را فراهم می کند. به طور پیش فرض ، بیشتر نصب های لینوکس یک پارتیشن مبادله ایجاد می کنند ، اما همچنین می توان از یک فایل مخصوص پیکربندی شده به عنوان یک فایل مبادله استفاده کرد. یک پارتیشن مبادله دقیقاً همان چیزی است که نام آن دلالت دارد - یک پارتیشن دیسک استاندارد که توسط دستور MKSWAP به عنوان فضای مبادله تعیین می شود.

در صورت عدم وجود فضای دیسک رایگان که در آن برای ایجاد یک پارتیشن یا فضای جدید مبادله جدید در یک گروه حجم که می توان یک حجم منطقی برای فضای مبادله ایجاد کرد ، می توان از یک فایل مبادله استفاده کرد. این فقط یک پرونده معمولی است که به اندازه مشخص شده ایجاد و از بین می رود. سپس دستور MKSWAP برای پیکربندی آن به عنوان فضای مبادله اجرا می شود. من توصیه نمی کنم از یک پرونده برای فضای مبادله استفاده کنید مگر اینکه کاملاً لازم باشد.

خیش

ریزش می تواند زمانی رخ دهد که حافظه مجازی کل ، هم رم و هم مبادله ، تقریباً پر شود. این سیستم آنقدر وقت خود را صرف می کند تا بلوک های حافظه را بین فضای مبادله و قوچ و عقب بکشید که زمان کمی برای کار واقعی باقی مانده است. علائم معمولی این امر واضح است: سیستم کند یا کاملاً پاسخگو می شود و نور فعالیت هارد دیسک تقریباً به طور مداوم انجام می شود.

اگر می توانید یک فرمان مانند رایگان را صادر کنید که بار CPU و استفاده از حافظه را نشان می دهد ، خواهید دید که بار CPU بسیار زیاد است ، شاید به اندازه 30 تا 40 برابر تعداد هسته های CPU در سیستم. علائم دیگر این است که هر دو فضای رم و مبادله تقریباً کاملاً اختصاص یافته است.

پس از واقعیت ، با نگاهی به داده های SAR (گزارش فعالیت سیستم) نیز می تواند این علائم را نشان دهد. من SAR را بر روی هر سیستمی که روی آن کار می کنم نصب می کنم و از آن برای تجزیه و تحلیل پزشکی قانونی پس از ترمیم استفاده می کنم.

مقدار مناسب فضای مبادله چیست؟

سالها پیش ، قانون شست برای میزان فضای مبادله ای که باید روی هارد دیسک اختصاص یابد ، 2 برابر مقدار رم نصب شده در رایانه بود (البته این زمانی بود که رم بیشتر رایانه ها در KB یا MB اندازه گیری شد)وادبنابراین اگر یک رایانه 64 کیلوبایت رم داشته باشد ، یک پارتیشن مبادله 128kb اندازه بهینه خواهد بود. این قانون حقایقی را در نظر گرفت که اندازه RAM در آن زمان به طور معمول بسیار ناچیز بود و تخصیص بیش از 2 برابر رم برای فضای مبادله باعث بهبود عملکرد نمی شود. با بیش از دو برابر رم برای مبادله ، بیشتر سیستم ها بیشتر از انجام کارهای مفید وقت خود را صرف می کردند.

رم به یک کالای ارزان قیمت تبدیل شده است و بیشتر رایانه ها این روزها دارای مقادیر رم هستند که به ده ها گیگابایت گسترش می یابد. بیشتر رایانه های جدید من حداقل 8 گیگابایت رم دارند ، یکی 32 گیگابایتی و ایستگاه کاری اصلی من 64 گیگابایت دارد. رایانه های قدیمی من از 4 تا 8 گیگابایت رم دارند.

هنگام برخورد با رایانه هایی که مقادیر زیادی رم دارند ، ضریب عملکرد محدود کننده فضای مبادله به مراتب کمتر از ضرب 2 برابر است. راهنمای نصب آنلاین Fedora 28 ، که می توانید به صورت آنلاین در راهنمای نصب Fedora پیدا کنید ، تفکر فعلی در مورد تخصیص فضای مبادله را تعریف می کند. من در زیر برخی از بحث ها و جدول توصیه های آن سند را درج کرده ام.

جدول زیر بسته به میزان رم در سیستم شما و اینکه آیا می خواهید حافظه کافی برای خواب زمستانی داشته باشید ، اندازه توصیه شده از یک پارتیشن مبادله را ارائه می دهد. اندازه پارتیشن مبادله توصیه شده به طور خودکار در حین نصب ایجاد می شود. با این وجود ، برای خواب زمستانی ، باید فضای مبادله را در مرحله پارتیشن بندی سفارشی ویرایش کنید.

جدول 1: فضای مبادله سیستم توصیه شده در مستندات فدورا

مقدار رم سیستم

فضای مبادله توصیه شده

مبادله توصیه شده با خواب زمستانی

2 برابر میزان رم

3 برابر میزان رم

برابر با مقدار رم

2 برابر میزان رم

0. 5 برابر مقدار رم

1. 5 برابر مقدار رم

بیش از 64 گیگابایت

خواب زمستانی توصیه نمی شود

در مرز بین هر محدوده ذکر شده در بالا (به عنوان مثال ، سیستمی با 2 گیگابایت ، 8 گیگابایت یا 64 گیگابایت رم سیستم) ، با توجه به فضای مبادله انتخاب شده و پشتیبانی از خواب زمستانی از اختیار استفاده کنید. اگر منابع سیستم شما امکان پذیر است ، افزایش فضای مبادله ممکن است منجر به عملکرد بهتر شود.

البته ، بیشتر مدیران لینوکس ایده های خاص خود را در مورد مقدار مناسب فضای مبادله دارند - و همچنین تقریباً همه چیز. جدول 2 ، در زیر ، حاوی توصیه های من بر اساس تجربیات شخصی من در محیط های مختلف است. این ممکن است برای شما مؤثر نباشد ، اما مانند جدول 1 ، ممکن است به شما در شروع کار کمک کند.

جدول 2: فضای تعویض سیستم توصیه شده برای نویسنده

فضای مبادله توصیه شده

نکته مهم در هر دو جدول این است که با افزایش مقدار رم ، فراتر از یک نقطه خاص که فضای مبادله بیشتری را اضافه می کند ، به سادگی منجر به ریزش می شود قبل از اینکه فضای مبادله حتی به پر شدن نزدیک شود. اگر در حین پیروی از این توصیه ها حافظه مجازی بسیار کمی دارید ، در صورت امکان باید RAM بیشتری را اضافه کنید تا فضای مبادله ای بیشتر. مانند تمام توصیه هایی که بر عملکرد سیستم تأثیر می گذارد ، از آنچه برای محیط خاص شما بهتر است استفاده کنید. این کار و تلاش برای آزمایش و ایجاد تغییرات بر اساس شرایط موجود در محیط لینوکس شما خواهد بود.

اضافه کردن فضای مبادله بیشتر به یک محیط دیسک غیر LVM

با توجه به تغییر نیاز به فضای مبادله در میزبان هایی که قبلاً نصب شده اند ، ممکن است برای تغییر میزان فضای مبادله تعریف شده برای سیستم ضروری باشد. این روش را می توان برای هر مورد کلی که میزان فضای مبادله افزایش یابد استفاده شود. فرض می کند فضای دیسک موجود کافی در دسترس است. این روش همچنین فرض می کند که دیسک ها در پارتیشن های "خام" ext4 و مبادله تقسیم می شوند و از مدیریت حجم منطقی (LVM) استفاده نمی کنند.

مراحل اساسی برای برداشتن ساده است:

فضای مبادله موجود را خاموش کنید.

یک پارتیشن مبادله جدید از اندازه مورد نظر ایجاد کنید.

جدول پارتیشن را دوباره بخوانید.

پارتیشن را به عنوان فضای مبادله پیکربندی کنید.

پارتیشن جدید/ETC/FSTAB را اضافه کنید.

راه اندازی مجدد نباید لازم باشد.

به خاطر ایمنی ، قبل از خاموش کردن مبادله ، حداقل باید اطمینان حاصل کنید که هیچ برنامه کاربردی در حال اجرا نیست و هیچ فضای مبادله ای استفاده نمی شود. دستورات رایگان یا برتر می توانند به شما بگویند که آیا فضای مبادله در حال استفاده است یا خیر. برای ایمن تر بودن ، می توانید به حالت سطح 1 یا تک کاربر برگردید.

پارتیشن مبادله را با فرمان خاموش کنید که تمام فضای مبادله را خاموش می کند:

اکنون پارتیشن های موجود را روی هارد دیسک نمایش دهید.

این میزهای پارتیشن فعلی را در هر درایو نشان می دهد. پارتیشن مبادله فعلی را بر اساس شماره مشخص کنید.

fdisk را در حالت تعاملی با دستور شروع کنید:

در این مرحله ، FDisk تعاملی است و فقط در درایو دیسک مشخص شده کار می کند.

برای تأیید فضای آزاد کافی روی دیسک برای ایجاد پارتیشن مبادله جدید ، از زیر فرمان FDisk P استفاده کنید. فضای موجود در هارد از نظر بلوک های 512 بایت و شروع و پایان شماره سیلندر نشان داده شده است ، بنابراین ممکن است برای تعیین فضای موجود بین و در پایان پارتیشن های اختصاص یافته ، مقداری ریاضی انجام دهید.

برای ایجاد یک پارتیشن مبادله جدید از زیر فرمان N استفاده کنید. FDisk از شما سیلندر شروع را می پرسد. به طور پیش فرض ، کمترین سیلندر موجود را انتخاب می کند. اگر می خواهید آن را تغییر دهید ، تعداد سیلندر شروع را تایپ کنید.

دستور FDISK اکنون به شما امکان می دهد تا اندازه پارتیشن ها را در تعدادی از قالب ها از جمله آخرین شماره سیلندر یا اندازه در بایت ، KB یا MB وارد کنید. در 4000m تایپ کنید ، که حدود 4 گیگابایت فضای روی پارتیشن جدید (به عنوان مثال) می دهد و Enter را فشار دهید.

برای تأیید اینکه پارتیشن همانطور که شما آن را مشخص کرده اید ، از زیر فرمان P استفاده کنید. توجه داشته باشید که پارتیشن احتمالاً دقیقاً همان چیزی نیست که شما مشخص کرده اید مگر اینکه از شماره سیلندر پایان استفاده کنید. دستور fdisk فقط می تواند فضای دیسک را به صورت افزایشی در سیلندرها اختصاص دهد ، بنابراین پارتیشن شما ممکن است کمی کوچکتر یا بزرگتر از آنچه مشخص کرده اید باشد. اگر پارتیشن همان چیزی نیست که شما می خواهید ، می توانید آن را حذف کرده و دوباره ایجاد کنید.

اکنون لازم است مشخص شود که پارتیشن جدید یک پارتیشن مبادله است. زیر فرماندهی T به شما امکان می دهد نوع پارتیشن را مشخص کنید. بنابراین T را وارد کنید ، شماره پارتیشن را مشخص کنید ، و هنگامی که از نوع پارتیشن کد HEX ، نوع 82 ، که نوع پارتیشن تعویض لینوکس است ، درخواست کنید و Enter را فشار دهید.

هنگامی که از پارتیشن ایجاد شده راضی هستید ، از W W W استفاده کنید تا جدول پارتیشن جدید را روی دیسک بنویسید. برنامه FDISK پس از اتمام نوشتن جدول پارتیشن اصلاح شده ، شما را به سمت فرمان باز می گرداند. احتمالاً پیام زیر را دریافت خواهید کرد زیرا FDisk نوشتن جدول پارتیشن جدید را تکمیل می کند:

در این مرحله ، شما از دستور partprobe استفاده می کنید تا هسته را مجبور به خواندن مجدد جدول پارتیشن کنید تا لازم نیست که یک راه اندازی مجدد انجام شود.

اکنون از دستور fdis k-l استفاده کنید تا پارتیشن ها را لیست کنید و پارتیشن مبادله جدید باید از جمله موارد ذکر شده باشد. مطمئن باشید که نوع پارتیشن جدید "تعویض لینوکس" است.

برای اشاره به پارتیشن مبادله جدید ، اصلاح پرونده /etc /fstab لازم است. خط موجود ممکن است به این شکل باشد:

جایی که x شماره پارتیشن است. بسته به موقعیت مکانی پارتیشن مبادله جدید خود ، یک خط جدید اضافه کنید که شبیه این است:

حتما از شماره پارتیشن صحیح استفاده کنید. اکنون می توانید مرحله نهایی را در ایجاد پارتیشن مبادله انجام دهید. از دستور MKSWAP برای تعریف پارتیشن به عنوان یک پارتیشن مبادله استفاده کنید.

مرحله آخر این است که با استفاده از دستور مبادله کنید:

پارتیشن مبادله جدید شما هم اکنون به همراه پارتیشن SWAP موجود قبلی آنلاین است. برای تأیید این موضوع می توانید از دستورات رایگان یا برتر استفاده کنید.

افزودن مبادله به محیط دیسک LVM

اگر تنظیم دیسک شما از LVM استفاده کند ، تغییر فضای مبادله نسبتاً آسان خواهد بود. باز هم ، این فرض می کند که فضا در گروه حجم که حجم تعویض فعلی در آن قرار دارد موجود است. به طور پیش فرض ، روش های نصب برای Fedora Linux در یک محیط LVM پارتیشن مبادله را به عنوان یک حجم منطقی ایجاد می کند. این کار را آسان می کند زیرا می توانید به سادگی اندازه حجم مبادله را افزایش دهید.

در اینجا مراحل لازم برای افزایش میزان فضای مبادله در یک محیط LVM آورده شده است:

همه مبادله را خاموش کنید.

اندازه حجم منطقی تعیین شده برای مبادله را افزایش دهید.

حجم تغییر یافته را به عنوان فضای مبادله پیکربندی کنید.

ابتدا تأیید کنید که مبادله وجود دارد و یک حجم منطقی با استفاده از دستور LVS (لیست منطقی لیست) است.

می بینید که اندازه تعویض فعلی 8 گیگابایت است. در این حالت ، ما می خواهیم 2 گیگابایت را به این حجم مبادله اضافه کنیم. ابتدا مبادله موجود را متوقف کنید. در صورت استفاده از فضای مبادله ، ممکن است مجبور شوید برنامه های در حال اجرا را خاتمه دهید.

اکنون اندازه حجم منطقی را افزایش دهید.

دستور MKSWAP را اجرا کنید تا کل این پارتیشن 10 گیگابایتی را در فضای مبادله قرار دهید.

مبادله را دوباره روشن کنید.

اکنون تأیید کنید که فضای مبادله جدید با دستور دستگاه Block Block وجود دارد. باز هم ، راه اندازی مجدد لازم نیست.

همچنین می توانید از دستور Swapo n-s یا بالا ، رایگان یا هر یک از چندین دستور دیگر برای تأیید این موضوع استفاده کنید.

توجه داشته باشید که دستورات مختلف به عنوان ورودی فایل ویژه دستگاه به اشکال مختلف نمایش داده می شوند. چندین روش وجود دارد که از طریق آن به دستگاه های خاص در فهرست /dev دسترسی پیدا می کنند. مقاله من ، مدیریت دستگاه ها در لینوکس ، شامل اطلاعات بیشتر در مورد دایرکتوری /dev و محتوای آن است.

این مقاله در ابتدا در سپتامبر 2018 منتشر شد و با اطلاعات اضافی توسط ویرایشگر به روز شده است.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.