آذرسیس

آموزش اضافه کردن Swap در CentOS 7
5/5 - (1 امتیاز)

در این آموزش نحوه اضافه کردن Swap در CentOS 7 را بررسی خواهیم کرد. یکی از ساده‌ترین راه‌ها برای پاسخ‌دهی بیشتر سرور و محافظت در برابر خطاهای خارج از حافظه در برنامه، اضافه کردن فضای swap می باشد. Swap ناحیه ای در درایو ذخیره سازی است که سیستم عامل می تواند به طور موقت داده هایی را که دیگر نمی تواند در حافظه نگه دارد ذخیره کند. همچنین، به شما این امکان را می دهد که با رعایت برخی نکات، مقدار اطلاعاتی را که سرور شما می تواند در حافظه کاری خود نگه دارد، افزایش دهید.

آذرسیس ارائه دهنده سرور مجازی ، سرور اختصاصی و انواع سرور مجازی لینوکس و سرور مجازی ویندوز با بهترین کیفیت و قیمت مناسب.

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

نکته: اگرچه تعویض به طور کلی برای سیستم‌هایی که از هارد دیسک‌های traditional spinning استفاده می‌کنند توصیه می‌شود. تعویض با SSD می‌تواند در طول زمان مشکلاتی را در مورد تخریب سخت‌افزار ایجاد کند.

نحوه اضافه کردن Swap در CentOS 

برای این کار شما به یک سرور CentOS 7 نیاز دارید که به یک کاربر non-root با امتیازات sudo دسترسی داشته باشد. هنگامی که کاربر non-root را در اختیار داشته باشید، می توانید از آن برای SSH در سرور CentOS استفاده کنید و به نصب فایل swap ادامه دهید.

نحوه اضافه کردن Swap در CentOS 

بررسی سیستم برای تبادل اطلاعات

قبل از شروع باید نگاهی به فضای ذخیره سازی سرور خود بیندازید تا ببینید آیا از قبل فضای مبادله ای در دسترس دارید یا خیر. در حالی که می توانید چندین فایل swap یا پارتیشن های مبادله داشته باشید، به طور کلی یک مورد کافی می باشد.

همچنین می‌توانید با استفاده از swapon، یک ابزار تبادل همه‌منظوره، پی ببرید که آیا سیستم دارای تعویض پیکربندی شده است یا خیر. پرچم swapon -s خلاصه ای از استفاده و در دسترس بودن مبادله در دستگاه ذخیره سازی را نمایش می دهد:

swapon -s

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

free –m
             total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
Swap:            0          0       4095

همانطور که می بینید، کل فضای مبادله ما در سیستم 0 است. این با موردی که به وسیله swapon مشاهده کردیم مطابقت دارد.

بررسی فضای ذخیره سازی موجود

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

بررسی فضای ذخیره سازی موجود

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

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        59G  1.5G   55G   3% /
devtmpfs        2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           2.0G  8.3M  2.0G   1% /run
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup

نکته: h- به سادگی به dh می‌گوید که اطلاعات درایو را در قالب خواندنی مناسب ارسال کند. به عنوان مثال، به جای خروجی تعداد خام بلوک های حافظه در یک پارتیشن، df -h میزان استفاده و در دسترس بودن فضا را در M (مگابایت) یا G (گیگابایت) به ما می گوید.

همانطور که در خط اول می بینید، پارتیشن ذخیره سازی ما 59 گیگابایت در دسترس است، بنابراین فضای کمی برای کار داریم. به خاطر داشته باشید که این در یک نمونه VPS جدید و متوسط است، بنابراین استفاده واقعی شما ممکن است بسیار متفاوت باشد.

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

ایجاد فایل Swap

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

بهترین راه برای انجام این کار استفاده از ابزار dd است. این دستور یک فایل 4 گیگابایتی ایجاد می کند:

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1MiB

پس از وارد کردن رمز عبور برای مجوز دادن به امتیازات sudo، فایل swap ایجاد می شود. ممکن است چند لحظه طول بکشد، سپس درخواست به شما بازگردانده می شود. با استفاده از ls می‌توانید تأیید کنید که فضای صحیحی برای مبادله رزرو شده است:

ls -lh /swapfile
-rw-r--r-- 1 root root 4.0G Oct 30 11:00 /swapfile

همانطور که می بینید، فایل swap با مقدار مناسب فضای کنار گذاشته شده ایجاد شده است.

فعال کردن فایل Swap

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

قبل از انجام این کار، باید مجوزهای موجود در فایل swap را طوری تنظیم کنید که غیر از اکانت root برای کسی قابل خواندن نباشد. اجازه دادن به سایر کاربران برای خواندن یا نوشتن در این فایل یک خطر امنیتی بزرگ است. می توانید مجوزها را با chmod قفل کنید:

sudo chmod 600 /swapfile

