شناختن مبادله

  • 2021-08-6

در این صفحه مقدمه ای برای مبادله فضای و صفحه بندی در GNU/Linux ارائه شده است. این شامل ایجاد و فعال سازی پارتیشن های مبادله و پرونده های مبادله است.

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

پشتیبانی از مبادله توسط هسته لینوکس و برنامه های کاربری-فضای کاربر از بسته UTIL-LINUX ارائه می شود.

فهرست

مبادله

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

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

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

دقت واقعی این مقاله یا بخش مورد اختلاف است.

دلیل: Linus Torvalds می گوید که پارتیشن های مبادله ای ارجح هستند: "همه توزیع های عادی موارد را با پارتیشن های مبادله ای تنظیم می کنند ، نه پرونده ها ، زیرا صادقانه ، Swapfiles تمایل به کندتر دارند و دارای پیچیدگی های مختلف دیگری هستند."(بحث در بحث: مبادله)

برای بررسی وضعیت مبادله ، استفاده کنید:

یا برای نشان دادن حافظه فیزیکی و همچنین استفاده از مبادله:

پارتیشن مبادله

یک پارتیشن مبادله را می توان با اکثر ابزارهای پارتیشن بندی GNU/Linux ایجاد کرد. پارتیشن های مبادله به عنوان نوع 82 در MBR و 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F در GPT تعیین شده اند.

برای تنظیم یک پارتیشن به عنوان منطقه مبادله لینوکس ، از دستور MKSWAP (8) استفاده می شود. مثلا:

برای فعال کردن دستگاه برای صفحه بندی:

برای فعال کردن این پارتیشن مبادله در بوت ، ورودی را به /etc /fstab اضافه کنید:

جایی که دستگاه_وید UUID فضای مبادله است.

برای نحو پرونده به FSTAB مراجعه کنید.

توجه: اگر پارتیشن مبادله روی دستگاهی با استفاده از GPT قرار داشته باشد ، FSTAB-Entry اختیاری است.#فعال سازی توسط SystemD را ببینید.

هشدار: فعال کردن حذف در تنظیمات RAID با استفاده از MDADM باعث قفل سیستم در بوت و در طول زمان اجرا می شود ، در صورت استفاده از Swapon.

فعال سازی توسط SystemD

SystemD پارتیشن های مبادله را بر اساس دو مکانیسم مختلف فعال می کند. هر دو اجرایی در/usr/lib/systemd/ژنراتور سیستم هستند. ژنراتورها در راه اندازی اجرا می شوند و واحدهای بومی SystemD را برای Mounts ایجاد می کنند. اولین ، SystemD-FSTAB-Generator ، FSTAB را برای تولید واحدها از جمله واحدی برای مبادله می خواند. دوم ، SystemD-GPT-Auto-Generator دیسک ریشه را برای تولید واحدها بازرسی می کند. این کار فقط روی دیسک های GPT کار می کند ، و می تواند پارتیشن های مبادله ای را بر اساس نوع راهنمای آنها شناسایی کند ، برای اطلاعات بیشتر به سیستم#GPT Partition Automounting مراجعه کنید.

تعویض غیرفعال

برای غیرفعال کردن فضای تعویض خاص:

از طرف دیگر از سوئی چ-a برای غیرفعال کردن تمام فضای مبادله استفاده کنید.

از آنجا که SWAP توسط SystemD اداره می شود ، دوباره در راه اندازی سیستم بعدی فعال می شود. برای غیرفعال کردن فعال سازی خودکار فضای مبادله تشخیص داده شده به طور دائم ، SystemCt l-نوع را برای یافتن واحد مسئول . swap و ماسک آن را اجرا کنید.

پرونده مبادله

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

به صورت دستی

مبادله ایجاد پرونده

توجه: BTRFS از پرونده های Linux نسخه 5. 0 از پرونده مبادله ای با محدودیت پشتیبانی می کند ، برای این سیستم فایل روش شرح داده شده در پرونده SWAP BTRFS#را دنبال کنید تا پرونده مبادله را تنظیم کنید.

از DD برای ایجاد یک فایل مبادله به اندازه انتخاب خود استفاده کنید. به عنوان مثال ، ایجاد یک پرونده مبادله 512 MIB:

توجه: استفاده از DD برای اختصاص یک فایل مبادله قابل حمل ترین راه حل است ، برای جزئیات بیشتر به پرونده های Swapon (8) مراجعه کنید.

مجوزهای مناسب را تنظیم کنید (یک پرونده مبادله قابل خواندن در جهان یک آسیب پذیری محلی است):

پس از ایجاد پرونده با اندازه صحیح ، آن را برای مبادله قالب بندی کنید:

پرونده مبادله را فعال کنید:

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

