linux添加swap分区的方法

简介:

  一.swap交换分区

   Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

   用于物理内存不足时,调用硬盘的一部分来充当内存使用,这个就是所谓的虚拟内存。类似Windowspagesfile.sys.

         二.swap分区大小

       分区时一般设定:swap分区的大小=1.5*物理内存容量内存比较小的时候(8G8G以下)可以为内存的1.5-2倍(因为内存小的时候,内存很容易被充满,这个时候就要把交换分区分大点)。

      正常情况下,当内存充足的时候,swap分区是不会被使用的,因此,一旦发生内存充足,而swap使用了很多,说明应用程序等进程有内存泄露,此时就要和开发程序人员一起来分析哪里内存泄露当系统使用swap分区用的越多,系统性能反而会下降,某些大型数据库也可能不使用swap分区,也是可以考虑的,不过,这也会带来内存耗尽,服务直接挂掉的风险。swap是内存不够时的一个缓冲地带。虽然,服务器不会挂掉,这点就仁者见仁了

 

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

1、检查当前的分区情况(使用free -m或cat /proc/swaps ):

1
2
3
4
5
[root@master ~] # free -m
              total       used        free      shared    buffers     cached
Mem:           980        872        108          0         46        726
-/+ buffers /cache :         99        881
Swap:         1499          0       1499

2、增加交换分区文件及大小:
检查没有swap,下面就需要增加:
判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。  

1
2
3
4
5
6
7
8
[root@iZ2zee7gmybverl53rfZ ~] # dd if=/dev/zero of=/var/swap bs=1024 count=1024000
1024000+0 records  in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 27.1894 s, 38.6 MB /s
[root@iZ2zee7gmybverl53rfZ ~] # ll /var/swap 
-rw-r--r-- 1 root root 1048576000 Nov 16 14:20  /var/swap
[root@iZ2zee7gmy40tbverl53rfZ ~] # ll -h  /var/swap 
-rw-r--r-- 1 root root 1000M Nov 16 14:20  /var/swap

 

3.使用以下命令来设置交换文件:

1
2
3
4
5
6
[root@iZ2zee7gmybverl53rfZ ~] # mkswap /var/swap 
mkswap:  /var/swap : warning: don't erase bootbits sectors
         on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=fe9d1189-aaa7-4744-a056-5126ee051632
[root@iZ2zee7gmy40tbverl53rfZ ~] #

 

4.启用交换分区文件:
要立即启用交换文件而不是在引导时自动启用,使用以下命令:
 [root@db2 root]# swapon /home/swap

检查增加后的交换情况: 

1
2
3
4
5
[root@master ~] # free -m
              total       used        free      shared    buffers     cached
Mem:           980        872        108          0         46        726
-/+ buffers /cache :         99        881
Swap:         1499          0       1499

5.加入开机挂载

要在引导时启用,编辑 /etc/fstab 文件来包含以下行(/var/swap               swap                    swap    defaults        0 0 ):

1
2
[root@iZ2zee7gmybverl53rfZ ~] # cp /etc/fstab /etc/fstab.bak    
###操作挂载文件时,一定要备份,否则修改失败时,会造成不能开机的危险。
1
2
3
[root@iZ2zee7gmy40tbverl53rfZ ~] # ll /etc/fstab*                ###备份完毕后,检查是否备份成功
-rw-r--r-- 1 root root 693 Nov 16 14:28  /etc/fstab
-rw-r--r-- 1 root root 617 Nov 16 14:27  /etc/fstab .bak
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@iZ2zee7gmybverl53rfZ ~] # cat /etc/fstab                  ##            修改完挂载文件后查看
[root@master ~] # cat /etc/fstab 
 
#
# /etc/fstab
# Created by anaconda on Mon Sep 25 15:36:47 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=16374817-681c-4c75-95dd-a6fe323ceb03 /                       ext4    defaults        1 1
UUID=53605068-3d62-4c37-9d51-29b9e7927b01  /boot                    ext4    defaults        1 2
UUID=e9e1c650-32df-40be-912b-00231844173a swap                    swap    defaults        0 0
tmpfs                    /dev/shm                 tmpfs   defaults        0 0
devpts                   /dev/pts                 devpts  gid=5,mode=620  0 0
sysfs                    /sys                     sysfs   defaults        0 0
proc                     /proc                    proc    defaults        0 0
/tmp/swap                swap                    swap    defaults        0 0

系统下次引导时,它就会启用新建的交换文件   。       
再次检查添加后的情况:

1
2
3
4
5
[root@master ~] # free  -m
              total       used        free      shared    buffers     cached
Mem:           980        111        868          0          9         27
-/+ buffers /cache :         74        906
Swap:         2499          0       2499










本文转自 蓝叶子Sheep 51CTO博客,原文链接:http://blog.51cto.com/dellinger/1983692,如需转载请自行联系原作者
目录
相关文章
|
1天前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
1天前
|
Linux
Linux如何查询较大文件的方法
【5月更文挑战第8天】Linux如何查询较大文件的方法
12 0
|
1天前
|
Linux 网络安全
xmanager 4 连接SuSE linux server 11方法
xmanager 4 连接SuSE linux server 11方法
|
1天前
|
Linux 虚拟化 Windows
linux之df命令 查看分区大小
linux之df命令 查看分区大小
19 1
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
30 5
|
1天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
16 3
|
1天前
|
Ubuntu Unix Linux
|
1天前
|
安全 Linux 数据安全/隐私保护
【专栏】在 Linux 系统中,掌握查找文件所有者的方法对于系统管理和安全审计至关重要
【4月更文挑战第28天】在 Linux 系统中,掌握查找文件所有者的方法对于系统管理和安全审计至关重要。本文介绍了基本和高级技巧:使用`ls -l`和`stat`命令查看文件详细信息,通过文件路径、通配符或结合`find`、`grep`命令进行查找。实际案例包括查找特定、多个及隐藏文件的所有者。注意权限、文件系统类型和系统环境可能影响查找。了解这些方法能提升 Linux 系统管理效率。
|
1天前
|
存储 安全 Linux
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
【Shell 命令集合 磁盘维护 】Linux 在特定的分区上建立 linux 文件系统 mkfs命令使用教程
35 0
|
安全 Unix Linux
关于嵌入式Linux系统flash分区设计及文件系统格式选择的一些浅见
嵌入式系统应用程序升级是比较频繁的,对于flash的合理划分与文件系统选型就显得尤为关键。
271 0