在Solaris上,/ tmp文件系统是types为“tmpfs”的文件系统。 它是通过虚拟内存池中分配的空间在内核中实现的。 这意味着分配与机器上可用的RAM和交换空间交互。
如果我有一个大小适中的交换分区的大内存机器(大量的RAM),我的/ tmp空间的大小是受内存,交换空间,还是两者总和的限制?
“df -h / tmp”显示的数字似乎并不反映可用RAM,只有交换空间。
这是迄今为止我所知道的。 我会把它放在希望它是有用的,但改进是值得欢迎的。
交换空间和RAM的总和应该可以由/ tmp文件使用。 您可以在tmpfs,mount_tmpfs和swap的手册页中阅读更多关于它的信息。
这里有一些相关的文档:
Oracle Solaris 11.1pipe理:设备和文件系统http://docs.oracle.com/cd/E26502_01/html/E29006/fsswap-29713.html
在tmpfs手册页的末尾,我发现这个:
df(1M) output is of limited accuracy since a tmpfs file sys- tem size is not static and the space available to tmpfs is dependent on the swap space demands of the entire system.
Oracle支持文档1007407.1build议如果此条件成立,则实施报告空间不足:
((RAM + swap - process-space) * .9) - space-from-files-in-tmp = 0
这似乎表明涉及某种模糊的因素。
我对这个公式的解释是运行过程可以更接近记忆+交换的真正极限。 (RAM + swap)中的空闲空间接近10%时,在/ tmp中分配的空间将开始失败。 如果你有大的内存(如128G)和小的默认交换(如4G),那么这意味着/ tmp可以在交换空间分配任何页面之前报告它已满。 没有什么是错的,这只是对传统虚拟内存algorithm和假设的一个奇怪的转折。