Macos 如何在Mac OS中修改文件系统缓存的行为

Macos 如何在Mac OS中修改文件系统缓存的行为,macos,caching,filesystems,buffer,sysctl,Macos,Caching,Filesystems,Buffer,Sysctl,我想知道MacOS中是否有与Linux相同的参数: vm.dirty_background_bytes vm.dirty_background_ratio vm.dirty_bytes vm.dirty_ratio vm.dirty_expire_centisecs vm.dirty_writeback_centisecs 通过它们,可以改变文件系统缓冲区/缓存的行为,例如,缓存文件块所需的RAM数量、将缓存刷新到磁盘的时间等。 在linux中,这些参数由sysctl命令修改。在MacOS文档

我想知道MacOS中是否有与Linux相同的参数:

vm.dirty_background_bytes
vm.dirty_background_ratio
vm.dirty_bytes
vm.dirty_ratio
vm.dirty_expire_centisecs
vm.dirty_writeback_centisecs
通过它们,可以改变文件系统缓冲区/缓存的行为,例如,缓存文件块所需的RAM数量、将缓存刷新到磁盘的时间等。 在linux中,这些参数由
sysctl
命令修改。在MacOS文档中,我找不到等效的参数

有什么提示吗


提前谢谢。

是的,几乎和linux一样

您可以使用sysctl命令手动配置每一个,成功后显示旧值和新值(参见图)

您可以检查当前值:

> $ sudo sysctl kern.vm_page_free_min
kern.vm_page_free_min: 147456


> $ sudo sysctl kern.vm_page_free_reserved
kern.vm_page_free_reserved: 16384

您可以将它们配置为在每次启动时使用

  • 只需创建一个新文件:
    sudovim/etc/sysctl.conf

  • 将配置的值放在上面。(下面的值是非常好的值,我目前正在使用它们以获得巨大的内存/缓存/交换管理性能提升)

  • 我建议你用它们

    /etc/sysctl.conf

    在引导后的下一次登录和正常使用期间,性能提升是显而易见的。(如果您的机器因内存不足而冻结,它将不再冻结,请尝试将其冻结为一项挑战;)


    PS:要列出所有参数,请执行
    sysctl-A
    。您提到的那些特定的vm.dirty.*linux参数在MacOS上不存在,我发布给您的那些参数就是用于此目的的等效参数(除了最后一个用于timming压缩的参数,但我将它们放在一起,因为最好启用timming[默认设置为禁用]它与内存管理有关,特别是关于内存压缩机制)。如果您需要其他人或任何其他信息,或任何问题,请随时问我。

    谢谢佩德罗,这很好。我想知道我们在哪里可以找到这些和其他参数的信息。。。苹果公司使用的所有参数都来自MacOS的BSD内核子系统,请在OpenBSD文档和/或源代码中搜索它们。MacOS内核的源代码是开放的,它与BSD内核相同,只有几个附加组件。Apple内核的源代码在这里(所有版本)。如果您想查看它,它包含所有这些设置,但我建议您同时获取OpenBSD并进行比较/阅读。@user1131951获取您要求的文档:使用OpenBSD手册页和技术文档了解每个命令的描述。
    kern.vm_page_free_target=163840
    kern.vm_page_free_min=147456
    kern.vm_page_free_reserved=16384
    kern.vm_page_speculative_percentage=1
    vm.vm_page_background_exclude_external=0
    vm.vm_page_background_mode=1
    vm.vm_page_background_target=163840
    vm.compressor_timing_enabled=1