虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory
2024-09-04 21:43:21
1.内存交换空间(swap)的构建
安装Linux时一定需要的两个分区:根目录和swap(内存交换空间)。
swap的功能:在应付物理内存不足的情况下所造成的内存扩展记录的功能。
物理内存不足的时候,swap使用硬盘来暂时放置内存中的信息。
- 设置一个swap分区
- 创建一个虚拟内存的文件
1.1 使用物理分区构建swap
针对没有建立swap分区的情况,基本用不到。在已建立swap分区情况下,直接跳到第二部分(创建虚拟内存文件)。
- 分区
先用fdisk在磁盘中分个区出来作为swap。然后设置一下system ID(Linux的fdisk会默认将分区ID设为Linux的文件系统)。 - 格式化
利用“mkswap 设备文件名”新建swap格式分区(格式化该分区为swap格式)。 - 使用
“swapon 设备文件名”将此swap设备启动。 - 查看
“free”查看内存使用情况。
1.2 使用文件构建swap
- 使用dd命令在/tmp下新增一个128MB的文件
sudo -s #进入root用户模式
dd if=/dev/zero of=/swap bs=1024 count=1M #创建一个大小为1G的文件/swap
ll -h /swap #可以看到已为/swap分配了1G - 使用mkswap将/tmp/swap文件格式化为swap的文件格式
mkswap /swap
- 使用swapon将/tmp/swap启动
free #查看
swapon /swap #启动/swap
free #查看
swapon -s #查看
echo "/swap/swap swap swap defaults 0 0" >> /etc/fstab #设置成永久生效虽然现在已经生效,但是等下次虚拟机重启之后,该swap虚拟磁盘会失效。所以要加上最后一步。
虚拟机重启后若仍想使用,用root权限打开/swap即可使用。
sudo -s
swapon /swap
- 使用swapoff关闭swap file
swapoff /swap
free
最新文章
- iOS 清除缓存
- 数据挖掘之KNN算法(C#实现)
- 使用NPOI将多张图片导入execl
- 【Android 基础】Android中全屏或者取消标题栏
- Shell学习:sed命令
- 嵌入式 GDB调试死锁示例
- poj 3007 Organize Your Train part II(二叉排序树)
- openwrt 包makefile
- PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件”
- UILabel 调整行间距
- solr之环境配置二
- Python+Selenium+Pycharm
- TextField widgets require a Material widget ancestor
- fiddler抓不到chrome浏览器的请求
- 两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin
- C# 生成强命名程序集并添加到GAC
- Jamie and Tree CodeForces - 916E (换根)
- iOS TableView多级列表
- 安装nginx和nginx-gridfs和mongodb
- Python3 匿名函数