linux – 使用tmpfs为/ tmp而不是常规文件系统的一个非常大的交换分区?

我有 Linux服务器,我有一个备用的500GB磁盘分区.我想格式化它并将其用于/ tmp.服务器偶尔会运行一些大型数据处理任务,因此可能会发生/ tmp将保存GB的临时数据.

然后我有一个想法,相反我可以将其添加为交换分区,并将/ tmp挂载到tmpfs.这个想法合理吗?

服务器有6GB的RAM,因此在大多数情况下/ tmp上的数据只能在RAM中,具有明显的速度优势.问题是,如果在/ tmp上有10-20GB的数据会怎样,系统将如何执行?简单地将/ tmp挂载到ext4分区相比,性能会是什么?感谢帮助.

编辑:很明显,当tmpfs的使用达到RAM限制时,系统将开始交换内存.但Linux是否足够智能交换tmpfs数据并在RAM中保留“常规”数据?如果是,那么我认为它可以表现得相当合理.如果没有,那么整个系统将受到严重影响.

解决方法

这不是一个好主意.

你可以使用像这样安装的大/ tmp分区(来自你的/ etc / fstab)

tmpfs  /dev/tmp  tmpfs  defaults,nosuid,nodev,noexec,noatime,nodiratime,size=6000M 0 0

您可以将外部驱动器添加为巨大的交换分区

/dev/sdb1  swap  swap  defaults  0 0

当达到极限时,您的机器将开始将页面从RAM交换到磁盘 – 此时,平均负载将通过顶部,机器将停止运行.

以任何方式依赖SWAP是一个坏主意,你最好卖掉你的500GB硬盘,只需购买更多的RAM – 它便宜.

综上所述

如果你真的想要使用你的500GB磁盘,你可以在/ tmp上使用非日志文件系统安装500GB磁盘,并禁用atime和diratime(例如ext2).这比处理SWAPing的机器快得多

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...