linuxswap设置_linux-swap
Linux系统中如何调整swap大小
这里我要跟大家介绍的是Linux系统中调整swap大小的 方法 。欢迎大家阅读。
linuxswap设置_linux-swap
linuxswap设置_linux-swap
Linux系统中调整swap大小的方法
1、使用free命令带上m参数,查看swap文件大小,建议在RAM是2到4.5G时,swap是RAM的2倍;如果RAM大于等于4G则swap等于RAM即可
2、也可用cat 查看etc目录下的swaps文件,如下图
3、创建一个swap文件
内容到剪贴板
########
dd if=/dev/zero of=/tmp/swap bs=1MB count=1024
########
以下仅供参考:不用看
Creating a swap file
First of, make sure the file the disk you wish to swap on is properly mounted. For the pures of this tutorial we will assume the disk is mounted as /mnt and we want to use the file /mnt/myswap.swp for swapping.
使用下面的命令创建一个1G的swap文件
内容到剪贴板
Use the following command to create a 1024MB file that we will use for swapping
########
dd if=/dev/zero of=/mnt/myswap.swp bs=1024MB count=1
########
4、制作一个swap文件,如果觉得繁琐,可以将mkswap文件挂载到tmp目录下,例如:
内容到剪贴板
########
mkswap /tmp/swap
########
以下仅供参考:不用看
Preparing the swap file
Before we enable the swap file we must first set it up. The following command accomplishes just that:
########
mkswap /mnt/myswap.swp
########
5、使用swapon 启动/tmp/swap
内容到剪贴板
########
swapon /tmp/swap
########
使用一个swap分区,如果已经有一个swap分区,该步骤可以省略
以下仅供参考:不用看
Using a swap partition
Setting up a swap partition is a bit more difficult, as the partition must be first created then formatted using the linux-swap file . Once that is done, assuming the swap partition is at/dev/scsi/host0/bus0/target0/lun0/part5 (common for v24 USB drives with mutiple partitions), the only command that needs be issued is:
6、再次使用free查看增加后的swap大小
7、如果只想增加swap大小,请忽略以下的作,重要!!如果不使用刚才增加的1G的swap文件,使用下面的swapoff命令,可以关闭,这样swap文件就缩小了1G
使用swapoff关闭swap文件
内容到剪贴板
########
swapoff /tmp/swap
########
注意事项:如果只想增加swap大小,请忽略第7步的所有作。
linux设置开启swap交换分区基本命令(虚拟内存)
linux设置开启swap交换分区基本命令(虚拟内存)
在Linux系统下,我们要怎么开启swap交换分区,基本设置命令是什么呢?下面为大家带来基本的配置命令,希望对大家有所帮助!
1.验证不存在交换分区free-m
输出如下:totalusedfreesharedbufferscached
Mem:99594747046142
-/+buffers/cache:758236
Swap:000
如果swap选项total是0则表示没有交换分区,开始下一步
2.创建swap分区
使用dd命令选择swap分区目录以及大小,在此我们给他放到根目录,创建的.是2G的虚拟内存,可以根据自己需要选择大小。ddif=/dev/zeroof=/swapfilecount=2048bs=1M
接下来验证根目录是否存在swapfilels/|grepswapfile
不出意外的话你将会看到swapfile
3.激活swap分区
交换分区不会自动激活,你需要告诉如何格式化文件,使它作为一个有效的交换分区。
出于安全考虑,交交换区权限设置成600
chmod600/swapfile
使用mkswap命令来设置交换文件:mkswap/swapfile
4.开启swap分区swapon/swapfile
再次使用free-m查看内存使用情况,输出如下:totalusedfreesharedbufferscached
Mem:184017548616231519
-/+buffers/cache:2101630
Swap:204702047
5.设置允许开机启用swap分区sudovi/etc/fstab
在后面加上/swapfilenoneswapsw00 ;
Linux里面交换分区一般设置多少?
可以参考Redhat的文档中关于swap分区大小设置的建议:
swap分区到底设置成多大才?
以前几乎所有Linux 系统管理的书上都设置交换分区大小为内存的2倍。这些建议到了现在就是那么适用了,现在的动不动就是 16GB/32GB甚至256GB 内存
一般来说可以按照如下规则设置swap大小:
4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。
4-8G的物理内存,SWAP 等于内存大小。
8-64G 的物理内存,SWAP 设置为8G。
64-256G物理内存,SWAP 设置为16G。
通常是 内存的 2倍吧
比如 8G 内存,设 28=16G
以往一直是这样
Linux - Swap
首先,swap是硬盘上的一块空间。
其次,当内存没有多余空间的时候,可以将一部分数据交换到swap空间。也就是将内存中的一部分数据放到硬盘中,并释放内存空间。这样,释放出的内存空间就又可以被利用来存储其他数据了。
这样,本来只有4G的内存,如果swap有2G的话,可使用的内存可以认为是6G。
但是,硬盘的速度比内存慢太多太多了。因此swap只是对内存的一种补充,是在内存不足时对内存的扩充,但是不能代替内存使用。
内存不足时, 作系统 会选择 久没被使用的内存数据 ,交换到swap空间。
注意,交换作是由作系统来进行的。
系统在什么情况或条件下才会使用Swap分区的空间呢? 其实是Linux通过一个参数swappiness来控制的。当然还涉及到复杂的算法。
这个参数值可为 0-100,控制系统 swap 的使用程度。
0告诉内核尽可能的不要将内存数据移到swap中,也即只有在迫不得已的情况下才这么做,而100告诉内核只要有可能,尽量的将内存中不常访问的数据移到swap中。默认值为 60。注意:这个只是一个权值,不是一个百分比值,涉及到系统内核复杂的算法
查看当前系统中swappiness的值
修改当前系统中swappiness的值
上面通过sysctl修改的swappiness值在系统重启后会失效,要想重启后继续生效,需要修改配置文件/etc/sysctl.conf,将下面这行修改成10,如果文件中找不到这行的话,在文件末位加上这行就可以了
既然配置swap对桌面系统有帮助,那么配置多少大小的swap比较合适呢?下面是ubuntu给出的建议:
Linux下有两种类型的swap空间,swap分区和swap文件,他们有各自的特点:
swap分区上面由于没有文件系统,所以相当于内核直接访问连续的磁盘空间,效率相对要高点,但由于swap分区一般安装系统时就分配好了了,后期要缩减空间和扩容都很不方便。
swap文件放在指定分区的文件系统里面,所以有可能受文件系统性能的影响,但据说2.6版本以后的内核可以直接访问swap文件对应的物理磁盘地址,相当于跳过了文件系统直接访问磁盘,不过如果swap文件在磁盘上的物理位置不连续时,还是会对性能产生不利影响,但其优点就是灵活,随时可以增加和移除swap文件。
如果配置有多个swap分区或者文件的话,这里将会有多行,每行代表一个正在被系统使用的swap分区或文件,下面是每个字段的意思:
并不是swap空间占用多就一定性能下降,真正影响性能是swap in和out的频率,频率越高,对系统的性能影响越大,我们可以通过vmstat命令来查看swap in/out的频率
在添加swap分区前,首先得有一个空闲的分区,如果是一块新的磁盘,可以用fdisk来创建一个新的分区用于swap。
添加swap文件就简单多了,也没有分区作那么有风险。
通过如下命令,能查看所有进程的使用swap情况
查看某个进程swap占用内存大小脚本:
查看所有进程使用swap情况脚本:
Linux开启Swap分区
title: 2021-02-07-Linux开启Swap分区
date: 2021-02-07 11:20:20
categories: [linux]
tags: [linux分区扩容]
toc: true
场景: 华为云购买的机器,默认不会开启 swap 分区,运行内存只有 4GB ,不满足使用,开启 swap 交换分区
1、 开启 swap 分区
新建一个专门的文件用于 swap 分区
注:此文件的大小是 count 的大小乘以 bs 大小,上面命令的大小是 8GB
2、 通过 mkswap 命令将上面新建出的文件做成 swap 分区
3、 查看内核参数 vm.swappiness
若 vm.swappiness 为 0 则根据实际需要调整成 30 或者 60
注:若想修改,则编辑 /etc/sysctl.conf 文件
4、 启用此交换分区的交换功能
这里有可能会有报错,如下
解决方法:
尝试激活 Swap 文件
5、 关闭 swap 分区
6、 重新激活 swap 分区,没有写入系统配置文件中,系统重启后,就需要重新激活
7、 如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件
8、 关机重启确认 Swap 大小
如何为已安装的linux作系统设置swap分区
在日常应用中,通过上述命令看到交换空间的使用情况为0,那么你就不需要很大的虚拟内存,甚至可以完全不需要另辟硬盘空间作为虚拟内存。那么,万一有一天你需要了呢,难道要重装系统?大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。
---------------------------------------------------------------------
1查看swap
空间大小(总计):
#free
-m
默认单
位为k,
-m
单位为M
total
used
free
shared
buffers
cached
Mem:
377
180
197
19
110
-/+
buffers/cache:
50
327
Swap:
572
572
2查看swap
空间(file(s)/partition(s)):
包括
文件
和分区
的详细信息
#swapon
-s
等价于
#cat
/proc/swaps
3添加交换空间
两种选择:添加一个交换分区或添加一个交换文件。你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。
3.1
添加一个交换分区
步骤如下:
a使用fdisk来创建交换分区(设
/dev/sdb2
是创建的交换分区)
b使用
mkswap
命令来设置交换分区:
#mkswap
/dev/sdb2
c启用交换分区:
#swapon
/dev/sdb2
d写入/etc/fstab,以便在时启用:
/dev/sdb2
swap
swap
defaults
3.2
添加一个交换文件
a创建大小为512M的交换文件:
#dd
if=/dev/zero
of=/swapfile1
bs=1024k
count=512
b使用
mkswap
命令来设置交换文件:
#mkswap
/swapfile1
c启用交换分区:
#swapon
/swapfile1
d写入/etc/fstab,以便在时启用:
/swapfile1
swap
swap
defaults
新添了交换分区并启用它之后,请查看
cat
/proc/swaps
或free
命令的输出来确保交换分区已被启用了。
4删除交换空间:
a禁用交换分区:
#swapoff
/dev/sdb2
b从
/etc/fstab
中删除项目;
c使用fdisk或yast工具删除分区。
删除交换文件步骤同上。
--------------------------------------------------------------------------------
#free
-m
total
used
free
shared
buffers
cached
Mem:
377
180
197
19
110
-/+
buffers/cache:
50
327
Swap:
572
572
Mem
行显示了从系统角度看来内存使用的情况,
total是系统可用的内存大小,
数量上等于系统物理内存减去内核保留的内存.
buffers和cached是系统用做缓冲的内存.
buffers与某个块设备关联,
包含了文件系统元数据,
并且跟踪了块的变化.
cache只包含了文件本身.
-/+
buffers/cache
行则从用户角度显示内存信息,
可用内存从数量上等于mem行used列值减去buffers和cached内存的大小.
因为buffers和cached是作系统为加快系统运行而设置的,
当用户需要时,
可以只接为用户使用.
top
显示系统运行时的各进程动态、实时的状态(cpu、内存)
top
中有3个列
VIRT
RES
SHR,
标示了进程使用的内存情况.
VIRT
标识这个进程可以使用的内存总大小,
包括这个进程真实使用的内存,
映射过的文件,
和别的进程共享的内存等.
RES
标识这个这个进程真实占用内存的大小.
SHR
标识可以和别的进程共享的内存和库大小.
vmstat
显示内存的使用情况
这些命令都是从/proc/mem中读取内存信息.
关于/proc/mem中各行的含意,
在内核源代码的Documentation/files/proc.txt文件中有叙述
系统的真实内存大小可以用
dmesg
|grep
[mM][eE][mM]看到
/proc/pid/status显示一个进程的详细状态
#cat
/proc/5346/status
Name:
bash
State:
S(sleeping)
SleepAVG:
98%
Tgid:
5346
Pid:
5346
PPid:
5343
TracerPid:
Uid:
1000
1000
1000
1000
Gid:
104
104
104
104
FDSize:
256
Groups:
624
29
44
104
113
1000
1001
VmPeak:
6528
kB
VmSize:
6528
kB
VmLck:
kB
VmHWM:
1976
kB
VmRSS:
1976
kB
VmData:
752
kB
VmStk:
84
kB
VmExe:
644
kB
VmLib:
1788
kB
VmPTE:
16
kB
Threads:
1SigQ:
0/4294967295
SigPnd:
0000000000000000
ShdPnd:
0000000000000000
SigBlk:
0000000000000000
SigIgn:
0000000000384004
SigCgt:
000000004b813efb
CapInh:
0000000000000000
CapPrm:
0000000000000000
CapEff:
0000000000000000
VmSize即为该进程内存总大小,
和top输出中的VIRT一致.
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。