می دانیم که یکی از نیاز های ضروری برای هر سیستم عاملی رم می باشد . در سیستم عامل هایی مانند Unix , یک فضایی وجود دارد که سیستم از این فضا به عنوان رم مجازی استفاده می کند و به آن swap می گویند . کار کردن بدون swap تقریبا امکان پذیر نیست مخصوصا اگر سیستم به عنوان یک server مورد استفاده قرار گیرد.
اگر در هنگام نصب FreeBSD دقت کرده باشید ما قسمتی از فضای هارد را به عنوان رم مجازی یا swap قرار دادیم تا سیستم بتواند از آن استفاده کند . حال حالتی را در نظر می گیریم که احساس می کنیم این swap برای سیستم ما کافی نیست و باید آن را افزایش داد . برای افزایش swap سه راه در FreeBSD وجود دارد :
۱- اضافه کردن یک هارد جدید و ساختن یک swap جدید بر روی آن
۲- ساختن swap بر روی NFS
۳- ساختن swapfile
از بین گزینه های بالا گزینه دوم زیاد پیشنهاد نمی شود چون باید سیستمی که از آن به عنوان NFS استفاده می شود همیشه روشن باشد و چون از طریق شبکه سیستم ها به هم وصل هستند ممکن است باعث اشغال شدن شبکه شود و مقدار زیادی از پهنای باند مورد استفاده قرار گیرد و شبکه را با مشکل مواجه کند .
گزینه اول راه کار خوبی است البته مجبور به هزینه هستید.
گزینه سوم یکی از بهترین راه ها است . در این روش ماید یک فایلی ایجاد می کنیم بر روی هارد دیسکی که سیستم عامل بر روی آن نصب است و به سیستم می گوییم از این فایل به عنوان swap استفاده کند . در این صورت لازم است حتما بر روی هارد دیسک خود فضای کافی داشته باشیم.
برای ساختن swapfile باید مارحل زیر طی گردد .
۱- اگر از کرنلی غیر از کرنل Generic استفاده می کنید باید حتما گزینه memory disk drive یا md در آن فعال باشد اگر نیست خط زیر در قسمت device های کرنل قرار دهید و سپس دوباره کرنل را compile کنید
device md # Memory "disks"
در کرنل Generic این گزینه به طور پیش فرض وجود دارد .
۲- فرض بر این است که من مقدار swapfile را در حدود ۵۱۲ مگا بایت در نظر می کیرم و این swapfile در شاخه usr که دارای فضای کافی است قرار می دهم . پس برای ایحاد این فضا دستور زیر را در ترمینال تایپ می کنم .
# dd if=/dev/zero of=/usr/swap0 bs=1024k count=512
با تایپ دستور بالا این فضا که در اینجا swap0 نام دارد ایجاد شد . شما می توانید نام های دیگری برای این فضا در نظر بگیرید . مانند swap123 یا mfaridiswap یا هر چیز دیگری .
۳- بعد از ایجاد فضا برای اینکه این فضا قابل نوشتن و خواندن باشد باید permission آن را تغییر دهیم . پس در ترمینال تایپ می کنیم .
# chmod 0600 /usr/swap0
۴- بعد از تعیین permission یا مجوز دسترسی برای اینکه این فضا در هنگام بوت سیستم مورد استفاده قرار گیرد باید عبارت زیر را در فایل rc.conf قرار دهیم یا با هر بار ریست سیستم این فضا به عنوان swapfile مورد استفاده قرار گیرد.
swapfile="/usr/swap0"
واضح است اگر این swapfile به اسم دیگری مانند swap123 یا mfaridiswap ایجاد شده است باید در فایل rc.conf همان عبارت را قرار دهیم .
حالا کافی است سیستم را ریست کنیم تا از سیستم بتواند از این فضا به عنوان swap استفاده کند.
اگر دوست ندارید سیستم را ریست کنید یا نمی توانید برای فعال شدن swapfile کافی است در ترمینال دستور زیر را تایپ کنید
# mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0