linux 解决内存不足问题(设置虚拟内存)

在执行composer install 命令的时候突然出现了因为内存不足, 而导致被killled
可以通过下面的命令去手动扩充内存, 这个内存和windows 的虚拟内存是类似的, 而在linux当中则被成为交换区, 即swap

swap工作原理是 :当物理内存不够时,则某些在内存当中所占的程序会暂时被 移动到 swap 中,让物理内存可以被更需要的程序来优先使用。因此,虚拟内存只是缓解作用,速度肯定没法和物理内存比,优化的最好办法就是买内存。另 外, 系统可以进入『休眠』模式,运作当中的程序状态会被纪录到swap去,以作为『唤醒』主机所用!最后有某些程序在运行时,本来就会利 用 swap 的特性来存放一些数据段,所以swap 是需要建立的!只是不需要太大。




执行命令如下

$ free -m  # 查看内存信息
mkdir -p /var/_swap_ # 创建目录/var/_swap_   , -p为若上级目录不存在则自动创建
$ cd /var/_swap_  # 移动到创建的目录

#Here, 1M * 2000 ~= 2GB of swap memory
# 创建一个充满空字符的文件  文件大小为 1M * 2000 ~= 2GB 
$ dd if=/dev/zero of=swapfile bs=1M count=2000 
 # dd         用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
 # if=        input file  指定输入源为/dev/zero
 # of=        output file  指定输出源为./swapfile 
 # bs=        byte size  同时设置读入/输出的块大小为1M个字节
 # count=     仅拷贝2000个块,块大小等于ibs指定的字节数 
 # ibs=:byte  设置读入的块大小为byte个字节

$ mkswap swapfile # 在swapfile 文件设置为linux的交换区
$ swapon swapfile #开始使用swapfile 交换区
$ echo “/var/_swap_/swapfile none swap sw 0 0” >> /etc/fstab # 将挂载信息写入/etc/fstab, 即设置自动挂载设备(启用交换区)
 # 若不设置的话每次重新后都需要执行  swapon 分区名  进行手动挂载
#cat /proc/meminfo
$ free -m  # 查看设置完成后的内存信息
  # free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存


版权声明:本文为aftermetyou原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。