共 1 篇文章

标签:Linux轻松创建swap文件,优化系统性能。 (linux创建swap)

Linux轻松创建swap文件,优化系统性能。 (linux创建swap)

Linux轻松创建swap文件,优化系统性能 Linux的优点在于其开放源代码和高度的自由度,但是在一些旧的、低价值的服务器和虚拟机上,内存容量可能有限。这时就需要通过启用swap文件来优化系统的性能。 Linux的swap文件是一个虚拟内存文件,它运行于硬盘上,当系统内存不够用时,会将部分内存存储到swap文件中。通过这种方式,系统可以使用更多的内存,从而更好地运行程序和服务。本文将介绍如何轻松地创建swap文件。 步骤1: 检查系统的可用内存 在创建swap文件之前,我们需要检查系统中可用的内存。可以使用以下命令来查看: “` free -m “` 此命令将显示系统可用内存,单位为M(兆),包括物理内存和交换分区。 步骤2: 创建swap文件 使用以下命令创建swap文件: “` sudo fallocate -l [文件大小]G /swapfile “` 这里,[文件大小]是您要设置的swap文件大小,通常建议设置为您系统物理内存的两倍。例如,如果您的系统物理内存为1GB,则建议将swap文件大小设置为2GB。使用fallocate命令可以更快地创建swap文件,而不是使用dd命令。 步骤3: 格式化swap文件 创建好swap文件之后,我们需要将其格式化为SWAP文件系统: “` sudo mkswap /swapfile “` 步骤4: 启用swap文件 我们需要在系统中启用swap文件,以便系统可以使用它: “` sudo swapon /swapfile “` 可以使用以下命令来验证swap文件已启用: “` sudo swapon -s “` 此命令将显示已启用的交换分区。 步骤5: 设置swap文件自启动 为了保证swap文件在系统启动时自动启用,我们需要将其添加到fstab文件中: “` echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab “` 现在,每次系统启动时都会自动启用swap文件。 通过创建swap文件,Linux系统可以更好地管理内存,并允许用户在某些情况下使用更多内存。这是Linux使用swap文件的原因。 在一些物理内存较少,且需要运行许多服务的服务器上,使用swap文件是极其必要的。在本文中,我们讲述了创建swap文件的步骤,以帮助您优化您的Linux系统性能。 相关问题拓展阅读: Linux内存机制(swap) Linux内存机制(swap) 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念。 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space)。 作为物理内存的扩展,linux会在物理内存不足时,使用交换分区的虚拟内存,更详细的说,就是内核会将暂时不用的内存块信息写到交换空间,这样以来,物理内存得到了释放,这块内存就可以用于其它目的,当需要用到原始的内容时,这些信息会被重新从交换空间读入物理内存。 Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将凯巧型经常使用的信息保留到物理内存。 要深入了解linux内存运行机制,需要知道下面提到的几个方面: Linux系统会不时的进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么事情需要内存,Linux也会交换出暂时不用的内存页面。这可以避免等待交换所需的时间。 Linux 进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,linux内核根据”最近最经常使用“算法,仅仅将一些不经常使用的页面文件交换到虚拟 内存,有时我们会看到这么一个现象:linux物理内存还有很多,但是交换空间也使用了很多。其实,这并不奇怪,例如,一个占用很大内存的进程运行时,需 要耗费很多内存资源,此时就会有一些不常用页面文件被交换到虚拟内存中,但后来这个占用很多内存资源的进程结束并释放了很多内存时,刚才被交换出去的页面 文件并不会自动的交换进物理内存,除非有这个必要,那么此刻系统物理内存就会空闲很多,同时交换空间也在被使用,就出现了刚才所说的现象了。关于这点,不 用担心什么,只要知道是怎么一回事就可以了。 交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页 面,它们又会被马上交换出去,如此以来,虚拟内存中可能没有足够空间来存储这些交换页面,最终会导致linux出现假死机、服务异常等问题,linux虽 然可以在一段时间盯猜内自行恢复,但是恢复后的系统已经基本不可用了。 因此,合理规划和设计Linux内存的使用,是非常重要的. 在Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从磁盘读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写 数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。然而,如果有大量数据需要从磁盘读取到内存或者由内存写入磁盘时,系统的读写性 能就变得非常低下,因为无论是从磁盘读数据,还是写数据到磁盘,都是一个很消耗时间和资源的过程,在这种宽中情况下,Linux引入了buffers和 cached机制。 buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers 与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操 作系统的性能。但buffers与cached缓冲的内容却是不同的。 buffers是用来缓冲块设备做的,它只记录文件系统的元数据(metadata)以及 tracking in-flight pages,而cached是用来给文件做缓冲。更通俗一点说:buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。 为了验证我们的结论是否正确,可以通过vi打开一个非常大的文件,看看cached的变化,然后再次vi这个文件,感觉一下两次打开的速度有何异同,是不是第二次打开的速度明显快于之一次呢?接着执行下面的命令: find / -name .conf 看看buffers的值是否变化,然后重复执行find命令,看看两次显示速度有何不同。 上面这个60代表物理内存在使用40%的时候才会使用swap(参考网络资料:当剩余物理内存低于40%(40=100-60)时,开始使用交换空间) swappiness=0的时候表示更大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。 值越大表示越倾向于使用swap。可以设为0,这样做并不会禁止对swap的使用,只是更大限度地降低了使用swap的可能性。 通常情况下:swap分区设置建议是内存的两倍 (内存小于等于4G时),如果内存大于4G,swap只要比内存大就行。另外尽量的将swappiness调低,这样系统的性能会更好。 B. 修改swappiness参数 永久性修改: 立即生效,重启也可以生效。 一般系统是不会自动释放内存的 关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义: 0 – 不释放 1 –...

技术分享