数据库服务器程序在运行起来之后,系统内存不足。

环境:RK3399
内核:Linux 4.4
系统:ubuntu 18.04

在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。
在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁盘空间富余的目录下设置虚拟内存swap文件,用来缓解内存不足的问题。

1、free -m 命令查看内存情况和swap分区大小

	           total        used        free      shared  buff/cache   available
Mem:           3846         254        3296           4         295        3557
Swap:             0           0           0

可以看到swap空间目前为0。

2、创建一个swap文件
在创建swap文件前要考虑到,磁盘空间的大小,因为要确保要有空闲的存储空间,才能创建对应大小的swap文件。比如剩余空间大小只有2G,是不可能创建3G的swap文件的。
df -h 查看磁盘空间大小。

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.4G  2.6G  4.4G  37% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G  1.1M  1.9G   1% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mmcblk2p7   63M  109K   60M   1% /oem
/dev/nvme0n1p1  234G   61M  222G   1% /data
/dev/mmcblk2p9   22G  4.3M   22G   1% /userdata
tmpfs           385M   28K  385M   1% /run/user/121
tmpfs           385M     0  385M   0% /run/user/1000

通过上面的信息可以看到,/data目录下还剩余200多G,那么就可以把swap文件生成在/data目录下。

sudo dd if=/dev/zero of=/data/swap bs=1M count=4096
bs是单位表示1Mbyte,count表示大小,成功提示如下提示信息。
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 14.8678 s, 289 MB/s

在data目录下,ls -lh查看:
在这里插入图片描述
3、设置并激活swap文件
通过mkswap命令设置swap文件sudo mkswap swap

sudo mkswap swap
mkswap: swap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=e2d5d777-df5b-4851-9d14-334ed42dd136

激活swap文件

sudo swapon swapfile 
swapon: /data/swap: insecure permissions 0644, 0600 suggested.

free -m查看swap空间大小。
在这里插入图片描述
可以看到swap一栏的大小已经不是0了,已经设置成功了。

4、修改/etc/fstab
上面的设置是临时生效的,为了保证机器重启或开关机后任然有效,需要修改/etc/fstab文件
sudo -s 切换到root文件,增加如下的一行。
在这里插入图片描述
5、删除swap分区
执行swapoff命令后,重新free -m查看,就可以看到swap分区为0了。

sudo swapoff /data/swap

在这里插入图片描述
sudo rm swap
删除swap文件,释放磁盘占用的磁盘空间。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