Ubuntu服务器开启swap虚拟内存、gitlab装载在阿里云Ubuntu服务器上卡

原因是gitlab占用内存太多,导致服务器崩溃

关键点在Swap分区的使用,也是本文的要点。

个人用的是阿里云的服务器配置:
一核CPU、2G内存、1M带宽、40GB系统盘

(1).一种是直接从磁盘中分出来一块用来当做swap分区,然后格式化为swap格式

(2)另一种方式就是创建一个文件,然后将这块文件格式化为swap格式

解决办法,启用swap(虚拟内存分页)分区,采用swap文件的方式,步骤如下: 

1.cat /proc/swaps查看swap分区是否启动(无) :如下说明没开启swap

root@iZwz9fhjcx8r4p3u85qxgnZ:~# cat /proc/swaps 
Filename				Type		Size	Used	Priority
root@iZwz9fhjcx8r4p3u85qxgnZ:~# cat /proc/swaps 
Filename				Type		Size	Used	Priority

2.创建 :
sudo dd if=/dev/zero of=swaps bs=512 count=8388616

注:创建swap大小为bs*count=4294971392(4G);swaps这个文件就是swap文件我是建在当前自定义的目录下的

root@iZwz9fhjcx8r4p3u85qxgnZ:/swaps# sudo dd if=/dev/zero of=swaps bs=512 count=8388616
A8388616+0 records in
8388616+0 records out
4294971392 bytes (4.3 GB, 4.0 GiB) copied, 71.5142 s, 60.1 MB/s

3.通过mkswap命令将上面新建出的文件做成swap分区
    mkswap swaps
root@iZwz9fhjcx8r4p3u85qxgnZ:/swaps# sudo mkswap -f swaps 
Setting up swapspace version 1, size = 4 GiB (4294967296 bytes)
no label, UUID=f28beb1f-b946-4e36-b532-f160369d0eec
4.查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60

查看: cat /proc/sys/vm/swappiness

root@iZwz9fhjcx8r4p3u85qxgnZ:/swaps# cat /proc/sys/vm/swappiness
0

设置: sysctl -w vm.swappiness=60(个人建议还是永久修改好:表示100%-60%=40%物理内存时启用虚拟内存)

root@iZwz9fhjcx8r4p3u85qxgnZ:/swaps# sysctl -w vm.swappiness=60
vm.swappiness = 60

若想永久修改,则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置,默认为0

5.启用分区
sudo swapon /data/swap
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
root@iZwz9fhjcx8r4p3u85qxgnZ:/# swapon /swaps/swaps 
swapon: /swaps/swaps: insecure permissions 0644, 0600 suggested.

修改/etc/fstab文件,使系统启动时自动加载此交换分区。
输入:
sudo vim /etc/fstab
添加如下行:
/swap/swapfile  swap      swap    defaults   0       0
或者编辑 /etc/rc.local 文件(此文件有可能写入 swapon -a 导致重启后失效,即使/etc/fstab中写入挂载)
加入:swapon swapfile-path

6.再次使用cat /proc/swaps 查看swap分区是否启动:

root@iZwz9fhjcx8r4p3u85qxgnZ:/# free -m
              total        used        free      shared  buff/cache   available
Mem:           2000          37          75           2        1887        1777
Swap:          4096           0        4096

这个时候是不是有swap数据了,说明swap虚拟内存已经开启了。

7.重启查看swaps虚拟内存是否自动挂载成功

重新启动系统,并查看交换分区的大小。查看交换分区大小,至少有2种方法:
(1)cat /proc/swaps
(2)依次选择菜单:系统->系统管理->系统监视器。在“资源”选项卡的“内存和交换历史”中有“交换”一项显示了总交换分区的大小。

root@iZwz9fhjcx8r4p3u85qxgnZ:~# sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/data/swap                              file		4194304	0	-1

看到这个表示即成功


番外:

cat /proc/swaps  查看虚拟内存
cat——串联文档做基本输出
cat /proc/cpuinfo 显示CPU info的信息 
cat /proc/interrupts 显示中断 
cat /proc/meminfo 校验内存使用 
cat /proc/swaps 显示哪些swap被使用 
cat /proc/version 显示内核的版本 
cat /proc/net/dev 显示网络适配器及统计 
cat /proc/mounts 显示已加载的文件系统
cd /proc 转到该目录
ls -l       查看文件
注:/proc 是运行时的虚拟目录

猜你喜欢

转载自blog.csdn.net/Mr_li13/article/details/79209147