نوین هاست
سرور مجازی
CSS MenuMaker

مرکز آموزش

swap چیست و اموزش ساخت ان در centos

حافظه Swap چیست و چگونه آن را در CentOS اضافه کنیم؟

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

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

سیستم عامل چگونه از فضای swap استفاده می کند؟

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

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

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

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



چگونه حافظه Swap را به CentOS اضافه کنیم؟

در SSH سرور خود دستور زیر را وارد کنید:

به وسیله این دستور میتوانید ببینید که از قبل حافظه Swap وجود دارد در سرورتان یا خیر.در صورتی که نتیجه ای مشاهده نشد بمعنی نبودن فایل swap است.

swapon -s

اکنون با دستور زیر میتوانید فایل Swap را در سرور خود ایجاد کنید:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

توجه: “of=/swapfile” نام فایل swpa است و میتواند هرنام دلخواه دیگری باشد.

سپس:

sudo mkswap /swapfile

نمونه خروجی:

Setting up swapspace version 1, size = 536866 kB

و در نهایت فعال کردن Swap:

sudo swapon /swapfile

اکنون دوباره با دستور زیر میتوانید اطلاعات Swap ساخته شده را مشاهده کنید:

swapon -s

نمونه خروجی:

swapon -s
Filename Type Size Used Priority
/swapfile file 524280 0 -1

برای دائمی کردن فایل Swap باید فایل fstab را به صورت زیر ویرایش کنیم:

sudo nano /etc/fstab

و خط زیر را به ان اضافه و ذخیره کنید:

/swapfile swap swap defaults 0 0

توجه: بجای swapfile نامی که برای swap انتخاب کرده بودید را جایگزین کنید.

اکنون با دو دستور زیر دسترسی های فایل swap را تغییر دهید:

chown root:root /swapfile
chmod 0600 /swapfile

تنظیم Swappiness:

با تنظیم Swappiness به کرنل سیستم میگوییم که در چه مواقعی از Swap ساخته شده استفاده کند که با عددی مابین ۰ و ۱۰۰ تنظیم میشود. – که بهطور پیشفرض ۶۰ میباشد – .

وقتی شما Swappiness را روی ۱۰۰ تنظیم میکنید به این معنی است که سیستم عامل معمولا(۹۰% مواقع یا بیشتر) از حافظه Swap استفاده کند.

همچنین زمانی که آن را روی ۰ تنظیم میکنید به این معنی است که سیستم عامل تنها در مواقع ضروری و موردنیاز از حافظه Swap استفاده کند.



برای مشاهده مقدار Swappiness سیستم عامل خود دستور زیر را وارد کنید (که پیشفرض مقدار ۶۰ میباشد.):

cat /proc/sys/vm/swappiness

به منظور تغییر این مقدار دستور زیر را وارد کنید:

sysctl vm.swappiness=XX

توجه: بجای XX مقدار مورد نظر را برای Swappiness وارد کنید.

حال در صورتی که دوباره دستور زیر را وارد کنید , مشاهده میکنید که به مقدار مورد نظر تغییر کرده است:

cat /proc/sys/vm/swappiness

حال برای اینکه Swappiness تنظیم شده در هنگام ReBoot نیز همین مقدار باشد میابیست فایل sysctl.conf را به صورت زیر ویرایش کنیم:

sudo nano /etc/sysctl.conf

# Search for the vm.swappiness setting. Uncomment and change it as necessary.
vm.swappiness=XX

توجه: بجای XX مقدار مورد نظر را برای Swappiness وارد کنید.

 

نوین هاست

 

 

 

 

 

 

 



آیا این پاسخ به شما کمک کرد?

افزودن به مورد علاقه ها افزودن به مورد علاقه ها

پرینت این مقاله پرینت این مقاله

خوانده شده
سرور مجازی ارزان (مشاهدات: 791)
لینوکس CENTOS 7 (مشاهدات: 1813)

زبان:

منوی سریع

ورود کاربر

ایمیل

کلمه عبور

مرا به خاطر بسپار

جستجو



سرور اختصاصی

سرور مجازی

سرور ابری

خدمات

پیوندهای مفید

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