جستجو برای:
سبد خرید 0
  • خانه
  • دوره ها
  • معرفی ابزارهای لینوکس
  • مقالات
  • تماس با ما

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • 09159612321
  • info@linuxlearn.org
  • درباره ما
0
آموزش لینوکس 🐧 آموزش دوآپس 🐋
  • خانه
  • دوره ها
  • معرفی ابزارهای لینوکس
  • مقالات
  • تماس با ما
شروع کنید

وبلاگ

آموزش لینوکس 🐧 آموزش دوآپس 🐋مقالاتمقالاتحافظه swap چیست و چگونه ایجاد میشود؟

حافظه swap چیست و چگونه ایجاد میشود؟

28 تیر 1398
ارسال شده توسط عارف اختری
مقالات

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

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

برای حل این مشکل دو راه وجود دارد:

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

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

حافظه swap چیست؟

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

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

اندازه فضای swap چقدر باید باشد؟

سوال اصلی این است که چه مقدار برای فضای swap اختصاص دهیم؟ سیستم عامل های مبتنی بر یونیکس قدیمی تر(مثل Sun OS یا Ultrix) فضای swap دو یا سه برابر حافظه اصلی نیاز داشتند. اما سیستم عامل های جدیدتر (مثل لینوکس) به این مقدار فضای swap نیاز ندارند، هرچند اگر شما برای سیستم تنظیم کنید، سیستم می تواند از این مقدار نیز استفاده کنند. برای تعیین مقدار دقیق فضای swap سه اصل وجود دارد:

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

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

– برای کامپیوترهای قدیمی تر با حافظه اصلی 128 مگابایت یا کمتر حداکثر مقدار فضای swap را که می توانید کنار بگذارید، حتی تا 1 گیگابایت.

نحوه ایجاد حافظه swap

معقول نیست که سیستم شما بیش از یک فضای swap داشته باشد. برای بررسی اینکه آیا سیستم شما این فضا را دارد می توانید  از دستور زیر را استفاده کنید:

$ sudo swapon -s
or
$ sudo swapon –show

 

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

خروجی ذستور sudo swapon -s
خروجی ذستور sudo swapon -s

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

در این مثال،  من یک فضای  swap  به حجم یک گیگ را ایجاد و فعال  میکنم . شما می تونین بزرگتر ایجاد کنین فقط لازمه که مقداری که مدنظر دارین رو با 1G جایگزین کنید.

$ sudo fallocate -l 1G /swapfile

اگر این دستور به شما خروجی ارور داد که مثلا fallocate نصب نیست یا fallocate failed: Operation not supported  میتوانید به جای این دستور از ابزار dd استفاده کنید.

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

$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

فقط یوزر روت حق دسترسی به این فایل را باید داشته باشد لذا حق دسترسی این فایل را اصلاح می کنیم

$ sudo chmod 600 /swapfile

از ابزار mkswap برای ساخت یک فضای swap از یک فایل در  لینوکس استفاده می کنیم:

$ sudo mkswap /swapfile

برای فعال کردن فضای swap از دستور زیر استفاده کنید

$ sudo swapon /swapfile

برای دایمی شدن تغییرات خط زیر را وارد فایل etc/fstab/ می کنیم

$ sudo nano  /etc/fstab 

/swapfile swap swap defaults 0 0

برای چک کردن می توانید از یکی از دستورات زیر استفاده کنید

$ sudo swapon -s

$ sudo swapon -s 

$ free

$ vmstat

تنظیم مقدار swappiness

Swappiness یک ویژگی هسته لینوکس است که مشخص می کند که چقدر سیستم از فضای swap استفاده  کند.

Swappiness می تواند یک مقدار بین 0 تا 100 داشته باشد. مقدار کم باعث می شود که کرنل کمتر از این فضا استفاده کند و بیشتر به رم متکی باشد، در حالی که یک مقدار بالاتر باعث می شود که کرنل فضای swap را به شدت مورد استفاده قرار دهد.

مقدار swappiness به طور پیش فرض 60 است. شما می توانید مقدار swappiness فعلی را با استفاده از دستور cat چک کنید:

