如何为已安装的linux操作系统设置swap分区
发布网友
发布时间:2022-04-20 14:51
我来回答
共2个回答
热心网友
时间:2022-04-10 22:47
linux调整swap的方法大致有三种:1.如果linux的磁盘分区类型是lvm的类型的话建议直接用lvm进行在线的扩展收缩swap的大小。2.在标准分区小我们可以使用我们的划分分区的方法加入swap中。3.标准分区小我们可以使用文件的方式把swap的分区扩大。分区扩展:fdisk/dev/hdan···(创建分区)mkswap/dev/sda3(指定该SWAP分区)swapoffswapon/dev/hda3(开启swap分区)vim/etc/fstab(写入开机启动)free-s文件扩展:查看目前系统swap:swapon-s决定SWAP文件的大小,先指定区块大小:bs,再指定区块数量count,则SWAP文件的大小是:count*bs在root用户下执行如下命令:ddif=/dev/zeroof=/swapfilebs=1Mcount=2048指定作为交换区的文件:mkswap/swapfile激活交换区文件:swapon/swapfile开机时启用swap,在/etc/fstab添加如下内容:/swapfileswapswapdefaults0确认swap已经被使用,另外在/目录可以看到文件swapfile基本上的操作是这个样子的建议您查看下linux就该这样学的相关资料,希望能够帮助您,注意swap的大小要适中
热心网友
时间:2022-04-11 00:05
在日常应用中,通过上述命令看到交换空间的使用情况为0,那么你就不需要很大的虚拟内存,甚至可以完全不需要另辟硬盘空间作为虚拟内存。那么,万一有一天你需要了呢,难道要重装系统?大可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是一个在正常分区下的交换文件。
---------------------------------------------------------------------
1
查看swap
空间大小(总计):
#
free
-m
默认单
位为k,
-m
单位为M
total
used
free
shared
buffers
cached
Mem:
377
180
197
0
19
110
-/+
buffers/cache:
50
327
Swap:
572
0
572
2
查看swap
空间(file(s)/partition(s)):
包括
文件
和
分区
的详细信息
#
swapon
-s
等价于
#
cat
/proc/swaps
3
添加交换空间
两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用,则添加交换文件。
3.1
添加一个交换分区
步骤如下:
a
使用fdisk来创建交换分区(假设
/dev/sdb2
是创建的交换分区)
b
使用
mkswap
命令来设置交换分区:
#
mkswap
/dev/sdb2
c
启用交换分区:
#
swapon
/dev/sdb2
d
写入/etc/fstab,以便在引导时启用:
/dev/sdb2
swap
swap
defaults
0
0
3.2
添加一个交换文件
a
创建大小为512M的交换文件:
#
dd
if=/dev/zero
of=/swapfile1
bs=1024k
count=512
b
使用
mkswap
命令来设置交换文件:
#
mkswap
/swapfile1
c
启用交换分区:
#
swapon
/swapfile1
d
写入/etc/fstab,以便在引导时启用:
/swapfile1
swap
swap
defaults
0
0
新添了交换分区并启用它之后,请查看
cat
/proc/swaps
或
free
命令的输出来确保交换分区已被启用了。
4
删除交换空间:
a
禁用交换分区:
#
swapoff
/dev/sdb2
b
从
/etc/fstab
中删除项目;
c
使用fdisk或yast工具删除分区。
删除交换文件步骤同上。
--------------------------------------------------------------------------------
#
free
-m
total
used
free
shared
buffers
cached
Mem:
377
180
197
0
19
110
-/+
buffers/cache:
50
327
Swap:
572
0
572
Mem
行显示了从系统角度看来内存使用的情况,
total是系统可用的内存大小,
数量上等于系统物理内存减去内核保留的内存.
buffers和cached是系统用做缓冲的内存.
buffers与某个块设备关联,
包含了文件系统元数据,
并且跟踪了块的变化.
cache只包含了文件本身.
-/+
buffers/cache
行则从用户角度显示内存信息,
可用内存从数量上等于mem行used列值减去buffers和cached内存的大小.
因为buffers和cached是操作系统为加快系统运行而设置的,
当用户需要时,
可以只接为用户使用.
top
显示系统运行时的各进程动态、实时的状态(cpu、内存)
top
中有3个列
VIRT
RES
SHR,
标示了进程使用的内存情况.
VIRT
标识这个进程可以使用的内存总大小,
包括这个进*实使用的内存,
映射过的文件,
和别的进程共享的内存等.
RES
标识这个这个进*实占用内存的大小.
SHR
标识可以和别的进程共享的内存和库大小.
vmstat
显示内存的使用情况
这些命令都是从/proc/meminfo中读取内存信息.
关于/proc/meminfo中各行的含意,
在内核源代码的Documentation/filesystems/proc.txt文件中有叙述
系统的真实内存大小可以用
dmesg
|
grep
[mM][eE][mM]看到
/proc/pid/status显示一个进程的详细状态
#
cat
/proc/5346/status
Name:
bash
State:
S
(sleeping)
SleepAVG:
98%
Tgid:
5346
Pid:
5346
PPid:
5343
TracerPid:
0
Uid:
1000
1000
1000
1000
Gid:
104
104
104
104
FDSize:
256
Groups:
6
24
29
44
104
113
1000
1001
VmPeak:
6528
kB
VmSize:
6528
kB
VmLck:
0
kB
VmHWM:
1976
kB
VmRSS:
1976
kB
VmData:
752
kB
VmStk:
84
kB
VmExe:
644
kB
VmLib:
1788
kB
VmPTE:
16
kB
Threads:
1
SigQ:
0/4294967295
SigPnd:
0000000000000000
ShdPnd:
0000000000000000
SigBlk:
0000000000000000
SigIgn:
0000000000384004
SigCgt:
000000004b813efb
CapInh:
0000000000000000
CapPrm:
0000000000000000
CapEff:
0000000000000000
VmSize即为该进程内存总大小,
和top输出中的VIRT一致.