
排错:centos7 未启用swap导致内存使用率过高。
情况描述:
朋友在阿里云上有一台系统为CentOS7的VPS,内存为2GB,用于平时开发自己的项目时测试使用;
他在上面运行了5个docker实例,运行java程序;还有一个mysql服务;
上述5个docker实例和mysql服务总共占用VPS1.35GB的内存,系统运行很慢。ssh连接输入命令都有卡顿;
因为内存太小,没什么可以优化的空间。所以准备启用swap交换空间。
百度了一下收到博客文章, 通过文章中提供的方式添加swap空间;但是遇到一个问题,该centos7系统中,不存在/dev/zero文件,所以找到另一篇博客文章.
具体步骤如下:
1. 误删/dev/zero文件的解决方法如下两条命令进行修复重建文件:
[root@localhost sslinux]# mknod /dev/zero c 1 5
[root@localhost sslinux]# chmod 666 /dev/zero
修复完成后用命令测试下是否可用,发现已经可以正常使用磁盘测试了
[root@localhost sq808sq]# dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
至此,/dev/zero 文件的修复重建工作已经完成(该文件为系统特殊文件丢失后不能从系统盘或其他系统直接复制使用,只能通过重建修复,/dev/null文件也是如此)
2.使用dd 命令 新增 swap空间(/var/swap)
dd if=/dev/zero of=/var/swap bs=1024 count=4096000
ls -lh /var/swap
mkswap /var/swap
mkswap -f /var/swap
swapon /var/swap
free -lh
swapon /var/swap
more /proc/swaps
vim /etc/fstab
free -lh
将swap设置为开机自动挂载:
[root@izbp12z8w3jbbgmy9yiz92z ~]# tail -1 /etc/fstab
/var/swap swap swap defaults 0 0
但是此时使用 free -lh 命令查看memory和swap的使用情况,依旧没什么变化。
1.swap 是存储“暂时不需要使用的内存”到硬盘上,等到使用的时候再载入到内存中
这种情况只能说明,没有“长期不使用的内存”
2.Swap 的使用量和 OOM 没有直接关系。OOM 看的是申请量不是使用量。哪怕你内存没用完都会触发 OOM
系统在什么情况下才会使用SWAP?
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。
[root@rhce ~]# cat /proc/sys/vm/swappiness
60
该值默认值是60.
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
即内存足够大的时候,swappiness设置尽量小; 内存较小的时候,swappiness要设置的尽量大;
如何修改swappiness参数?
- 临时性修改:
[root@rhce ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@rhce ~]# cat /proc/sys/vm/swappiness
10
- 永久修改:
在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
[root@izbp12z8w3jbbgmy9yiz92z ~]# sed -i '$a vm.swappiness=100' /etc/sysctl.conf
[root@izbp12z8w3jbbgmy9yiz92z ~]# sysctl vm.swappiness
vm.swappiness = 100
到这里,系统就会尽可能的使用swap。 可以执行一个占用大量内存的命令看一下效果;
此时再查看内存和swap的使用情况:
[root@izbp12z8w3jbbgmy9yiz92z ~]# free -lh
total used free shared buff/cache available
Mem: 1.8G 899M 690M 1.5M 249M 779M
Low: 1.8G 1.1G 690M
High: 0B 0B 0B
Swap: 3.9G 715M 3.2G
OK,问题解决了。
因为觉得以后可能会再次遇到这样的情况,所以简单记录一下;
Leave 排错:centos7 未启用swap导致内存使用率过高。 to:
Read more #cn posts
Best Posts From sslinux
We have not curated any of sslinux's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From sslinux
- Good.Luck.Charlie.S01E01-查莉成长日记S01E01(下)
- Good.Luck.Charlie.S01E01-查莉成长日记S01E01(上)
- 排错:centos7 未启用swap导致内存使用率过高。
- how-to-build-mysql-from-source-code-on-centos7
- Sword Fish
- 传销不挣钱为啥还有这么多人参与?美国大选为啥总是两党之争?李永乐老师讲一美元拍卖陷阱
- Ariana Grande - 7 rings(youtube music)
- 《流浪地球》科普答疑:人们为什么要去比邻星?太阳会爆炸吗?李永乐老师告诉你
- 2月为啥只有28天?竟然与凯撒和屋大维有关!李永乐老师讲公历演化(2018最新)
- 1+2+3+4+...=-1_12?李永乐老师讲黎曼猜想(1)
- 如何改變自己或別人?
- 《流浪地球》最大的硬伤:洛希极限竟是错的!地球真会被木星撕碎吗?
- 流浪地球中的“引力弹弓”效应是啥?李永乐老师教你如何逃出太阳系
- 比特币交易如何防伪?私钥公钥地址啥意思?李永乐老师讲比特币(2)
- Bitcoin and blockchain principle? Mining machine mining ?? Li Yongle teacher speaks bitcoin (1)比特币和区块链啥原理矿机挖矿咋回事李永乐老师讲比特币(1)
- 1米有多长?美国人知道千米和千克吗?李永乐老师讲国际单位制
- 流浪地球(枪版)
- 流浪地球(枪版)_IPFS共享。
- 0.999…=1?数到底是什么?李永乐老师讲数学公理化
- 是“乔峰”还是“萧峰”?《天龙八部》众生相(乔峰篇)