برای اطلاعات بیشتر ، به استفاده از FSTAB#استفاده کنید.

  • پرونده مبادله باید با موقعیت مکانی آن در سیستم فایل مشخص شود ، نه توسط UUID یا برچسب آن.
  • هنگام استفاده از BTRFS ، فراموش نکنید که Subvolume ایجاد شده را نیز به لیست اضافه کنید ، و گزینه های حذف ، AutodeFrag را از هر کدام از زیر مجموعه ها نصب کنید (که این تنظیمات را برای کل FS کنترل می کند) حذف کنید.
  • فشرده سازی نیز باید غیرفعال شود اما ویژگی NO_COW (که قبلاً با Chattr +C تنظیم شده بود) از آن مراقبت می کند.

پرونده مبادله را حذف کنید

برای حذف یک فایل مبادله ، ابتدا باید خاموش شود و سپس قابل حذف است:

در آخر ، ورودی مربوطه را از /etc /fstab حذف کنید.

خودکار

دارای سیستم تغییر شکل

توجه: نویسنده اکنون به دلیل کمبود تعهد کم و ZRAM که نیازهای اکثر کاربران را تأمین می کند ، از ZRAM-Generator استفاده می کند.

SystemD-SWAP یک اسکریپت برای ایجاد فضای مبادله ترکیبی از مبادلات ZRAM ، فایلهای مبادله و پارتیشن های مبادله است. وابسته به پروژه SystemD نیست.

بسته SystemD-SWAP را نصب کنید. Undipment و SWAPFC_ENABLED = 1 در بخش SWAP File chunked از /etc/systemd/swap. conf. شروع/فعال کردن سرویس SystemD-SWAP.

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

  • اگر ژورنال سیستم هشدار دهنده زیر را نشان می دهد [..]: WARN: SWAPFC: ENOSPC و هیچ فایل مبادله ای ایجاد نمی شود ، شما نیاز به نابودی و تنظیم SWAPFC_FORCE_PREALLOCATED = 1 در /etc/systemd/swap. conf دارید.
  • فایل مبادله ای که توسط SystemD-SWAP ایجاد شده است به راحتی برای خواب زمستانی قابل استفاده نیست. به شماره SystemD-SWAP شماره 85 مراجعه کنید.

رمزگذاری مبادله

کارایی

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

مقادیر مبادله را می توان برای کمک به عملکرد تنظیم کرد:

تعویض

برای بررسی مقدار تغییر فعلی:

از طرف دیگر ، File /Sys/fs/cgroup/memory/memory. swappiness (cGroup v1-specific) یا/proc/sys/vm/swappiness را می توان برای به دست آوردن مقدار عدد صحیح خام خوانده شد.

برای تنظیم موقت مقدار تعویض:

برای تنظیم دائمی مقدار تعویض ، یک پرونده پیکربندی sysctl. d (5) ایجاد کنید. مثلا:

برای اینکه لودر بوت را هنگام بارگیری هسته تنظیم کنید ، یک پارامتر هسته اضافه کنید ، به عنوان مثال. sysctl. vm. swappiness = 10.

برای آزمایش و بیشتر در مورد این که چرا این ممکن است کار کند ، به این مقاله نگاهی بیندازید.

فشار حافظه پنهان VFS

یکی دیگر از پارامترهای SYSCTL که بر عملکرد مبادله تأثیر می گذارد VM. VFS_CACHE_PRESSURE است که تمایل هسته را برای بازپس گیری حافظه که برای ذخیره سازی حافظه پنهان VFS ، در مقابل صفحه و تعویض استفاده می شود ، کنترل می کند. افزایش این مقدار نرخ بازپس گیری VFS را افزایش می دهد [1]. برای اطلاعات بیشتر ، به مستندات هسته لینوکس مراجعه کنید.

اولویت

اگر بیش از یک پرونده مبادله یا پارتیشن مبادله دارید ، باید برای هر منطقه مبادله مقدار اولویت (0 تا 32767) را اختصاص دهید. این سیستم قبل از استفاده از مناطق مبادله ای با اولویت پایین ، از مناطق مبادله ای با اولویت بالاتر استفاده می کند. به عنوان مثال ، اگر یک دیسک سریعتر ( /dev /sda) و یک دیسک کندتر ( /dev /sdb) دارید ، اولویت بالاتری را به منطقه مبادله واقع در سریعترین دستگاه اختصاص دهید. اولویت ها را می توان در FSTAB از طریق پارامتر PRI اختصاص داد:

یا از طریق پارامتر --Priority Swapon:

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

با استفاده از ZSWAP یا ZRAM

ZSWAP یک ویژگی هسته لینوکس است که یک حافظه نهان نوشتن فشرده شده برای صفحات مبادله ای را ارائه می دهد ، ZRAM یک بلوک مبادله فشرده شده مجازی را در حافظه ایجاد می کند به عنوان جایگزین برای یک پارتیشن/پرونده مبادله روی دیسک. هر دو رویکرد باعث افزایش عملکرد مبادله و کاهش عملکرد I/O دیسک می شوند.

راه راه

به دلایل عملکرد مبادله نیازی به استفاده از RAID وجود ندارد. اگر فقط در پرونده /etc /fstab به آنها می دهید ، خود هسته می تواند در چندین دستگاه مبادله کند. برای جزئیات بیشتر به نرم افزار-RAID Howto مراجعه کنید.

ثبت دیدگاه

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