Linux 上功能性(保存一些页面)交换分区或文件的技术最小大小是多少?如果它取决于体系结构,或者取决于物理内存的大小或其他什么,我将如何计算估计值?
我并不是要求建议或现代全尺寸系统的可行尺寸。它能降到多低并且仍能起到交换的作用
答案1
因此,由于标头信息和其他内容,交换文件会产生一些开销。
如果您尝试使用太小的文件...在本例中为 1 字节
# dd if=/dev/zero of=tst1 bs=1c count=1
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.000141358 s, 7.1 kB/s
# ls -l tst1
-rw-r--r-- 1 root root 1 Mar 10 22:19 tst1
# mkswap tst1
mkswap: error: swap area needs to be at least 40 KiB
所以我们至少需要 40k(至少在 x86_64 上的 RedHat 7 上)
# dd if=/dev/zero of=tst1 bs=1c count=40960
40960+0 records in
40960+0 records out
40960 bytes (41 kB) copied, 0.183741 s, 223 kB/s
# mkswap tst1
Setting up swapspace version 1, size = 36 KiB
no label, UUID=4d559295-45c6-4952-8c14-f8eb55f3c201
# swapon tst1
swapon: /home/sweh/tst1: insecure permissions 0644, 0600 suggested.
# cat /proc/swaps
Filename Type Size Used Priority
/home/sweh/tst1 file 36 0 -2
这提供了 36K 的交换空间。
答案2
您可以通过输入以下内容来获取系统的页面大小
getconf PAGE_SIZE
我的系统返回 4096 作为当前页面大小,即 4kB。这也是最小页面大小,在某些系统上,页面可能会大得多。看这个答案更多细节。
话虽这么说,要估计最小功能大小,您应该考虑到交换空间的大小越小(如果正在使用),就会发生更多的页面错误,这会降低计算机的性能,随着越来越多的时间花在从内存中检索页面上。