آموزش ایجاد فایل سواپ در لینوکس – ایجاد فایل swap در لینوکس
بهبود عملکرد سرور لینوکس با ایجاد فایل سواپ
سواپ (SWAP) چیست
معمولاً برای ارتقا سخت افزار چه در سرورها و چه در رایانه های شخصی یا رومیزی محدودیت هایی وجود دارد و این موضوع همیشه یکی از دغدغه های کاربران سیستم های کامپیوتری بوده است.
در صورتی که حافظه جانبی یا همان RAM در سیستم / سرور شما کم باشد یا بخواهید مقداری فضای بیشتر به عنوان حافظه کمکی به آن اضافه نمایید تا در صورتی که سیستم با کمبود رم مواجه شد بتواند از این فضای کمکی استفاده نماید میتوانید از تکنولوژی سواپ استفاده نمایید.
تکنولوژی SWAP فقط در سیستم عامل های لینوکس و توزیع های مختلف آن وجود دارد و در واقع به یک بخشی از فضای هارد (حافظه اصلی) سیستم شما گفته میشود که به عنوان swap پیکربندی می شود.
انواع روش های مختلف ایجاد فضای سواپ
سواپ در واقع فضایی از هارد شما می باشد که باید به عنوان فضای سواپ پیکربندی شود و به سیستم عامل معرفی شود.
برای تعریف فضای سواپ در سیستم عامل های لینوکسی دو روش کلی وجود دارد.
- ایجاد فضای swap به عنوان یک فایل در لینوکس
- ایجاد فضای swap به عنوان یک پارتیشن مستقل که از طریق روش های مختلف مربوط به پارتیشن بندی هارد بر اساس استاندارد لینوکس انجام می شود.
در این مقاله در مورد روش اول صحبت خواهیم کرد و چگونگی ایجاد فایل سواپ یا swap File را خواهیم گفت.
روش ایجاد فایل swap در لینوکس
در اولین قدم باید برای ایجاد فایل سواپ باید از دستور dd استفاده نمایید. و سپس به منظور تبدیل آن به فضای swap از دستور mkswap استفاده نمایید که در ادامه دستورات مربوطه ذکر شده است.
پس از ورود به محیط خط فرمان سیستم عامل خود از طریق SSH در صورتی که کاربر فعلی شما دسترسی ادمین ندارد یا کاربر root نیست ابتدا با دستور زیر و سپس وارد نمودن رمز ورود، دسترسی خود را به مدیر سرور یا کاربر ریشه تغییر دهید:
1 |
su root |
محاسبه فضای سواپ مورد نیاز
طبق استاندارد های مختلف ذکر شده در منابع معتبر لینوکس براورد فضای سواپ مناسب برای سیستم عامل های لینوکسی بر اساس میزان رم سخت افزاری موجود بر روی سیستم انجام می شود.
برای رم های کمتر از 2 گیگابایت : میزان فضای سواپ 2 برابر مقدار رم
برای رم های 2 تا 8 گیگابایت : میزان فضای سواپ برابر با مقدار رم یا حداکثر 2 برابر مقدار رم
برای رم های 8 تا 64 گیگابایت : میزان فضای سواپ 0.5 برابر مقدار رم
و برای رم های بیشتر از 64 گیگابایت وابسته به حجم پروژه و فعالیت های سرور میتوان مقدار سواپ را مشخص نمود.
پس از بررسی و تعیین میزان فضای مورد نیاز برای اختصاص به فضای سواپ عدد فضای سواپ را بر حسب کیلوبایت محاسبه میکنیم. به طور مثال در صورتی که بخواهیم 10 گیگابایت را به عنوان فایل swap در نظر بگیریم به شکل زیر عمل میکنیم:
10GB * 1024 = 10240MB -> 10240MB * 1024 = 10,485,760
عدد بدست آمده در خط بالا معادل 10 گیگابایت بر حسب کیلوبایت می باشد که این عدد را باید در دستور ساخت فایل سواپ استفاده نمایید
ساخت فایل سواپ در لینوکس
برای ساخت فایل سواپ دستور زیر را داخل خط فرمان یا ترمینال لینوکس وارد نمایید:
1 |
dd if=/dev/zero of=/swapfile bs=1024 count=10485760 |
عدد وارد شده در مقابل عبارت count همان میزان حافظه سواپ بدست آمده بر حسب کیلوبایت می باشد که شما باید عددی را وارد نمایید که خودتان متناسب با سرور خود بدست آورده اید.
بسته به میزان حجم فایل سواپ ممکن است لازم باشد مدتی صبر نمایید تا فایل swap بر روی هارد شما ساخته شود.
در دستور بالا ما فایل سواپ را با نام swapfile و در مسیر / (روت یا ریشه) سیستم خود قرارداده ایم که در این مورد هم شما میتوانید متناسب با سلیقه خود مسیر ایجاد فایل سواپ و نام فایل را تغییر دهید.
توجه داشته باشید در صورت تغییر نام فایل و مسیر ایجاد فایل سواپ دستوراتی را که در ادامه ذکر می شود را نیز متناسب تغییرات خود تغییر دهید. و در صورتی که عیناً از همین دستور و نام ها استفاده میکنید در ادامه مراحل نیازی به هیچ تغییری نیست و میتوانید دقیقاً دستورات ذکر شده را در ترمینال خود وارد نمایید. همچنین توجه داشته باشید که در این روش (یعنی ایجاد فایل سواپ) شما باید فضای خالی به اندازه فایل سواپ بر روی هارد سیستم خود داشته باشید.
پس از ایجاد فایل سواپ و مشاهده خروجی مشابه زیر به مرحله بعد بروید:
1 2 3 |
10485760+0 records in 10485760+0 records out 10737418240 bytes (10240 MB) copied, 3.02342 s, 171 MB/s |
امن سازی فایل سواپ
برای امن سازی و توجه به موارد امنیتی دسترسی استاندارد را به شکل زیر بر روی فایل سواپ که در مرحله قبل ساختید اعمال نمایید:
1 2 |
chown root:root /swapfile chmod 0600 /swapfile |
دستورات بالا دسترسی فایل سواپ را به گونه ای تنظیم میکند که فقط توسط کاربر روت امکان خواندن و نوشته وجود داشته باشد. چرا که قابل خواندن بودن فایل سواپ طبق آموزش های امنیتی یک تهدید امنیتی محسوب می شود.
ایجاد فضای سواپ یا swap area
در این مرحله نوبت آن رسیده تا فضای swap را با استفاده از فایلی که در مرحله قبل ساختیم ایجاد کنیم. که برای این منظور باید از دستور زیر استفاده نمایید.
1 |
mkswap /swapfile |
خروجی دستور بالا مشابه زیر می باشد که در صورت مشاهده نشان دهنده موفقیت آمیز بودن اجرای دستور بالا می باشد:
1 2 |
Setting up swapspace version 1, size = 10485760 KiB no label, UUID=0e1s7g60-bbba-4089-a34c-3bc29c0d08s9 |
فعال سازی فایل سواپ
در این مرحله باید فایل سواپ را فعال نمایید:
1 |
swapon /swapfile |
بروزرسانی فایل fstab لینوکس
در آخرین مرحله میتوانید با بروزرسانی فایل fstab که در مسیر /etc/fstab قرار دارد به سرور یا سیستم خود اعلام نمایید که در زمان روشن شدن به صورت خودکار فایل سواپ شما را مانت نماید.
برای این کار فایل fstab را با استفاده از یک ویرایشگر متن مانند vi یا nano باز نمایید:
1 |
nano /etc/fstab |
بعد از باز شدن فایل fstab قطعه کد زیر را در انتهای این فایل اضافه و پس از ذخیره سازی فایل از ویرایشگر متن خود خارج شوید:
1 |
/swapfile none swap sw 0 0 |
برای خروج از ویرایشگر nano از کلیدهای ترکیبی ctrl+x و سپس وارد نمودن حرف y و سپس زدن دکمه Enter در کیبورد استفاده نمایید.
اکنون شما توانستید بدون دردسرهای پارتیشن بندی و دستکاری هارد دیسک خود و تحمل خطرات احتمالی، سرور یا سیستم خود را به یک رم کمکی به عنوان سواپ مجهز نمایید.
برای بررسی اینکه فضای سواپ به درستی به سیستم شما اضافه شده است میتوانید دستور زیر را در ترمینال خود وارد نمایید تا مقدار فضای رم و سواپ موجود بر روی سرور خود را مشاهده نمایید:
1 |
free -m |
همچنین با دستور htop میتوانید پردازش های در حال اجرا در سرور را مشاهده و میزان مصرف منابع سرور اعم از هسته های پردازنده ، رم و swap را مشاهده نمایید.
لازم به ذکر است این آموزش بر روی سرور لینوکس توزیع centos اجرا شده است و بر روی اکثر توزیع های لینوکس قابل اجرا می باشد. همچنین تفاوتی ندارد شما از این آموزش بر روی سرور استفاده کنید یا سیستم های خانگی و یا لپ تاپ های دارای سیستم عامل لینوکس.
امیدوارم توانسته باشید با این آموزش به طور کامل روش ایجاد فایل swap را تمام جزئیات فرا بگیرید.
منبع: cyberciti