1. 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情况脚本:
2. 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 大小
3. 如何在Linux下查看分区和剩余空间大小
parted,然后p free就能看到剩余空间大小,上面的答非所问
4. 装linux时,根目录/与swap及其他目录大小该如何分配
1、首先,先来查看一下系统的空间分配情况。
5. linux中查看物理内存和配置空间的命令是什么
linux中查看物理内存的命令是:dmidecode -t memory | grep Size。
查看内存总数命令如下:#cat /proc/meminfo | grep MemTotal
MemTotal: 32941268 kB //内存32G
另外linux下在终端环境下可以使用free命令看到系统实际使用内存的情况,一般用free -m方式查看内存占用情况(兆为单位)。
查看CPU方法指令如下:
1、 查看CPU个数
# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
2 **uniq命令:删除重复行;wc –l命令:统计行数**
2、查看CPU核数
# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
3、查看CPU型号
# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) CPU E5630 @ 2.53GHz
Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在Linux的帮助下,技术的变革速度超出了人们的想象,Linux开发的速度也以指数规模增长。
因此,越来越多的开发者也不断地加入开源和学习Linux开发地潮流当中。在这个过程之中,合适的工具是必不可少的,可喜的是,随着Linux的发展,大量适用于Linux的开发工具也不断成熟。
6. Linux系统怎么调整swap分区大小
Linux系统上可以同时有多个swap,用swapon -s命令可以看到系统上所有的swap,用free命令看到的是swap总的大小。所以swap不够用时可以再建立一个swap,一般可以用文件的方式建立一个swap空间。下面以1G大小的文件为例介绍如何用文件建立内存交换空间:
1. 使用dd命令在某个目录(实际使用时换成其他目录,/tmp目录的数据会在重启后丢失)下新建一个1G的文件:
dd if=/dev/zero of=/tmp/swap bs=1M count=1024
解释:1M是单位,1024是数目,合计1024M就是总大小1G,of参数等号后面跟的那个/tmp/swap就是即将建立的swap文件。
2. 格式化这个文件为swap格式:(用mkswap命令)
mkswap /tmp/swap
3. 启动swap,用swapon命令(就是将新建的swap添加到系统):
swapon /tmp/swap
4. 查看效果(用swapon的-s参数):
swapon -s
可以看到所有的swap分区,如果成功了,/tmp/swap必然在里面。然后再用free命令查看,就可以看到swap空间增加了。
5. 如果想将某个swap从系统中去掉,可以用swapoff命令:
swapoff /tmp/swap
7. 调整Linux系统SWAP空间大小教程
很多初学linux的童鞋应用都有这想的体会,在刚刚接触Linux在安装的时候,不知道SWAP空间分配多少比较好,所以会随便分配一个,在真正使用的时候,比如安装Oracle10g会要求很大的SWAP空间,发现swap空间不够,那应该怎么增加swap空间大小呢。这里就给大家分享一下如何调整Linux系统的SWAP大小。
注意:以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd
if=/dev/zero
of=/home/swap
bs=1024
count=512000
这样就会创建/home/swap这么一个分区文件。文件的大小是512000个block,一般情况下1个block为1K,所以这里空间是512M。接着再把这个分区变成swap分区。
/sbin/mkswap
/home/swap
再接着使用这个SWAP分区。使其成为有效状态。
/sbin/swapon
/home/swap
现在再用free
-m命令查看一下内存和SWAP分区大小,就发现增加了512M的空间了。不过当计算机重启了以后,发现SWAP还是原来那么大,新的SWAP没有自动启动,还要手动启动。那我们需要修改/etc/fstab文件,增加如下一行
/home/swap
swap
swap
defaults
0
0
你就会发现你的机器自动启动以后SWAP空间也增大了。
8. 如何查看linux的物理内存和swap交换区大小
#grep MemTotal /proc/meninfo //查看物理内存
#grep SwapTotal /proc/meminfo //查看交换区大小
#free
#cat /proc/meminfo
9. Linux系统怎么调整swap分区大小
增加一个swap设备,然后swapon,例如:
lvcreate -L 8G -n lvswap02 rootvg
mkswap /dev/rootvg/lvswap02
swapon /dev/rootvg/lvswap02
若要想使开机时自启用,则需修改文件回/etc/fstab中的swap行:
/dev/rootvg/lvswap02 swap swap defaults 0 0
原来的swap没用可以删答掉
10. Linux系统中如何调整swap大小
这里我要跟大家介绍的是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 system the disk you wish to swap on is properly mounted. For the purposes 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 system. 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步的所有操作。