Logging 日志记录和SSD 4K写入

Logging 日志记录和SSD 4K写入,logging,serilog,Logging,Serilog,目前我们正在利用Serilog编写一些日志 硬件团队发现我们的SSD磨损得非常快。他们要求我们将每次写入的大小更改为4K的倍数 我发现这样一个特别的要求真的很奇怪。我认为我们应该做的是限制我们正在进行的写入量,而不是指定大小,我们可以将滚动文件追加器设置为将写入/刷新到25K的磁盘,这仍然比将写入到正好8K的磁盘要好 有人能确认写入4K块的乘法是否更好吗?他们可能基于SSD块擦除大小。使用SSD时,只能写入1或0,而不能同时写入两者,因此除非只将块中的0翻转到1或1翻转到0,否则必须擦除整个块。

目前我们正在利用Serilog编写一些日志

硬件团队发现我们的SSD磨损得非常快。他们要求我们将每次写入的大小更改为4K的倍数

我发现这样一个特别的要求真的很奇怪。我认为我们应该做的是限制我们正在进行的写入量,而不是指定大小,我们可以将滚动文件追加器设置为将写入/刷新到25K的磁盘,这仍然比将写入到正好8K的磁盘要好


有人能确认写入4K块的乘法是否更好吗?

他们可能基于SSD块擦除大小。使用SSD时,只能写入1或0,而不能同时写入两者,因此除非只将块中的0翻转到1或1翻转到0,否则必须擦除整个块。擦除会磨损SSD,因此您希望避免一次写入少于一个数据块的数据

某些SSD一次只能写入或擦除整个数据块。它们不能可靠地将数据合并或追加到部分写入的块的末尾,但如果驱动程序足够聪明,并且写缓存策略允许足够的延迟,则有些可以。我过去曾为闪存编写过驱动程序,但我不熟悉当前SSD技术的状态,因此如果有人来教我,我可能不得不撤销这个作为可能的答案

文件系统碎片整理算法/策略也可以在这里发挥作用。在系统的一个非常低的级别上,您可以选择通过允许部分写入的块持久化来浪费大量空间,但这在磁盘资源调配方面可能非常昂贵


很抱歉,这里的答案是多部分的,但我现在的互联网连接非常不可靠

所以你的问题的简短答案是“可能”。这取决于实际设备、块大小的确切大小以及设备和OS/FS功能。您可能需要询问sys admin类型,是否有可以用来改善这种情况的OS/FS配置杠杆。我怀疑,如果可以改进的话,最终会用不同的集群大小重新格式化。因此,硬件专家的解决方案可能是最好的短期解决方案


您的里程数可能会有所不同。

他们可能基于SSD块擦除大小。使用SSD时,只能写入1或0,而不能同时写入2,因此,除非只翻转块中的一位,否则必须擦除整个块。擦除会磨损SSD,因此您希望避免一次只写入几个字节。请在帖子中说明驱动器品牌和型号、操作系统、使用的文件系统、当前分区群集大小以及这些驱动器上是否启用了文件系统写日志。例如,NTFS会将要写入文件的数据写入日志,然后验证文件是否与日志匹配。这用于系统崩溃或断电后的文件系统恢复。这样的方案可以将写入驱动器的次数增加一倍。这可能是一个促成因素。在Serilog配置中指定将由操作系统进行刷新,这将大大改善问题。嗯!