原文 :https://blog.csdn.net/Mr_li13/article/details/79209147
一核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分区是否启动:
- <span style="font-family:'Microsoft YaHei';font-size:18px;">root@iZwz9fhjcx8r4p3u85qxgnZ:/# free -m
- total used free shared buff/cache available
- Mem: 2000 37 75 2 1887 1777
- Swap: 4096 0 4096
- </span>
这个时候是不是有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 是运行时的虚拟目录