محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

حافظه SWAP چیست؟ معرفی کاربرد SWAP Partition لینوکس به زبان ساده

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

چیزی که در لینوکس ما به عنوان SWAP Partition می شناسیم در سیستم عامل ویندوز به عنوان Page File یا Virtual Memory معروف است. قبلا در خصوص اینکه Virtual Memory در ویندوز چیست و چگونه ایجاد می شود در انجمن تخصصی فناوری اطلاعات ایران توضیحاتی داده ایم اما در واقع این ویندوز است که از لینوکس ساختار SWAP را الگو برداری کرده است و در سیستم عامل خود به نام Virtual Memory معرفی می کند .

بنابراین همان کاری که در ویندوز Virtual Memory انجام می دهد ، SWAP Partition در لینوکس انجام می دهد. اما امروز بحث ما لینوکس است و می خواهیم بدانیم که در سیستم عامل لینوکس کاربرد SWAP Partition چیست و چرا ما به SWAP Partition نیاز داریم و در نهایت چقدر می تواند ظرفیت این پارتیشن باشد ؟ اگر به درستی بتوانید به این سئوالات پاسخ بدهید می توانید کارایی سیستم عامل خود را تا حدود زیادی افزایش دهید.

پارتیشن SWAP چیست

جلوگیری از Overflow شدن حافظه RAM سیستم عامل

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

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

اما حافظه SWAP Partition بر روی هارد دیسک سیستم قرار می گیرد که سرعت هارد دیسک و RAM اصلا قابل مقایسه نیست. هر چند امروزه استفاده از هارد درایو های SSD با سرعت های بسیار زیاد باعث شده است کارایی SWAP Partition نیز تا حدودی افزایش پیدا کند اما به هر حال هیچوقت نمی تواند جایگزین RAM اصلی و سخت افزاری سیستم شود. توجه کنید که با اینکه ما حافظه SWAP را در لینوکس یا Page File های ویندوز مقایسه کردیم اما از لحاظ فنی این دو با هم تفاوتی های زیادی دارند.

اولویت بندی یا Prioritization

SWAP Partition به شما این امکان را می دهد که برخی از آیتم ها را از درون حافظه RAM خود به درون حافظه هارد دیسک خود منتقل کنید تا فضای لازم برای اجرا کردن سایر برنامه های ضروری تر در حافظه RAM باز شود. در واقع آیتم هایی که کمتر توسط CPU مورد دسترسی قرار می گیرند را می توانیم به داخل SWAP Partition منتقل کنیم. زمانیکه صحبت از استفاده کم یا به ندرت از یک آیتم می شود این استفاده به ندرت به فاکتوری به نام swappiness بر می گردد که این فاکتور در SWAP Partition کاملا قابل پیکربندی است.

زمانیکه عدد swappiness برای یک آیتم بالا باشد به معنی این است که آیتم مورد نظر بیشتر مستعد است که در فضای SWAP قرار بگیرد. اگر عدد مربوط به swappiness کم باشد آیتم مورد نظر کمتر احتمال دارد که در فضای SWAP قرار بگیرد. قابلیت swappiness در واقع یک پارامتر کرنل لینوکس است که فرآیند swap کردن برنامه ها بین سیستم و حافظه RAM را مدیریت می کند ، در واقع ارسال و دریافت فایل ها از و به حافظه Cache سیستم نیز بر عهده این قابلیت است.

قابلیت Swappiness می تواند دارای مقدار عددی بین 0 تا 100 باشد . هر چقدر این عدد پایین تر باشد احتمال اینکه swap نشود بیشتر است و هر چقدر این عدد بیشتر باشد احتمال swap شدن آن بالاتر می رود. مقدار پیشفرض برای آیتم های سیستم عامل عدد 60 است و برای بسیاری از سیستم عامل های دسکتاپ در صورتیکه این عدد به 100 تغییر پیدا کند به شدت کارایی سیستم را تحت تاثیر قرار می دهد.

استفاده از قابلیت Hibernate در سیستم عامل لینوکس

یکی از مهمترین و آخرین کاربردهایی که حافظه یا پارتیشن SWAP دارد امکان انتقال فایل های ما از داخل حافظه RAM به داخل هارد دیسک است ، این قابلیت که ما آن را به عنوان Hibernate چه در سیستم عامل لینوکس و چه در سیستم عامل ویندوز می شناسیم این امکان را می دهد که بعد از اینکه اطلاعات از داخل حافظه RAM به داخل SWAP Partition منتقل شدند بلافاصله همه اطلاعات بعد از روشن شدن مجدد سیستم عامل به داخل RAM بازگردانی و سیستم عامل به حالت قبلی خود برگردد. بدون وجود SWAP Partition در لینوکس امکان Hibernate کردن این سیستم عامل وجود ندارد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

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

نظرات