Linux如何分区

1、分区字符的意义

Linux下所有的存储、分区在/dev目录下,可以从名字直接理解其意义,比如

/dev/xxyn

xx :什么类型的设备。hd或者sd
y:设备插在主板上的第几个接口
n:第几个分区。主分区1--4,逻辑分区从5开始

查看所有的分区大小

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3.9G 300M 3.4G 8% /
/dev/sda7 100G 188M 95G 1% /data0
/dev/sdb1 133G 80G 47G 64% /data1
/dev/sda6 7.8G 218M 7.2G 3% /var
/dev/sda5 7.8G 166M 7.2G 3% /tmp
/dev/sda3 9.7G 2.5G 6.8G 27% /usr
tmpfs 2.0G 0 2.0G 0% /dev/shm

2、挂载点

Linux下所有设备是被认为一个文件,不能直接cd进入,需要挂载后才能进入

查看磁盘情况

fdisk -l

临时挂载,默认挂载点建立在 /mnt 下

mount /dev/cdrom /mnt/test

永久挂载

vi /etc/fstab

/dev/sdb1 /mnt/test ext3 defaults 0 0

取消挂载(设备名或者挂载点都可以)

umount /dev/cdrom
或者
umount /mnt/test

 

3、操作系统如何分区

最简单的分区方案

分区类型     分区大小
/boot     128M (启动分区)
swap     x (交换分区,具体需要计算,一般为物理内存的2倍)
/     all (如果是单个硬盘的话,直接挂一个,如果多个的话可以考虑分开挂载)

web服务器的分区方案

分区类型     分区大小
/boot     128M (启动分区)
swap     x (交换分区,具体需要计算,一般为物理内存的2倍)
/     50G (操作系统分区,存放操作系统文件,安装软件,工具)
/opt     all (剩下的所有,用来存放数据和安装WEB服务软件,如JDK、tomcat)


------------------------------
一般来说可以按照如下规则设置swap大小:

4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。

4-8G的物理内存,SWAP 等于内存大小。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G

 

4、参考资料

4.1、swap分区大小是怎么确定的?

其实swap分区的大小设置是很考验Linux系统管理员水平的一件事情,swap的大小是这样决定的

( 内存大小 Swap分区大小 ) * 80%或70% >= 程序需要占用总内存数 如果系统内存大小已经大于系统中所有任务最大内存使用大小,那么就根本没有必要设置swap分区了,如果这个时候设置上,那么就是白白占用了那些硬盘空间(当然,如果硬盘足够富裕,可以忽略这些占用了)。

那么有的管理员就会说了:我不知道我系统中所有任务最大内存使用大小是多少啊!

我在这里给你一个方法,可以找到这个大小是多少,下面跟着我一步一步来:
1、用swapoff 关掉所有swap 然后正常运行任务,如果出现内存不足的提示,就需要逐步增加swap
2、一般来讲,物理内存达到256m,在安装时即可不用划分交换分区.。
3、可以在安装后建立交换分区,或者建立交换文件。
BTW:swap还有一个用处,就是在机器lock,出现问题的时候内存的内容会自动copy到swap上面,这样可以有效防止机器故障带来内存中的内容忽然丢失的情况。

4.2、为什么swap分区不宜过大?

为什么 swap 分区不宜过大,这是由于 Linux 内存分配的特点——它会尽可能多地使用内存(包括swap 分区)。尽量使用内存的目的是加快 IO 处理的速度,比如关掉一个程序,原先占有的内存空间并不立即清空,下一次打开时就不用去硬盘找数据,而直接从内存中读取。但是如果虚拟内存过大,那么保留在内存缓冲区中的数据实际上还是在硬盘中,那对于加快速度就没有多大的作用了。

swap 分区对于物理内存小的机器是必不可少的,假设物理内存只有64M,而某个程序启动最少要256M,如果没有足够的虚拟内存,这个程序是根本打不开的(系统会报内存不足错误,甚至崩溃)。对于程序而言,物理内存和虚拟内存是没有任何区别的,它们只关心空间是否够大。在物理内存够用的情况下可以适当分配一些空间给 swap ,这仅仅是为了偶尔同时开很多大家伙时,防止出现内存不足错误。 三、swap是一个大分区还是多个小分区?

我记得有人说过在fedora和debian的文档中看到过说明,建议swap分区大小不要超过2G。

为什么是2G呢?我觉得首先是由于32位机的文件偏移指针是个无符号整型,所以单个文件偏移最大到2的31次方,也就是2G。其次,旧的文件系统对大文件的支持并不是很好(有点类似Windows环境下FAT文件格式不能有文件大小限制),所以在文档中建议swap分区大小不超过2G(要知道swap是可以在运行过程中动态加载swap文件的)。

如果各位使用的是2.4 内核或者64位的系统,那么可以放心地把swap分区设置的足够大,IBM在针对其Linux 2.4 kernel的文档中明确表明,2.4.10及以后的linux kernel,支持的每块swap最大不超过24GB。

Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序 使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢 复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。

分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。

如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生 出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。

通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有 不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服 务器,随着访问量的增加,对Swap空间的要求也会增加,具体配置参见各服务器产品的说明。

另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式 操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处 于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的

看了这么多,再想想有时在论坛中的有的人说的他们的内存很大而没必要使用swap分区,别人10台机器能解决的问题,我们若合理使用swap分区,使用8台机器能解决的问题,何乐而不为呢 ?