-
Ubuntu系统调整Swap交换文件大小
2020-12-18 10:00:07系统安装时自动创建的swap交换文件只有1G,然而跑编译的时候一直会提示错误,后来才发现是交换文件太小了,需要另外再增加一些swap交换文件的大小。 查看Swap文件大小 free -m m 是以兆为单位, g是以GB为什么是Swap分区
Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
系统安装时自动创建的swap交换文件只有1G,然而跑编译的时候一直会提示错误,后来才发现是交换文件太小了,需要另外再增加一些swap交换文件的大小。
查看Swap文件大小
free -m
m 是以兆为单位, g是以GB为单位, 默认是kb我们可以看到默认配置的swap文件是2G,如果是用来编译处理大数据的话肯定是不够用的。
创建目录和SWAP文件
在相应目录下创建一个存放swap文件的文件夹 并进入该目录
sudo mkdir /home/swapfile cd home/swapfile
用dd命令创建swap文件
用dd命令创建一个2G的交换空间文件
sudo dd if=/dev/zero of=swap bs=1G count=2
dd 命令解释
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: 1 if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > 2 of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file > 3 ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。 bs=bytes:同时设置读入/输出的块大小为bytes个字节。 4 cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。 5 skip=blocks:从输入文件开头跳过blocks个块后再开始复制。 6 seek=blocks:从输出文件开头跳过blocks个块后再开始复制。 注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。 7 count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。 8 conv=conversion:用指定的参数转换文件。 ascii:转换ebcdic为ascii ebcdic:转换ascii为ebcdic ibm:转换ascii为alternate ebcdic block:把每一行转换为长度为cbs,不足部分用空格填充 unblock:使每一行的长度都为cbs,不足部分用空格填充 lcase:把大写字符转换为小写字符 ucase:把小写字符转换为大写字符 swab:交换输入的每对字节 noerror:出错时不停止 notrunc:不截短输出文件 sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
转换swap文件
sudo mkswap -f swap
激活swap文件
sudo swapon swap
有时候会出现报错 swapon: /swapfile: insecure permissions 0644, 0600 suggested.
此时需要将swap文件修改权限为644 或者600即可
chmod 644 swap
永久激活swap
编辑 fstab 文件
sudo nano /etc/fstab
在最后加上之前创建的swap文件路径和参数,重启后就正常加载swap文件了
/home/swapfile/swap none swap defaults 0 0
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qwHZodML-1608256282857)(https://www.linuxitellu.com/wp-content/uploads/2020/12/wp_editor_md_0a3a5edd4e5461a72a8f6d8af033884f.jpg)]
查看swap文件状态
swapon
会将所有的swap文件位置都列出来
再次查看状态
free -m
此时已经正常显示交换文件大为4G。
停止swap交换文件
sudo swapoff /home/swapfile/swap
删除交换文件
sudo rm /home/swapfile/swap
相关内容
本文 Linuxitellu.com 同步发布
更多Linux知识请访问 Linuxitellu.com如果觉得对你有所帮助请多多鼓励 点赞 评论支持一下 😄
-
修改树莓派SWAP交换文件大小来自国外网站
2020-02-17 13:24:06How to change Raspberry Pi's Swapfile Size on Raspbian 11 Feb 2015 Written by Shane Pfaffly Reason Why Ever get the dreaded error: Virtual memory exhausted: Cannot allocate memory ...How to change Raspberry Pi's Swapfile Size on Raspbian
11 Feb 2015 Written by Shane Pfaffly
Reason Why
Ever get the dreaded error:
Virtual memory exhausted: Cannot allocate memory
With the first iterations of Raspberry Pi the Model A comes with 256mb of memory. While the Raspberry Pi B comes with a modest 512mb of memory. For most applications this amount of memory is actually quiet a bit. As soon as you start compiling your own binaries this amount starts to seem dismal.
*Insert reason why swap on flash-based memory is bad here.
Limitations
The Raspbian distribution comes with a 100mb swapfile. This is actually a bit on the small side. A general rule of thumb is swapfile size should be about twice as much as the available RAM on the machine. In the examples below I have a Raspberry Pi B+. So the amount of swap I use is 1024mb.
Commands
We will change the configuration in the file */etc/dphys-swapfile *:
sudo nano /etc/dphys-swapfile
The default value in Raspbian is:
CONF_SWAPSIZE=100
We will need to change this to:
CONF_SWAPSIZE=1024
Then you will need to stop and start the service that manages the swapfile own Rasbian:
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
You can then verify the amount of memory + swap by issuing the following command:
free -m
The output should look like:
total used free shared buffers cached Mem: 435 56 379 0 3 16 -/+ buffers/cache: 35 399 Swap: 1023 0 1023
Finished!
That should be enough swap to complete any future compiles I may do in the future.
-
Solaris ZFS根文件系统环境中设置交换区大小
2018-10-30 11:59:43在Solaris ZFS根文件系统环境中设置交换区大小 1、确定当前交换区文件及大小 #zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 278G 92.8G 185G 33% 1.00x ONLINE - #swap -l swapfile...在Solaris ZFS根文件系统环境中设置交换区大小
1、确定当前交换区文件及大小
#zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
rpool 278G 92.8G 185G 33% 1.00x ONLINE -#swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 293,1 16 4194288 4194288#zfs get volsize rpool/swap
NAME PROPERTY VALUE SOURCE
rpool/swap volsize 2G local2、如果当前交换区没有被正在使用 ( 如上面swap -l 命令输出中blocks为4194288,free为4194288 ),可以直接改变交换区的大小。
#zfs set volsize=20G rpool/swap
#zfs get volsize rpool/swap
NAME PROPERTY VALUE SOURCE
rpool/swap volsize 20G local#swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 293,1 16 41943024 419430243、 如果当前交换区正在被使用 ,可以通过增加新的交换文件来增加交换区的大小。
#zfs create -V 4G rpool/swap2
#swap -a /dev/zvol/dsk/rpool/swap2#zfs get volsize rpool/swap2
NAME PROPERTY VALUE SOURCE
rpool/swap2 volsize 4G local#swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 293,1 16 41943024 41943024
/dev/zvol/dsk/rpool/swap2 293,3 16 8388592 83885924、如何删除交换文件
#swap -d /dev/zvol/dsk/rpool/swap2
#zfs destroy rpool/swap2
#swap -l
swapfile dev swaplo blocks free
/dev/zvol/dsk/rpool/swap 293,1 16 41943024 41943024 -
如何删除交换文件 swp_如何在 Linux 上创建和使用交换文件
2021-01-30 11:16:44你将学习如何创建交换文件和调整其大小。-- Abhishek Prakash(作者)本教程讨论了 Linux 中交换文件的概念,为什么使用它以及它相对于传统交换分区的优势。你将学习如何创建交换文件和调整其大小。什么是 Linux 的...本教程讨论了 Linux 中交换文件的概念,为什么使用它以及它相对于传统交换分区的优势。你将学习如何创建交换文件和调整其大小。
-- Abhishek Prakash(作者)
本教程讨论了 Linux 中交换文件的概念,为什么使用它以及它相对于传统交换分区的优势。你将学习如何创建交换文件和调整其大小。
什么是 Linux 的交换文件?
交换文件允许 Linux 将磁盘空间模拟为内存。当你的系统开始耗尽内存时,它会使用交换空间将内存的一些内容交换到磁盘空间上。这样释放了内存,为更重要的进程服务。当内存再次空闲时,它会从磁盘交换回数据。我建议 阅读这篇文章,了解 Linux 上的交换空间的更多内容 。
传统上,交换空间是磁盘上的一个独立分区。安装 Linux 时,只需创建一个单独的分区进行交换。但是这种趋势在最近几年发生了变化。
使用交换文件,你不再需要单独的分区。你会根目录下创建一个文件,并告诉你的系统将其用作交换空间就行了。
使用专用的交换分区,在许多情况下,调整交换空间的大小是一个可怕而不可能的任务。但是有了交换文件,你可以随意调整它们的大小。
最新版本的 Ubuntu 和其他一些 Linux 发行版已经开始 默认使用交换文件 。甚至如果你没有创建交换分区,Ubuntu 也会自己创建一个 1GB 左右的交换文件。
让我们看看交换文件的更多信息。
检查 Linux 的交换空间
在你开始添加交换空间之前,最好检查一下你的系统中是否已经有了交换空间。
你可以用 Linux 上的 free 命令 检查它。就我而言,我的 戴尔 XPS 有 14GB 的交换容量。
free -h total used free shared buff/cache availableMem: 7.5G 4.1G 267M 971M 3.1G 2.2GSwap: 14G 0B 14G
free 命令给出了交换空间的大小,但它并没有告诉你它是真实的交换分区还是交换文件。swapon 命令在这方面会更好。
swapon --showNAME TYPE SIZE USED PRIO/dev/nvme0n1p4 partition 14.9G 0B -2
如你所见,我有 14.9GB 的交换空间,它在一个单独的分区上。如果是交换文件,类型应该是 file 而不是 partition。
swapon --showNAME TYPE SIZE USED PRIO/swapfile file 2G 0B -2
如果你的系统上没有交换空间,它应该显示如下内容:
free -h total used free shared buff/cache availableMem: 7.5G 4.1G 267M 971M 3.1G 2.2GSwap: 0B 0B 0B
而 swapon 命令不会显示任何输出。
在 Linux 上创建交换文件
如果你的系统没有交换空间,或者你认为交换空间不足,你可以在 Linux 上创建交换文件。你也可以创建多个交换文件。
让我们看看如何在 Linux 上创建交换文件。我在本教程中使用 Ubuntu 18.04,但它也应该适用于其他 Linux 发行版本。
步骤 1:创建一个新的交换文件
首先,创建一个具有所需交换空间大小的文件。假设我想给我的系统增加 1GB 的交换空间。使用fallocate 命令创建大小为 1GB 的文件。
sudo fallocate -l 1G /swapfile
建议只允许 root 用户读写该交换文件。当你尝试将此文件用于交换区域时,你甚至会看到类似“不安全权限 0644,建议 0600”的警告。
sudo chmod 600 /swapfile
请注意,交换文件的名称可以是任意的。如果你需要多个交换空间,你可以给它任何合适的名称,如 swap_file_1、swap_file_2 等。它们只是一个预定义大小的文件。
步骤 2:将新文件标记为交换空间
你需要告诉 Linux 系统该文件将被用作交换空间。你可以用 mkswap 工具做到这一点。
sudo mkswap /swapfile
你应该会看到这样的输出:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)no label, UUID=7e1faacb-ea93-4c49-a53d-fb40f3ce016a
步骤 3:启用交换文件
现在,你的系统知道文件 swapfile 可以用作交换空间。但是还没有完成。你需要启用该交换文件,以便系统可以开始使用该文件作为交换。
sudo swapon /swapfile
现在,如果你检查交换空间,你应该会看到你的 Linux 系统会识别并使用它作为交换空间:
swapon --showNAME TYPE SIZE USED PRIO/swapfile file 1024M 0B -2
步骤 4:让改变持久化
迄今为止你所做的一切都是暂时的。重新启动系统,所有更改都将消失。
你可以通过将新创建的交换文件添加到 /etc/fstab 文件来使更改持久化。
对 /etc/fstab 文件进行任何更改之前,最好先进行备份。
sudo cp /etc/fstab /etc/fstab.back
现在将以下行添加到 /etc/fstab 文件的末尾:
/swapfile none swap sw 0 0
你可以使用 命令行文本编辑器 手动操作,或者使用以下命令:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
现在一切都准备好了。即使在重新启动你的 Linux 系统后,你的交换文件也会被使用。
调整 swappiness 参数
swappiness 参数决定了交换空间的使用频率。swappiness 值的范围从 0 到 100。较高的值意味着交换空间将被更频繁地使用。
Ubuntu 桌面的默认的 swappiness 是 60,而服务器的默认 swappiness 是 1。你可以使用以下命令检查 swappiness:
cat /proc/sys/vm/swappiness
为什么服务器应该使用低的 swappiness 值?因为交换空间比内存慢,为了获得更好的性能,应该尽可能多地使用内存。在服务器上,性能因素至关重要,因此 swappiness 应该尽可能低。
你可以使用以下系统命令动态更改 swappiness:
sudo sysctl vm.swappiness=25
这种改变只是暂时的。如果要使其永久化,可以编辑 /etc/sysctl.conf 文件,并在文件末尾添加swappiness 值:
vm.swappiness=25
在 Linux 上调整交换空间的大小
在 Linux 上有几种方法可以调整交换空间的大小。但是在你看到这一点之前,你应该了解一些关于它的事情。
当你要求系统停止将交换文件用于交换空间时,它会将所有数据(确切地说是内存页)传输回内存。所以你应该有足够的空闲内存,然后再停止交换。
这就是为什么创建和启用另一个临时交换文件是一个好的做法的原因。这样,当你关闭原来的交换空间时,你的系统将使用临时交换文件。现在你可以调整原来的交换空间的大小。你可以手动删除临时交换文件或留在那里,下次启动时会自动删除(LCTT 译注:存疑?)。
如果你有足够的可用内存或者创建了临时交换空间,那就关闭你原来的交换文件。
sudo swapoff /swapfile
现在你可以使用 fallocate 命令来更改文件的大小。比方说,你将其大小更改为 2GB:
sudo fallocate -l 2G /swapfile
现在再次将文件标记为交换空间:
sudo mkswap /swapfile
并再次启用交换文件:
sudo swapon /swapfile
你也可以选择同时拥有多个交换文件。
删除 Linux 中的交换文件
你可能有不在 Linux 上使用交换文件的原因。如果你想删除它,该过程类似于你刚才看到的调整交换大小的过程。
首先,确保你有足够的空闲内存。现在关闭交换文件:
sudo swapoff /swapfile
下一步是从 /etc/fstab 文件中删除相应的条目。
最后,你可以删除该文件来释放空间:
sudo rm /swapfile
你用了交换空间了吗?
我想你现在已经很好地理解了 Linux 中的交换文件概念。现在,你可以根据需要轻松创建交换文件或调整它们的大小。
如果你对这个话题有什么要补充的或者有任何疑问,请在下面留下评论。
-
linux下设置交换分区大小
2018-08-13 16:20:10出现 g++:internal commpiler error: Killed(program cc1plus) 错误一般是编译c++时候...关闭交换空间文件 sudo swapoff /swapfile 然后通过dd命令设置一个大小为64M*16大小交换空间 sudo dd if=/dev/zero ... -
手动添加交换分区&交换文件
2014-12-08 15:18:42交换分区 swap 建议大小 mem*2 物理内存大于4G swap=mem 除特殊软件要求swap空间的大小之外, ...那么需要将内存中的文件交换到swap分区内, 等进程再次调用该数据时,再次从swap分区调回内存使用 L -
mysql swap 大小 设置_安装Oracle改变Swap交换空间大小
2021-01-19 16:48:431、检查当前的分区情况:[root@localhost]#free -m2、增加交换分区文件及大小,如果要增加2G大小的交换分区,则命令写法如下,其中1、检查当前的分区情况:[root@localhost]#free -m2、增加交换分区文件及大小,如果要... -
在linux上使用交换文件扩展交换空间
2017-05-02 13:45:00想像一种情景,当我们的Linux系统用尽...因此,在这种情况下,我们可以使用交换文件增加swap空间。 以下是使用交换文件在Linux上扩展swap空间的方法 让我们首先检查现有的交换空间/分区的大小,使用命令 ‘free... -
linux更改Swap交换分区大小
2017-03-24 11:05:38虚拟机安装12c 验证交换分区时失败,至少需要8G,又不想重装linux系统 查看交换分区大小 ...#设置交换文件 mkswap /u01/swap01 #启动交换区的命令 swapon /u01/swap01 #系统启动时都需 -
ubnutu18.4 修改交换分区大小
2019-10-05 09:35:091、查看交换分区大小 也可以使用系统监视器查看 free -m 2、创建一个swap文件 :大小为8g sudo dd if=/dev/zero of=swap bs=1024 count=8000000 3、创建swap文件系统 sudo mkswap -f swa... -
Linux创建交换文件swapfile方法
2018-12-18 14:55:53说明 这个东西在网上真的一堆又一堆的,写出来就是为了记录一下,同时,也为了方便大家使用。 并且创建了一个群,没有主题的,欢迎加入:...创建交换文件,这里会创建一个16GB的交换文件,具体的大小要根据你系... -
Linux下如何设置交换文件?
2020-06-06 15:58:25上面命令中“of”后面的是交换文件存放的路径 “bs“后面是数字指块大小,byte为单位,这里是1024byte也就是1KiB “count“后面的数字是指块的数目。公式:块的数目*块的大小=文件的实际大小。 二、将文件格式... -
Windows内存体系(2) -- 页交换文件
2018-03-19 15:59:18“页交换文件”的大小和位置可以在系统设置(系统属性 -> 高级 -> 性能 -> 设置 -> 高级 )中进行设置: 从微软的官方文档来看,“虚拟内存”等于“物理内存”+... -
linux c++ 创建wav文件_如何在 Linux 上创建和使用交换文件 | Linux 中国
2020-11-25 08:07:39你将学习如何创建交换文件和调整其大小。-- Abhishek Prakash本教程讨论了 Linux 中交换文件的概念,为什么使用它以及它相对于传统交换分区的优势。你将学习如何创建交换文件和调整其大小。什么是 Linux 的交换文件... -
安装Oracle改变swap交换空间大小
2018-01-19 13:59:27安装Oracle改变swap交换空间大小 ...2、增加交换分区文件及大小,如果要增加2G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。 [root@localhost]# dd if=/dev/zero of=/home/sw -
修改linux swap交换区大小
2018-03-14 11:57:06swap交换区是linux的虚拟内存技术,为了有效的...)## 修改交换区的方法 ##进入修改交换区空间大小的文件 > sudo vi /etc/dphys-swapfile 树莓派上的交换区默认值大小 : > CONF_SWAPSIZE=100 将... -
swap交换文件系统管理
2017-11-23 15:24:00swap交换文件系统管理:swap解决内存不足,另外某些app软件硬性要求swap大小。把硬盘当作内存使用。1)swap生成的方式:a.安装系统时划分的。b.使用硬盘格式化后生成。[root@localhost ~]# fdisk -l /dev/sdb[root@... -
修改 WSL2 可用内存大小和交换分区大小
2021-01-09 00:23:101.打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig ,写入内容示例如下 (我电脑8GB内存,分给WSL内存2GB,另外设置交换分区4GB) [wsl2] memory=2GB swap=4GB ... -
[转]Linux Swap交换分区、交换文件
2017-01-21 18:20:00free -m 在日常应用中,通过上述命令...大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。 查看swap 空间大小(总计): # free -m 默认单 swapon -s 等价于cat /proc/s... -
通过交换文件来添加Linux交换分区
2010-01-22 15:53:00系统类型:RedHat Enterprise Linux5登录用户:root原有交换分区:1G现在要通过添加交换文件的形式扩大系统的交换分区,为系统添加1G的交换分区。1. 首先可以通过free -m命令来查看原有的Swap分区的大小Total为1019M... -
分区创建 linux_如何在 Linux 上创建和使用交换文件
2021-01-09 19:45:07你将学习如何创建交换文件和调整其大小。-- Abhishek Prakash(作者)本教程讨论了 Linux 中交换文件的概念,为什么使用它以及它相对于传统交换分区的优势。你将学习如何创建交换文件和调整其大小。什么是 Linux 的... -
Linux下设置交换文件方法
2011-04-23 20:15:00比如是1G,执行命令dd if=/dev/zero of=/swap bs=1024 count=1048576上面命令中“of”后面的是交换文件存放的路径 “bs“后面是数字指块大小,byte为单位,这里是1024byte也就是1KiB “count“后面的数字是指块的... -
安装Oracle改变Swap交换空间大小
2012-07-15 14:56:21安装Oracle改变Swap交换空间大小 [日期:2011-10-13] 来源:Linux社区 作者:Linux 1、检查当前的分区情况: [root@localhost]#free -m ...2、增加交换分区文件及大小...
-
-191-4-源码
-
将和声搜索算法与杜鹃搜索混合,以进行全局数值优化
-
ASHRAE_Extended_Environmental_Envelope_Final_Aug_1_2008.pdf
-
select和epoll的过程分析与比较
-
歌声合成从入门到精通
-
2012年下半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
自适应极限学习机
-
XPath表达式语法详解
-
2021-02-25
-
2021 年该学的 CSS 框架 Tailwind CSS 实战视频
-
APPKIT打造稳定、灵活、高效的运营配置平台
-
无线计算卸载的能量和时间优化
-
两种新的具有最优修复的2位奇偶校验MDS阵列代码
-
元素周期表-three.js实战详解
-
自动化测试Python3+Selenium3+Unittest
-
mpsoc zcu104 上做hdmi 显示实验
-
2011年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
需求分析与建模最佳实践
-
虚幻4引擎基础
-
FastDFS 分布式文件系统部署