با این کار مجوز خواندن و نوشتن فقط به حساب اصلی محدود می شود. با استفاده مجدد از ls -lh می‌توانید تأیید کنید که فایل swap دارای مجوزهای صحیح است:

ls -lh /swapfile
-rw------- 1 root root 4.0G Oct 30 11:00 /swapfile

اکنون که فایل swap امن تر است، می توانید برای سیستم مشخص کنید که فضای swap را برای استفاده با تایپ کردن دستور زیر راه اندازی کند:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=b99230bb-21af-47bc-8c37-de41129c39bf

این خروجی تایید می کند که یک فایل swap جدید دارید و می توانید دوباره از ابزار رایگان برای تأیید یافته های خود استفاده کنید:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        315       3637          8         11        107
-/+ buffers/cache:        196       3756
Swap:         4095          0       4095

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

دائمی کردن فایل Swap

فایل swap در حال حاضر فعال است، اما با راه اندازی مجدد، سرور به طور خودکار فایل را برای استفاده فعال نمی کند. می‌توانید با تغییر فایل fstab آن را تغییر دهید. fstab جدولی است که سیستم‌های فایل و پارتیشن‌ها را مدیریت می‌کند. فایل را با امتیازات sudo در ویرایشگر متن ویرایش کنید:

sudo nano /etc/fstab

در پایین فایل، باید خطی اضافه کنید که به سیستم عامل می‌گوید به طور خودکار از فایل swap که ایجاد کرده‌اید استفاده کند:

/swapfile   swap    swap    sw  0   0

پس از اتمام افزودن دستور، می توانید فایل را ذخیره کرده و ببندید. سرور در  bootup این فایل را بررسی می کند، بنابراین فایل swap از این پس برای استفاده آماده خواهد بود.

تغییر تنظیمات swap (گزینه اختیاری)

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

تبادل

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

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

مقادیری که نزدیک به 100 هستند، سعی می‌کنند تا داده‌های بیشتری را در مبادله قرار دهند تا حافظه بیشتری را آزاد نگه دارند. بسته به مشخصات حافظه برنامه های شما، یا اینکه به چه دلیل از سرور خود استفاده می کنید، این امر ممکن است در برخی موارد انتخاب بهتری باشد. با خواندن فایل پیکربندی swappiness می‌توانید مقدار swappiness فعلی را ببینید:

cat /proc/sys/vm/swappiness
30

CentOS 7 به طور پیش‌فرض روی تنظیمات swappiness 30 تنظیم شده است که برای اکثر دسکتاپ‌ها و سرورهای محلی مناسب است. برای یک سیستم VPS، احتمالاً می خواهیم آن را به 0 نزدیک کنیم.

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

sudo sysctl vm.swappiness=10
vm.swappiness = 10

این تنظیم تا راه اندازی مجدد بعدی ادامه خواهد داشت. برای تداوم تنظیمات بین راه اندازی مجدد، می توانید خط خروجی را به فایل پیکربندی sysctl اضافه کنید:

sudo nano /etc/sysctl.conf

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

vm.swappiness = 10

پس از اتمام افزودن دستور، می توانید فایل را ذخیره کرده و ببندید. سرور اکنون به طور خودکار swappiness را روی مقداری که در هر bootup اعلام کرده اید تنظیم می کند.

Cache Pressure

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

cat /proc/sys/vm/vfs_cache_pressure
100

همانطور که در حال حاضر پیکربندی شده است، سیستم ما اطلاعات inode را خیلی سریع از حافظه پنهان حذف می کند. با استفاده از sysctl می‌توانید آن را روی یک تنظیم محافظه‌کارانه‌تر، مانند 50 تنظیم کنید:

sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50

این راهنما فقط برای آموزش فعلی در این مقاله معتبر است. می‌توانید آن را با اضافه کردن به فایل پیکربندی خود تغییر دهید، مانند تنظیمات swappiness:

sudo nano /etc/sysctl.conf

در پایین، خطی را اضافه کنید که مقدار جدید شما را مشخص می کند:

vm.vfs_cache_pressure = 50

پس از اتمام افزودن خط، می توانید فایل را ذخیره کرده و ببندید. سرور اکنون به طور خودکار فشار کش را روی مقداری که در هر bootup اعلام کرده اید تنظیم می کند.

نتیجه گیری

در این آموزش نحوه اضافه کردن Swap در CentOS 7 را بررسی کردیم. با دنبال کردن مراحل این راهنما، به سرور خود فضای تنفسی از نظر استفاده از حافظه خواهید داد. فضای تبادل برای جلوگیری از برخی مشکلات رایج بسیار مفید است.

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

سوالات متداول:

آیا می توان بدون استفاده از swap لینوکس را اجرا کرد؟

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

چه زمانی باید از فضای swap استفاده کرد؟

زمانی که ظرفیت حافظه فیزیکی یا ram تکمیل شود بهتر است از فضای swap استفاده کرد.

Share this Post

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *