场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了。

对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解决,只不过需要先关机再进行设置。

linux下增加swap的大小这个算是很基础的东西了。不过上帝赐给了人类一件非常好的礼物是遗忘。诚然,像增加swap的大小这样基础的操作,也常常在用到的时候发现已经忘了怎么去弄。搞的每次都要再去Internet上去查。所以索引在博客里记录下,以便以后用时能直接手到掂来。

增加swap大小的方法有两种:

一种是已经分过swap交换分区,不过分配不合理,所以可以通过增加swap文件来增加交换分区的大小;

另一种方法是通过增加swap分区大小来增加swap的大小。

1 通过swap文件增加

1.1 查看当前分区的大小

free -m 

如上图所示。

1.2 创建交换文件

增加交换分区文件及大小,如果要增加4G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。

当然根据bs指定的大小不同,我们也可以通过下面的文件增加:

dd if=/dev/zero of=/tmp/mem.swap bs=1M count=4096 (增加4G)或
dd if=/dev/zero of=swapfile bs=1024 count=1048576 (增加1G)

1.3 格式转换并挂载

#设置交换文件
mkswap /tmp/mem.swap #立即启用交换分区文件
swapon /tmp/mem.swap

1.4 三种确认是否增加成功的方法

[root@localhost cs408]# swapon -s
文件名 类型 大小 已用 权限
/tmp/mem.swap file 4194300 0 -1
/dev/sda3 partition 2097148 0 -2
[root@localhost cs408]# free -m
total used free shared buff/cache available
Mem: 3784 2561 684 8 538 1006
Swap: 6143 0 6143
[root@localhost cs408]# cat /proc/swaps
Filename Type Size Used Priority
/tmp/mem.swap file 4194300 0 -1
/dev/sda3 partition 2097148 0 -2
[root@localhost cs408]#

以上不难看出,第一、三两种方法效果相同。linux/unix的一个奇妙之处也在此,很多命令和直接查看某些文件或更改某些文件的值,效果是一样的。

以上操作,在系统重启后,swap文件的大小又会变回原大小,我们可以在/etc/fstab里增加下面的配置,使其重启后,我们刚刚的配置仍然有效。

vim /etc/fstab
/tmp/mem.swap             swap                    swap    defaults        0 0

如果想卸载掉上面的分区,可以通过swapoff完成:

swapoff /tmp/mem.swap

2  通过fdisk增加swap分区

该方法和方法1主要操作步骤大同小异。不过该方法要求硬件目前有未分配的空间。

2.1 我们先通过fdisk新增分区

fdisk  /dev/sda
Command (m for help): n

通过n新建分区,选择为主分区,分区ID为82,即swap分区。保存退出。

2.2 接着对新建的分区进行格式化并挂载

mkswap /dev/sda4
swapon /dev/swap

完成后,参照方法一里的查看方法进行查看确认。新增完成后,在/etc/fstab里新增如下配置

/dev/sda4             swap                    swap    defaults        0 0

(转)Linux下增加交换分区的大小的更多相关文章

  1. linux下增加swap分区

    Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM ...

  2. Linux下swap(交换分区)的增删改

    swap介绍 Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合.交换分区的作用是,当系统物理内存吃 ...

  3. Linux之添加交换分区

    Linux下的交换分区我们可以随意改变大小,如果说日常生活中分区不够用,今天我们来举个例子如何添加. 1.首先是使用dd命令创建一个空文件,这个空文件的大小就是你要继续添加的swap的大小,比如我这里 ...

  4. Centos7不修改默认交换分区下添加交换分区

    交换分区介绍 Linux系统中的交换分区是当物理内存(RAM)被充满时,作为物理内存的缓存来使用. 当系统需要更多的内存资源而物理内存已经充满,内存中不活跃的页就会被移动到交换分区上. 交换分区位于硬 ...

  5. linux两种增加交换分区(swap)的方法

    在安装Oracle后,为使Oracle流畅运行,需要手动增加linux的交换分区(相当于Windows下的虚拟内存)的大小,本文介绍两种增加交换分区(swap)的方法. 第一种方法:新建分区 1.fd ...

  6. centos7.0下增加swap分区大小

    承接上篇文章扩容磁盘空间后增加根分区的大小后,来扩容swap分区的空间 检查当前的swap分区情况 # free -m # free -g [root@localhost ~]# free -m to ...

  7. linux中增加swap分区文件的步骤方法

     一.swap交换分区 Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临 ...

  8. linux下硬盘的分区:

    提到硬盘的分区,以前就是很乱,有什么主分区/扩展分区/逻辑分区等;它们有什么区别呢?现在简单的了解一下: 由于在MBR的主引导记录中的分区表里面最多只能记录4个分区记录,这个不够用啊,为了解决这个问题 ...

  9. Linux下调整根目录的空间大小

    原文 一.目的 在使用CentOS6.3版本Linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整.首先,先来查看一下系统的空间分 ...

随机推荐

  1. Deep Q-Network 学习笔记(一)—— Q-Learning 学习与实现过程中碰到的一些坑

    这方面的资料比较零散,学起来各种碰壁,碰到各种问题,这里就做下学习记录. 参考资料: https://morvanzhou.github.io/ 非常感谢莫烦老师的教程 http://mnemstud ...

  2. 代码管理器 TFS2013

    多人开发代码管理器肯定是少不了的,出于项目需要在服务器上装了tfs2013用于代码管理,既然用vs进行开发自然选择微软自家的tfs.记录下安装和使用起来的过程. 安装 TFS2013(Team Fou ...

  3. js数组及数组应用(冒泡和二分,遍历输出)

    一.定义:1)var arr=new Array(); 加数据:arr[0]=1; 2)定义同时赋值:var arr=new Array(1,2,3,4,5); 3)调用:var arr=new Ar ...

  4. java排序算法之冒泡排序

    冒泡排序的基本思想即将一串数字进行由小到大进行排序 例如1,9,7,2,4,3,6,10,20,5 实现思路: 第一个数分别与接下来的数字做对比 第一次  1<9不变,再1<7不变,1&l ...

  5. 原始js调用 选中事件

    curRadio.get(0).checked=true;//原始js调用 选中事件,curRadio是radio单个对象

  6. js中的字符替换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. python中的字符串编码

    获取字符串的编码类型: encodingdate = chardet.detect(str) chardet用于实现字符串的编码类型检测 chardet的下载地址:https://pypi.pytho ...

  8. 在ASP.NET CORE 2.0使用SignalR技术

    一.前言 上次讲SignalR还是在<在ASP.NET Core下使用SignalR技术>文章中提到,ASP.NET Core 1.x.x 版本发布中并没有包含SignalR技术和开发计划 ...

  9. 【转】Header Only Library的介绍

    什么是Header Only Library Header Only Library把一个库的内容完全写在头文件中,不带任何cpp文件. 这是一个巧合,决不是C++的原始设计. 第一次这么做估计是ST ...

  10. Google调试工具

    f11 逐语句,到过程里,f10逐过程,跳到下一个off,f8调到下一个断点执行.