linux资源状态(三)之swap space

一、相关背景

1.1 历史背景
  • 早前程序要运行,都必须将其载入到内存中才能运行。
  • 因此不同的程序之间会存在对资源的恶性竞争,例如篡改其他程序的数据。
  • 以前内存资源不足时,需要把所有在内存中的数据交换到交换空间,导致进程效率低。
1.2 内存管理基本概念

https://blog.csdn.net/zhouziyu2011/article/details/60604539

  1. 线性地址
  2. 逻辑地址
  3. 物理地址
  4. 虚拟地址

二、swap space的相关概念

  1. 什么时候使用swap space?

物理内存(RAM)满了之后。

  1. 会把内存中的哪些数据移动到swap space?

不同于从前,现在是把内存中的非活动页面移动到swap space。

  1. 如何访问swap space里面的数据?

仍然需要先把swap space里面的数据移动回内存再访问。

  1. swap space以什么形式存在?
  • 分区
  • swap files
  • 分区和swap files组合
  1. swap space的分区大小该如何设置?
  • 4G以内的物理内存:swap sapce的大小应设置成物理内存大小的两倍
  • 4~8G的物理内存:swap sapce的大小应设置成内存大小
  • 8~64G的物理内存:swap sapce的大小应设置成8G
  • 64G以上的物理内存:swap sapce的大小应设置成16G
  1. 如何查看swap space的使用界限。
  • 通过/proc/sys/vm/swappiness内的参数查看:这里的数值是百分比数值,表示当剩余物理内存的百分之多少事使用swap space。
[root@Tyson'sComputer ~]# cat /proc/sys/vm/swappiness 
30

三、管理swap space

3.1 修改swappniess参数
  1. 临时修改
[root@Tyson'sComputer ~]# sysctl vm.swappiness=10
vm.swappiness = 10
  • 重启就会失效
  1. 永久修改:
  • echo 'vm.swappiness=10'>>/etc/sysctl.conf
  • 需要重启生效
3.2 查看swap space大小
  • free -m中swap栏目就是
[root@Tyson'sComputer ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            976         213         557           6         205         579
Swap:          2047           0        2047
3.3 查看swap space的使用情况
  • vmstat报告中的swap栏目
[root@Tyson'sComputer ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 571356   2116 208004    0    0    12     1   46   53  0  0 100  0  0

Swap

  • si: Amount of memory swapped in from disk (/s).
  • so: Amount of memory swapped to disk (/s).
3.4 验证swap space状态
  • Get info:swapon -s,–summary,display summary about used swap devices
[root@Tyson'sComputer ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1
3.5 打开或关闭 swap分区
  • swapon, swapoff - enable/disable devices and files for paging and swapping
[root@Tyson'sComputer ~]# swapoff /dev/dm-1
[root@Tyson'sComputer ~]# swapon -s
[root@Tyson'sComputer ~]# swapon /dev/dm-1 
[root@Tyson'sComputer ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1
3.6 swap patition 开机自启动
  • 需要在/etc/fstab中配置,该配置文件是用来自动挂载这里声明的分区的。
[root@Tyson'sComputer ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Jan  2 17:01:36 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=350fe0f8-cb08-4651-98ed-7f660b6bbb76 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
3.7 增加swap partition的大小
  • 使用文件作为swap交换分区的。首先在根目录下创建文件
[root@Tyson'sComputer ~]# dd if=/dev/zero of=/swap-type-file bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 26.6993 s, 40.2 MB/s
[root@Tyson'sComputer ~]# ll -h /swap-type-file 
-rw-r--r--. 1 root root 1.0G Feb 14 12:23 /swap-type-file
  • 然后对该用作交换空间的文件进行安全性设置
[root@Tyson'sComputer ~]# chmod 600 /swap-type-file 
[root@Tyson'sComputer ~]# chown root:root /swap-type-file 
[root@Tyson'sComputer ~]# ll /swap-type-file 
-rw-------. 1 root root 1073741824 Feb 14 12:23 /swap-type-file
  • 需要注意的是:即使将该文件的权限等属性设置成这样普通用户仍能使用交换空间,是通过内核实现的。
  • 将生成的文件格式化成交换分区并启用
[root@Tyson'sComputer ~]# mkswap /swap-type-file 
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=c526ab2e-b971-468f-b442-71fabd58d0af
[root@Tyson'sComputer ~]# swapon /swap-type-file 
[root@Tyson'sComputer ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 0       -1
/swap-type-file                         file    1048572 0       -2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值