我的服务器有2GB RAM和120GB SSD,以及一些RAID阵列用于存储。操作系统是Debian 8(Linux 3.16)。
我有一个MySQL密集型应用程序,它具有tmpdir
= /run/mysqld
,tmpfs
由Debian通过/etc/default/tmpfs
以下命令配置:
# Size limits. Please see tmpfs(5) for details on how to configure
# tmpfs size limits.
TMPFS_SIZE=40%VM
以前是20%VM
,大约为384M。我遇到了几个no space left on device
,所以我将其增加到40%VM
,但是即使有大约763M,它仍然太小。
现在,我现在应该添加更多的RAM,但是出于好奇,我想知道这里的限制。
/dev/sdd1
上安装/
有大约50GB的可用空间,并且速度相当快(三星850 EVO SSD)/dev/sdd5
是我的交换分区,它是3.7G(fdisk类型ID为82)TMPFS_SIZE
设置为40%VM
,表示/run
为763M
现在我知道tmpfs可以交换了,这对我来说很好。我希望MySQL尽可能写入RAM,但是如果需要更多内存,我可以允许系统在SSD上交换它。
因此,通过我的设置,我可以将/run
其设置为:
- 300M大吗?是。这是默认设置。
- 1.5GB大?是的,尝试过,MySQL占用了高达1.3GB的存储空间,并且该系统运行正常。但这还不到物理内存+交换分区的一半。
- 2.5GB大?这不只是物理内存,而是少于物理内存+我的交换分区的一半。
- 4GB大?这将完全适合一半的物理+交换
- 更多?像10GB?它可以利用可用空间
/
交换更多吗?
我猜测安全的经验法则是TMPFS_SIZE
不要大于swap +一半的物理内存。我可以在不增加交换分区的情况下超越此范围吗?
另外,可以放进200%VM
去/etc/default/tmpfs
吗?我读过的书tmpfs(5)
不知道我是否可以在这上面投入100%以上的费用。
最后,我应该改/etc/fstab
而别碰/etc/default/tmpfs
吗?
(据了解,我仅使用来完成此操作mount -o remount
,但尚未重启服务器)
编辑:对于最后一个问题,我知道可以/可以对其进行修改/etc/fstab
(请参见手册页下面的报价),但是我想知道最佳实践,因为/etc/default
到目前为止我从未接触过任何东西。
通过在/ etc / fstab中创建合适的条目,可以使用更复杂的安装选项。