我知道这已经被讨论过很多次了,但是在互联网上有很多不同的观点认为优化对SSD有好处(以及是否使用它们)。此外,这项技术已经进步,其中一些建议可能已经过时。
上的空闲空间
这似乎仍然相关,但根据ycombinator讨论中的用户权限:
您不必过多提供未分区的空间,并保留20%的分区空闲空间。这是一个或另一个,重点是有足够的自由空间,以适当的磨损平整。
另一方面,ArchWiki和南惠在这篇文章中都没有提到这一点。舒伊林还有什么建议呢?
南惠同时提供咨询服务,ArchWiki和舒伊林在ycombinator中只向用户和用户提供建议:
诺蒂姆:这是旧的,用相对的。
根据手册页,这是自Linux2.6.30以来的默认行为。
这可能是最大的混乱
/etc/rc.local
运行trim。不要使用discard
挂载选项。fstrim.service
和fstrim.timer
。警告有关discard
。discard
选项。ArchWiki,南惠,舒伊林建议将浏览器缓存移动到内存中。这在ycombinator中通常是不同意的。
似乎每个人都同意使用Deadline
或NOOP
,而不是默认的CFQ
。但是,我不清楚什么时候使用Deadline
,什么时候使用NOOP
(这是文件系统/SSD供应商依赖的吗?)
不久之前,有人告诉我完全禁用交换(哇:D)。根据ArchWiki,南惠和舒伊林设置了vm.swappiness=1
。
我对所有这些选择感到有点困惑。到目前为止,我只使用了其中的几个。我没提到什么重要的事吗?某些Linux发行版会自动执行上述一些操作吗?
参考文献:
发布于 2015-11-24 04:07:26
重新配置-所有您需要确保的是,SSD本身有足够的块,它知道是未使用的。不重要的是,它是否知道,因为( a)它们未被使用,因为它们处于未分区的空间,因此它们从未被操作系统写入,或者( b)它们被写入了零,而SSD固件实现了用于检测和考虑它们未分配的特性,或者( c)它们是丢弃(Trim)操作的目标。任何(而且只有)其中之一都是非常可取的。
Re noatime:我发现我个人并不关心文件的最后访问时间,我使用的软件似乎也不关心。所以我用'noatime‘来装所有的东西。在互联网上,如果使用“noatime”,就会有一些模糊的未命名程序出现故障,但我从未见过这样的程序。
重新修剪/丢弃:你应该定期运行fstrim。如何调用它并不重要,但它被调用的频率有多频繁也很重要。在每次引导时运行它(如使用rc.local )可能会过多,除非您非常不频繁地重新启动,或者使用,然后释放磁盘空间,或者两者兼而有之。不要使用“丢弃”挂载,因为它会导致内核在释放时间块附近执行TRIM操作,这可能会导致您注意到延迟的增加。您不太可能注意到或关心凌晨3点运行的cron作业我想,每个月一次就足以应付一般的桌面工作负荷,或者一周一次的桌面工作负载。我不知道有什么完美的方法可以知道什么时候使用fstrim,因为块分配的细节通常是由驱动器固件隐藏的。如果你观察到驱动器的性能明显减慢,尝试一下会是件好事。如果你没有注意到慢下来,你可能不需要做任何事情。
Re I/O调度器-测试您所关心的工作负载。经验证据是无可替代的。
现在内存交换很便宜,所以我和我的雇主购买了大量的内存--至少每台我为家用而建的机器有16 so,在工作的服务器上至少有256 so。对于我在家里和工作中遇到的所有机器上的所有工作负载,所有的东西都可以舒适地放在RAM中,还有足够的空间用于缓存。因此,我在家里和工作中都禁用了交换。此外,使用交换将导致性能下降,这对我和我们的用户来说都是不可接受的,因此会导致我或我的雇主紧急去购买更多的RAM。因此,我从来不想使用交换-它试图隐藏一个缺乏内存的问题,我宁愿解决。我不能对你的立场发表评论。我想可能是相似的。
最后,我禁用,甚至卸载许多服务,这些服务是默认情况下在流行的Linux发行版上安装和启用的。这节省了一些虚拟内存,但也许更重要的是,它能使机器“变硬”以抵御攻击。如果这样做是虔诚的,那么在不牺牲性能的情况下,RAM中应该没有什么是没有价值的,可以交换到磁盘上。
https://unix.stackexchange.com/questions/243458
复制相似问题