$ cat /proc/sys/vm/swappiness

برای تغییر این مقدار به طور دایم می توانید خط زیر را در انتهای فایل etc/sysctl.conf/ وارد کنید

$ sudo nano  /etc/sysctl.conf

vm.swappiness=10

امیدوارم مفید بوده باشه

یا حق

برچسب ها: mkswapswapswap چیستswap چیست؟swaponswappinessاندازه فضای swapاندازه فضای swap چقدر باید باشد؟پارتیشن swapپارتیشن سوآپتنظیم مقدار swappinessحافظه swap چیستحافظه swap چیست و چگونه ایجاد میشود؟حافظه swap چیست؟فضای swapمقدار swappinessنحوه ایجاد swapنحوه ایجاد حافظه swap
بعدی مجموعه ای از اسکریپت های مفید BASH
قبلی بررسی فایروال Iptables بهمراه یکسری نکات و دستورات

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پشتیبانی
دسته‌ها
  • مقالات
برچسب‌ها
debian fedora freebsd glusterfs in linux kali learnlinux learn linux Linux linux academy linux and unix linux Desktop linux enthusiastic linuxlearn linux learn linuxlearnorg linuxorg linux passion linux server linuxtutor linuxtutorial linuxuser plasma tutorial tutorial video zabbix آشنایی با توزیع های لینوکس آغاز کار با لینوکس آموزش تخصصی لینوکس آموزش سرور لینوکس آموزش لینوکس آنتی ویروس اموزش لینوکس اوبونتو بات نت بهترین توزیع لینوکس توزیع های لینوکس دبیان سرور لینوکس سودو فدورا لینوکس لینوکس لرن لینوکس چیست نرم افزار
  • محبوب
  • جدید
  • دیدگاه ها
پشتیبانی
بایگانی
  • فروردین ۱۴۰۰
  • اسفند ۱۳۹۹
  • دی ۱۳۹۹
  • آذر ۱۳۹۹
  • آبان ۱۳۹۹
  • مهر ۱۳۹۹
  • شهریور ۱۳۹۹
  • مرداد ۱۳۹۹
  • اردیبهشت ۱۳۹۹
  • دی ۱۳۹۸
  • آذر ۱۳۹۸
  • مهر ۱۳۹۸
  • شهریور ۱۳۹۸
  • مرداد ۱۳۹۸
  • تیر ۱۳۹۸
  • خرداد ۱۳۹۸
  • اسفند ۱۳۹۷
  • بهمن ۱۳۹۷
  • دی ۱۳۹۷
  • آذر ۱۳۹۷

لینوکس لرن حاصل تلاش یک تیم متخصص و علاقه مند است که سعی می کند آموزش ها را با نهایت کیفیت به مشتریان ارائه نماید. ارائه خدمات پیشتاز امضاء بزرگی بر شعار لینوکس لرن یعنی ” تحولی بزرگ در ارائه خدمات لینوکس ” می باشد.

  • ایران - مشهد
  • 09159612321
  • info@linuxlearn.org
دسترسی سریع
  • خانه
  • مقالات
  • معرفی ابزارهای لینوکس
  • دوره ها
  • مدرسان
  • کتابخانه لینوکس لرن
  • سیاست حریم خصوصی
  • تماس با ما
  • درباره ما
خبرنامه

    لوگوی اعتماد
    Designed By Behnam 09158634525
    اشتراک گذاری در شبکه های اجتماعی
    ارسال به ایمیل
    https://linuxlearn.org/?p=20280
    علاقمندی ها 0
    صفحه علاقمندی های من ادامه خرید
    • دسته بندی دوره ها
    • دوره های من
    • جستجو

    دسته بندی دوره ها

    دوره های آکادمیک

    [1 دوره]

    دوره های ابری

    [1 دوره]

    دوره های رایگان

    [20 دوره]

    دوره های کاربردی

    [19 دوره]

    صفر تا صد لینوکس

    [7 دوره]

    کتاب های الکترونیکی

    [11 دوره]

    دوره های من

    جستجو

    مرورگر شما از HTML5 پشتیبانی نمی کند.