次元网单游戏

 找回密码
 立即注册
查看: 1000|回复: 0

CentOS7 增加内存配置交换分区SWAP的教程

[复制链接]

254

主题

3

回帖

11万

积分

管理员

积分
115646
发表于 2023-10-13 03:33:23 | 显示全部楼层 |阅读模式
CentOS7 配置交换分区SWAP

发布于 2019-03-12 15:15:04
2.3K0


举报



安装系统时,我们往往会在磁盘分区时,为交换分区单独分出一块儿位置,但当系统安装完成后,我们通过固定的文件位置在配置交换分区。
在配置交换分区前,请确定你放置交换分区的磁盘有足够的空间。
本篇文章将交换分区文件放在 /var 下,/var 在 / 挂载点下,所以我们检查 / 挂载磁盘的空间:
[dingdayu@gitlab-repo var]$ df -hFilesystem      Size  Used Avail Use% Mounted on/dev/vda1        40G   17G   21G  46% /devtmpfs        3.9G     0  3.9G   0% /devtmpfs           3.9G     0  3.9G   0% /dev/shmtmpfs           3.9G  556K  3.9G   1% /runtmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup复制
一定要确保 / 挂载点下有足够的空间(剩余的空间远大于你要设置的交换空间大小)才可以配置交换空间。
查看交换分区free –h 或 swapon –s复制
会得到下面的输出:
[dingdayu@gitlab-repo var]$ free -h              total        used        free      shared  buff/cache   availableMem:           7.6G        4.4G        132M         17M        3.1G        2.9GSwap:          8.0G          0B        8.0G复制
设置交换分区生成交换分区文件dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2048k复制
会得到下面的输出:
[dingdayu@gitlab-repo var]$ sudo dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=8192k8388608+0 records in8388608+0 records out8589934592 bytes (8.6 GB) copied, 71.1132 s, 121 MB/s复制
if(即输入文件,input file),of(即输出文件,output file)。dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。 bs=1024 :单位数据块(block)同时读入/输出的块字节大小为1024 个字节即1KB,bs(即block size)。count=2048000 :数据块(block)数量为2048000 ,即2048000个1KB。可以计算swap分区的容量为:1KB 2097152=1KB 1024(k)10242=2097152=2G。(dd命令里的单位M表示1024*1024,k表示1024)。
也可以通过 fallocate 命令创建分区文件:
sudo fallocate -l 8G /var/swapfile复制
最后检查分区文件大小:
[dingdayu@gitlab-repo var]$ ls -lh /var/swapfile-rw------- 1 root root 8.0G Oct 10 19:59 /var/swapfile复制
转换分区格式mkswap  /var/swapfile复制
会得到以下输出:
sudo mkswap  /var/swapfileSetting up swapspace version 1, size = 8388604 KiBno label, UUID=abfe4e6c-4474-4a6b-bd96-80292e0e676c复制
修改分区文件权限sudo  chmod -R 0600 /var/swapfile复制
挂载交换分区swapon   /var/swapfile复制
上面的挂载会在系统重启后失效,可通过编辑 /etc/fstab 避免。
将下面的内容,添加到 /etc/fstab 文件中;
/var/swapfile   swap  swap  defaults  0  0复制
或:
sudo sh -c "echo  '/var/swapfile   swap  swap  defaults  0  0' >>  /etc/fstab"复制
设置交换分区使用比例
通过下面的命令,查看 swappiness 值:
cat   /proc/sys/vm/swappiness复制
swappiness值(0-100),系统对swap分区的依赖程度,越高则越倾向于使用swap分区。 当然,高度依赖swap会造成物理内存远未使用完,就使用swap分区,我们知道swap分区性能远不如物理内存,这反而降低了系统性能,违背了我们创建swap分区的初衷。 我们希望在物理内存即将满荷时再使用swap,这就决定了swappiness值一般为10-60为宜,固态硬盘可以偏高些。
修改 swappiness
可以通过 sysctl 命令直接修改 vm.swappiness 的值:
sysctl vm.swappiness=50复制
但是在系统重启后,依然会丢失设置,所以可以通过编辑 /etc/sysctl.conf 文件实现:
sudo sh -c "echo 'vm.swappiness = 50'  >>  /etc/sysctl.conf"复制
扩缩容分区大小
扩大或缩小分区大小,采用创建新的分区文件,后挂载到新的分区位置的方式设置,参考 设置交换分区 章节即可。
# 生成新的分区文件dd if=/dev/zero of=/var/swapfile1 bs=1024 count=2097152# 格式化分区文件mkswap /var/swapfile1# 挂载新的分区文件swapon /var/swapfile1复制
删除SWAP分区
需要先解除分区挂载:
swapoff  /var/swapfile复制
然后删除分区文件即可
rm -rf   /var/swapfile复制
最后记得将 /etc/fstab文件里的交换分区挂载移除掉



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|www.cywdgame.com

GMT+8, 2026-11-3 02:06 , Processed in 0.070159 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表