1查看swap分区大小的命令:”free -m“
2、选择适合的分区,创建适合的swap文件,命令为:”dd if=/dev/zero of=/swap1 bs=1M count=2048“
3、将生成的文件设置为swap分区文件,命令:”mkswap /swap1“
4、激活新创建的swap分区,命令:”swapon /swap1“
5、查看生效的swap分区大小,命令:”free -m“
6、设置开机启动新创建的swap分区,编辑”/etc/fstab”配置文件,在文件末尾添加” /swap1 swap swap defaults 0 0“
1、检查当前的分区情况:
[root@localhost]#free -m
2、增加交换分区文件及大小,如果要增加2G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。
[root@localhost]# dd if=/dev/zero of=/home/swap bs=1024 count=2048000
3、设置交换文件:
[root@localhost]# mkswap /home/swap
4、立即启用交换分区文件
[root@localhost]# swapon /home/swap
5、如果要在引导时自动启用,则编辑 /etc/fstab 文件,添加行:
/home/swap swap swap defaults 0 0
系统下次引导时,它就会启用新建的交换文件,再查看SWAP分区大小发现增加了2G。
批量删除linux下文件夹命令如下:
比如我要删除/var/www/html这个文件夹的话可以使用以下命令:rm -Rf html
然后在ls查看发现没html这个文件夹了!
为了突破物理内存的限制,在操作系统中实现了“虚拟内存”技术。它使得应用程序可以操纵大于实际物理内存的空间。而且虚拟内存可以用来隔离每个进程,成为进程的安全保护网,使得每个进程都不受其他程序的干扰。如果swap空间不够会产生什么负面作用呢简单的来说,如果系统的物理内存用光了,系统就反映速度会变得很慢,但是操作系统仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程或线程,如果Swap空间用完,则服务进程无法启动,就会出现swap空间不足的错误,严重时会造成服务进程的死锁。可见Swap空间的分配是很重要的。如果swap空间太小会造成应用程序错误,而不光光是性能下降的问题。
在Linux系统下,这个虚拟内存就被叫做swap。在安装操作系统的时候,安装向导会提示用户需要创建多少的swap空间。通常情况下,swap比较合适的大小为物理内存的1-2倍。但是有些应用程序的话,对于swap分区比较饥渴,如JAVA或者Oracle应用程序,他们要求swap分区的大小能够达到物理内存的2倍以上。此时原先在安装系统的时候为其分配的swap分区就太小了。那么该如何补救呢
笔者以前就遇到过类似的问题。有一台Linux服务器,上面已经部署了文件服务器。后来出于部署ERP系统的需要,要在这台服务器上部署一个Oracle数据库系统。不过Oracle数据库系统对swap的空间有要求。如果不满足这个要求的话,Oracle操作系统无法安装。而笔者不能够通过重装Linux服务器的方式来扩展swap空间,因为上面还运行着文件服务器。为此笔者只好通过其他途径来实现这个需求了。针对这种情况,Linux系统提出了两种补救措施,分别为创建新的swap空间和创建swap 文件。笔者是通过创建swap文件的方式来调整swap空间的。如上图所示,笔者就在home目录下创建了一个swap文件,并且通过启动配置文件让其随着系统的启动而自动启用。如此配置之后,Oracle数据库系统就可以顺利安装了。
这两种调整方式的具体的实现方式如下所示。
措施一:创建新的swap空间,增加swap容量。
如果在Linux服务器的硬盘中还有比较多的空余容量,或者系统管理员添置了新硬盘,此时就可以利用Linux系统自带的fdisk硬盘格式化工具,来创建新的swap分区。具体的操作如下:
第一步:创建新的分区。如笔者在服务器硬盘中还有一个20G的分区没有使用过,就可以利用fdisk磁盘格式化工具,来创建新的分区。具体fdisk命令的使用方法大家可以参考其它的相关资料,笔者在这里就不过多展开了。在使用这个工具的时候,如果要把分区设置为swap分区,则需要注意要把空间设置为扩展分区。然后再在扩展分区上设置一个逻辑分区。如此的话,为后续维护与管理提供了方便。如管理员可以陆续增加swap空间等等。
第二步:将分区的文件系统设置为swap文件系统。
默认情况下系统新增加的分区其文件格式为ext3。为了让这个分区成为swap分区,则需要把这个分区的文件格式改为swap文件系统。这个任务也是在fdisk命令中完成。如果要把这个分区格式改为swap,则在fdisk命令执行时,当提示hex code时,系统管理员需要输入swap文件系统的代号。通常情况下swap文件系统的代号为82。然欧再继续后续的工作。如果不修改的话,则系统默认会采用ext3文件系统格式。
第三步:格式化并启动swap分区格式。当fdisk命令执行完毕后,还必须重新启动计算机,刚才的设置才会生效。但是,fdisk命令只是划分出了一个swap分区,系统还是无法使用这个分区,因为这个分区还没有格式化与启动。与微软操作系统一样,当划分出一个分区之后,系统管理员还需要格式化这个分区。为此,系统管理员需要通过mkswap命令来对刚才划分的swap分区进行格式化。不过与微软操作系统不同的是,对分区格式化之后,这个新的分区默认情况下是没有启动的,第一次需要通过系统管理员手工启动它。此时系统管理员需要采用的命令是swapon,来启动swap分区。
通过以上简单的三个步骤,就可以在硬盘为用的空间中或者新添加的硬盘中增加一个swap分区,以实现扩大swap分区容量的目的。不过这里需要注意一点,在使用fdisk工具的时候,会把目标空间中的内容都删除。为此只有当目标空间中没有存储文件或者存储的文件不再需要时才使用这种方法。如果现在系统中没有未使用的空间;但是已有的分区中则有多余的空间,则就需要采用另外一种方法,即通过增加swap文件的方式来调整swap空间容量。
措施二:创建swap文件调整swap容量。
当系统中的硬盘空间已经全部分配给其它分区,此时就不适合采用fdisk命令来增加swap分区的容量。因为这个命令会删除目标空间的文件。遇到这种情况时,系统管理员需要采用创建swap文件的方式来增加虚拟的swap空间。简单的说,就是在硬盘中创建一个虚拟的swap文件。通过这个文件让其在系统硬盘中划分出一个空间,供swap空间使用。
第一步:创建swap 文件。
系统管理员可以利用“dd bs= count=”这个命令来创建swap文件。这个命令中主要采用了bs与count两个参数。其中bs参数制定每次读取及输入多少个字节。因为硬盘存取的最小单位为扇区,所以设置bs参数就相当于设置每个扇区的大小。通常情况下这个参数设置为32为好。参数count则主要是用来设置可以使用扇区的数量。所以这个文件所占用的空间就是以上连个参数的乘积。这里需要注意的是,如果要增加swap文件容量,往往是通过调整count参数来实现的。也就是说,bs参数一般就是32,不需要去动它。
第二步格式化并启动swap 文件。
跟上面的方法一样,建立好文件之后还需要格式化这个文件并启用它。这主要是因为到现在为止,这个文件用的还是硬盘中原来的文件系统格式,如为ext3等等。这个文件系统格式是不能够用来做swap分区的扩展的。为此系统管理员需要先通过mkswap工具把这个文件格式化为swap文件格式。然后再使用swapon命令启用这个文件。这个特性有点像微软操作系统中的动态磁盘的概念。
虽然这两种方式都可以解决swap分区过小的问题,但是这跟在安装操作系统的时候划分swap分区还是有一定的区别。如通过以上两种方式建立的swap分区,不会随着系统的重新启动而自动启动。而系统安装时设置的swap分区则会在开机时自动启动。如果每次开机后都要手工执行swapon命令来启动swap分区或者文件的话,那么这也太麻烦了。为了解决这个问题,就需要修改Linux系统的启动配置文件。如系统管理员可以在启动配置文件中加入一行内容,让Linux系统开机时自动启动swap分区以及文件。除了这个自动启动以外,在性能上也有一定的差异。特别是通过swap文件来创建虚拟的swap空间,其执行性能要比真实的swap空间性能要差一点。不过其好处是不会对现有分区中的文件造成影响。
所以虽然Linux官方检疫Swap空间的容量为内存的1-2倍。但是在实际工作中有些应用程序则对此提出了特殊的要求。为此在Linux系统安装完毕之后,系统工程师有时还不得不对swap容量进行调整。以上两种方式是比较简单使用的调整方式,系统管理员可以尝试着使用。相信能够给大家带来意外的惊喜。
前几天尝试用一台新的服务器进行开发,运行两个Node进程后CPU占用率直接上升到100%,开始以为是Node版本问题,切换版本后仍存在这个问题,使用 top 命令查看运行中进程,发现一个名为 kswapd0 的进程占用极高的CPU,这个进程的作用其实是在内存不足时将暂时用不到的数据转存到虚拟内存(Swap分区),而刚好我的服务器没有设置Swap分区,才导致CPU占用率过高,看来问题的原因找到了,接下来只需要设置Swap分区即可。
如果没有任何输出,表明系统没有配置swap
确保有足够的空间创建Swap分区
以上命令会在根目录创建大小为1G的文件,大小可根据需要进行调整,一般取和内存一般大小
验证是否创建成功
修改分区文件的权限,只允许 root 用户进行读取
将其标记为swap分区
启用分区,允许系统开始使用
再次检查系统分区
如果输出类似
表示分区已经创建成功
目前已经在当前会话的启用的swap分区,但是如果系统重新启动,分区就会消失,我们可以通过修改 /etc/fstab 的配置来使分区持久化
swappiness 参数配置系统使用swap分区的频率,数字越小,系统对swap的依赖越小,如果设置为接近0的数字,那么内核只有在绝对必要情况下才会将数据交换到磁盘。应为和硬盘交换数据比RAM慢的多,所以这个数字越小,通常会让系统加快
查看当前swappiness
临时修改swappiness
永久修改(推荐)
/etc/sysctlconf
增大 vfs_cache_pressure 的值会让系统倾向于删除缓存中inode和dentry信息,进而导致系统频繁访问文件系统,我们可以通过输入以下内容将其设置为更保守的设置,例如50:
只在当前会话生效
永久修改(推荐)
/etc/sysctlconf
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用
它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存SWAP分区只是临时的解决办法
qlinux下得分区推荐一个交换分区,一个根分区,其中交换分区如上所说作为redhat或者其它虚机所划分的内存不够时候来使用!
交换分区(swap)的合理值一般在内存的2 倍左右,可以适当加大。实际上具体还是以实际应用为准,swap为内存的2倍也不过是一种以讹传讹的说法。如果交换分区的使用都超过4GB以上了,可想而知服务器的性能应该差很多了。
Linux下可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。
欢迎分享,转载请注明来源:品搜搜测评网