日志记录和 SSD 4K 写入
Logging and SSD 4K write
目前我们正在利用Serilog写一些日志
硬件团队发现我们的 SSD 磨损非常快。他们要求我们将每次写入的大小更改为 4K 的倍数
我发现对于这样一个特定的请求真的很奇怪。我相信我们应该做的是限制我们正在做的写入量,而不是指定大小,我们可以将滚动文件附加程序设置为 write/flush 到 25K 的磁盘,它仍然比写入磁盘更好恰好 8K
有人可以确认编写 4K 块的乘法应该更好还是更好?
他们可能基于 SSD 块擦除大小。对于 SSD,您只能写入 1 或 0,而不能同时写入两者,因此除非您只是在块中仅将 0 翻转为 1 或将 1 翻转为 0,否则您必须擦除整个块。擦除会使 SSD 磨损,因此您希望避免一次写入少于一个块的数据。
有些 SSD 只能一次写入或擦除整个块。它们无法可靠地将数据合并或附加到部分写入块的末尾,但如果驱动程序足够智能并且写入缓存策略允许足够的延迟,则有些可以。我以前写过闪存的驱动程序,但我对现在的SSD技术不熟悉,所以如果有人来教育我,我可能不得不撤销这个作为可能的答案。
文件系统碎片整理 algorithms/policies 也可以在这里发挥作用。在系统的一个非常低的级别,您可以选择通过允许部分写入的块保留来浪费大量 space,但这在磁盘配置方面可能非常昂贵。
对这里的多部分回答表示歉意,但我目前的互联网连接非常不可靠...
所以您的问题的简短答案是 'probably'。这取决于实际设备、块大小的确切大小以及设备和 OS/FS 功能。您可能想询问系统管理员类型,是否有 OS/FS 配置杠杆可以改善这种情况。我怀疑,如果可以改进,您最终会使用不同的簇大小重新格式化。所以硬件专家的修复可能是最好的短期解决方案。
您的里程可能会有所不同。
目前我们正在利用Serilog写一些日志
硬件团队发现我们的 SSD 磨损非常快。他们要求我们将每次写入的大小更改为 4K 的倍数
我发现对于这样一个特定的请求真的很奇怪。我相信我们应该做的是限制我们正在做的写入量,而不是指定大小,我们可以将滚动文件附加程序设置为 write/flush 到 25K 的磁盘,它仍然比写入磁盘更好恰好 8K
有人可以确认编写 4K 块的乘法应该更好还是更好?
他们可能基于 SSD 块擦除大小。对于 SSD,您只能写入 1 或 0,而不能同时写入两者,因此除非您只是在块中仅将 0 翻转为 1 或将 1 翻转为 0,否则您必须擦除整个块。擦除会使 SSD 磨损,因此您希望避免一次写入少于一个块的数据。
有些 SSD 只能一次写入或擦除整个块。它们无法可靠地将数据合并或附加到部分写入块的末尾,但如果驱动程序足够智能并且写入缓存策略允许足够的延迟,则有些可以。我以前写过闪存的驱动程序,但我对现在的SSD技术不熟悉,所以如果有人来教育我,我可能不得不撤销这个作为可能的答案。
文件系统碎片整理 algorithms/policies 也可以在这里发挥作用。在系统的一个非常低的级别,您可以选择通过允许部分写入的块保留来浪费大量 space,但这在磁盘配置方面可能非常昂贵。
对这里的多部分回答表示歉意,但我目前的互联网连接非常不可靠...
所以您的问题的简短答案是 'probably'。这取决于实际设备、块大小的确切大小以及设备和 OS/FS 功能。您可能想询问系统管理员类型,是否有 OS/FS 配置杠杆可以改善这种情况。我怀疑,如果可以改进,您最终会使用不同的簇大小重新格式化。所以硬件专家的修复可能是最好的短期解决方案。
您的里程可能会有所不同。