我使用 2G 的tmpfs
for /tmp
dir 来提高 java 单元测试的性能:它们在/tmp
.
这是/etc/fstab
文件中的我的 tmp 部分:
tmpfs /tmp tmpfs rw,noatime,size=2G,nodev,mode=1777,noexec,nosuid,rootcontext=system_u:object_r:tmp_t 0 0
几乎总是工作正常,但有时我需要 2G 以上的磁盘空间/tmp
。当某些应用程序下载更新时通常会发生这种情况。在这种情况下,性能对我来说并不重要,因此我想将其写入物理卷或环回文件。
tmpfs
如果/tmp
目录大小小于 2G,是否可以使用并在需要时使用其他文件系统进行扩展?
答案1
如果你只是需要改变临时文件系统尺寸,您可以在线重新安装新尺寸:
mount -o remount,size=<new size> /tmp
另外,系统上要有足够大的交换空间。当可用的空闲 RAM 较低时,内存(包括 tmpfs)将被分页到交换区。
交换不会减慢您的系统速度,内核首先交换最少使用和缓存的内容,并且可以通过vm.swappiness
参数调整平衡。有关 的详细解释vm.swappiness
,请参阅为什么 swappiness 默认设置为 60?。如果系统由于活动页面被交换而开始变慢,则原因不是交换;原因是您的系统内存不足。
您可以通过创建交换文件来增加总交换空间(注意:您不能将交换文件放置在BTFS文件系统)。创建并分配一个新文件,dd
并将其设置为交换区域mkswap
。确保交换文件不是世界可读的,您不想泄漏内存内容。
dd if=/dev/zero of=<swap file> bs=1M count=<size>
chmod 600 <swap file>
mkswap <swap file>
并启用它:
swapon <swap file>
您还可以将交换文件添加到系统表使其自动可用。