如何在Linux上使用文件作为内存交换区(Swap Area)
交换区域(Swap Area)有什么作用?
交换分区是操作系统在内存不足(或内存较低)时的一种补充。通俗的说,如果说内存是汽油,内存条就相当于油箱,交换区域则相当于备用油箱。
Ubuntu Linux安装时可以在磁盘上划出一个分区用作内存交换区域。文件则介绍如何使用文件作为内存交换区域。这两种方法在使用效果上没有太大区别,但文件可以在分区之后创建,且调整大小更容易,所以这种方案更加灵活。
本文在Ubuntu上试验成功,在其他发行版操作类似。
原文地址:https://www.howtoforge.com/ubuntu-swap-file
How to Add a Swap File On Ubuntu Linux
Contents
1.1 What does Swapping Mean in Linux
1.2 Important: Preliminary Check before setting up a Swap file
1.3 Adding a Swap File on Ubuntu - A Step-By Step Guide
1.3.1 Step 1-Checking the File System
1.3.2: Step 2-Creating the Swap File
1.3.3: Step 3- Enabling the Swap File
1.3.4: Step 4-Adding the Swap to the fstab file
1.3.5: Step 5-Setting Up Appropriate Permission Levels on the Swap File
1.4 Test
1.1-What Does Swapping Mean in Linux?
A swap file enables an operating system (OS) to utilize hard disk space to simulate additional memory. Effectively, as the system goes on the low-memory mode, it swaps a certain section of the RAM that an idle program may be using onto the hard disk to release memory capacity for other vital programs. Subsequently, when the user returns to the swapped out program, it swaps places with another program in RAM. This intelligent mix of RAM and swap files is commonly referred to as virtual memory, and its use allows the system to run a far greater number of programs than possible using only the built-in RAM.
Expressly in the context of Linux, the RAM on the Linux server comprises memory chunks technically termed as pages. To free up these RAM pages, a LINUX swap may be executed to copy the memory page from the parent RAM to a preconfigured space on the hard disk. Linux swaps of this nature allow a system to exploit more physical memory than was initially made available. Though a useful tool, swapping does suffer from a few demerits. Firstly, the activity triggers a sizeable amount of hard disk reading and writing, which invariably slows down your system to a considerable extent. Secondly, swap-thrashing may happen if the system gets inundated with a heavy load of files being swapped in and out frequently.
1.2-Important: Preliminary Check before setting up a Swap file
Before the users proceed with the process of setting up a swap file, it is imperative to check for any existing swap files that may have been enabled on the VPS. This can be done by reviewing the summary of swap usage. The following command shall lead you to the required summary:
sudo swapon -s
The above command shall lead to the following results:
Filename Type Size Used Priority
If the above happens to be an empty list, you may be rest assured that no swap files have been enabled.
1.3-Adding a Swap File on Ubuntu - A Step-By Step Guide
Once the preliminary check has been done, the users are now all geared up for adding a Swap File on Ubuntu. All they need to do is follow the steps given below:
1.3.1: Step 1 - Checking the File System
Once it has been firmly established that there do not exist any active swap files on the virtual server, one must check the amount of space available on the server using the df command. The swap file would normally occupy 256MB of space, which would amount to merely 8% of the /dev/sda on a typical 32GB capacity server, one may assuredly proceed with the process The following set of commands shall help users complete the first step.
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda 20907056 1437188 18421292 8% /
udev 121588 4 121584 1% /dev
tmpfs 49752 208 49544 1% /run
none 5120 0 5120 0% /run/lock
none 124372 0 124372 0% /run/shm
The above step shows the free space on your harddisk. Ensure that there is enough free space for your swap file. next we will create the actual file with dd as explained below.
1.3.2: Step 2 - Creating the Swap File
The second step comprises creating the Swap File with a size of 256 MB by using the dd command follows:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
of=/swapfile” designates the file’s name. In this case the name is swapfile.
Consequently the swap file can be prepared by creating a designated Linux swap area using the following command:
sudo mkswap /swapfile
The above command shall display the following results:
Setting up swapspace version 1, size = 262140 KiB
no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Completion of Step 2 shall lead to the creation of the Swap File. The next step, as described below, shall lead to the activation of the Swap File thus created.
1.3.3: Step 3 - Enabling the Swap File
The process of creating the Swap File on Ubuntu needs to befinished by enabling the file so created. This can be done by using the following command:
sudo swapon /swapfile
Completion of Step 3 shall enable users to view the new swap file when under swap summary, as follows:
swapon -s
Filename Type Size Used Priority
/swapfile file 262140 0 -1
The file displayed as per details above shall exist on the virtual private server till the time the machine reboots. However, users enjoy the option of making the Swap File permanent by following the next step. 1.3.4: Step 4-Adding the Swap to the fstab file In order to lend permanence to the swap file you created, you must add the same to the fstab file. The following command that will help you open up the file remains the first in the process that shall help you do that:
sudo nano /etc/fstab
Subsequently, users need to paste in the following line:
/swapfile none swap sw 0 0
Post the above step, the Swappiness in the file must ideally be set to 10, by using the following set of commands:
echo 10 | sudo tee /proc/sys/vm/swappiness
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
Important: Doing away with the above important sub-step may invariably lead to poor system performance, while configuring the setting to 10 shall lead to the swap acting as an emergency buffer, thus averting irksome out-of-memory crashes.
1.3.5: Step 5 - Setting Up Appropriate Permission Levels on the Swap File
The last and final step in the process of creating a Swap File on Ubuntu remains setting up apt permission levels for the file. This is essential to prevent the file from becoming world-readable and lending appropriate security to the same. The same may be executed by using the following either of the following commands (depending upon the case)::
sudo chown root:root /swapfile
sudo chmod 0600 /swapfile
1.4 Test
Finally we test that the swap file is active. Run the top command
top
the swap space should be shown in the column
KiB Swap: 262140
如何在Linux上使用文件作为内存交换区(Swap Area)的更多相关文章
- 如何在 Linux 上复制文件/文件夹到远程系统?
从一个服务器复制文件到另一个服务器,或者从本地到远程复制是 Linux 管理员的日常任务之一. 我觉得不会有人不同意,因为无论在哪里这都是你的日常操作之一.有很多办法都能处理这个任务,我们试着加以概括 ...
- 如何在Linux上清理内存缓存、缓冲与交换空间
如何在Linux上清理内存缓存.缓冲与交换空间 与其他类型的操作系统一样,GNU/Linux已经有效的实现了内存管理,甚至更加优秀.但是如果任何进程正在吃光你的内存,并且你想清理它,Linux提供了一 ...
- [转帖]如何在Linux上使用命令行查看硬件信息
如何在Linux上使用命令行查看硬件信息 时间:2016-01-13 作者:admin 分类:新手入门 阅读:126次 http://embeddedlinux.org.cn/emb-linux/ ...
- 如何在Linux上通过grub添加内核参数
转自Linux中国 我们可以在linux内核启动时为其提供各种各样的参数.这些参数可以自定义内核默认的行为,或者通知内核关于硬件的配置信息.内核参数应在内核启动时通过引导装载程序,如GRUB或LILO ...
- 如何在Linux上使用VIM进行.Net Core开发
对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linu ...
- springboot打成的jar包如何在Linux上持久运行
一.首先说说在没有springboot的时候,项目是如何部署的? 1.动态web项目 动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署.当然了,这 ...
- 如何在 Linux 上设置密码策略
https://linux.cn/article-2518-1.html 用户帐号管理是系统管理员最重要的工作之一.而密码安全是系统安全中最受关注的一块.在本教程中,我将为大家介绍如何在 Linux ...
- 如何在 Linux 上安装应用程序
如何在 Linux 上安装应用程序 编译自:https://opensource.com/article/18/1/how-install-apps-linux作者: Seth Kenlon原创:LC ...
- 关于如何在Linux上使用Nugix反向代理部署net core3.1项目
本文意在教大家如何在Linux上部署net core web项目,本人通过实践已经成功可以通过外网访问我部署在阿里云服务器上的站点. 一:需要用到的东西如下: 1:一个基于net core框架下的we ...
随机推荐
- sql 删除所有表
sql删除所有表语句: use 数据库名(是要删除表的所在的那个数据库的名称) GO declare @sql varchar(8000) while (select count(*) from sy ...
- Gc.Db之循序渐进
距离上次写Gc.Db框架已经有一段时间了,最近默默对框架代码已经做了不少优化和功能,且已经提交至nuget,大家如果想使用此框架,可以通过nuget搜索:Gc.Db进行下载和安装包. 本篇文章主要是介 ...
- AndroidStudio开发环境配置-Windows
Android Studio开发环境配置-Windows 最近突发奇想,开始研究Android开发.开始时使用Eclipse作为开发IDE,结果各种不好使,首先下载和安装SDK,以及不同版本的Imag ...
- UVA1585
#include<stdio.h> #include<string.h> int main(){ int n; ]; scanf("%d",&n); ...
- css定位
文档流 所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版 ...
- Express4+Mongodb超简单入门实例
开始前,请确保mongodb已经能正常工作,安装教程:windows下MongoDB的安装及配置 , 请自行安装配置.下面进入正文: 第一步:命令行创建数据库.表,并插入一条数据 命令如下: //创建 ...
- layer弹出框小结
1.layer.open() // 1.打开弹出层 layer.open({ type:1, //基本层类型 icon:, //图标 content:'请核对信息!', //内容 shade:0.3, ...
- 第八章 交互技术,8.1 VR电商购物(作者:宋五)
8.1 VR电商购物 前言 GM LAB在2016年3月成立,是一个旨在探索最新电商购物体验的实验室.在探索VR购物的过程中,有两个需要核心解决的问题:一个是VR购物的产品形态是什么,另一个是VR环境 ...
- MongoDB【第一篇】MongodDB初识
NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...
- 【前端攻略】:玩转图片Base64编码
引言 图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的 base64 编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的 base64 编码.标题略大,不过只是希望通过一些浅显 ...