在 Python 中创建大型随机内容文件
Creating Large Random Content Files in Python
我正在研究 SSD 驱动器的特征以确定最大 TBW/预期寿命。
目前我正在使用 BASH 生成具有随机(非零)内容的 500MB 文件:
dd if=<(openssl enc -aes-128-cbc -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero) of=/media/m2_adv3d/abc${stamp1} bs=1MB count=500 iflag=fullblock&
Note : {stamp1} is a time stamp for ensuring unique file names.
我希望在 Python 中实现相同的结果,但没有找到有效的方法(快速生成文件)。
寻找建议。
谢谢!
更新
我一直在尝试以下方法,似乎已经实现了 2 秒写入;文件似乎是随机且不同的:
import os
newfile = open("testfile.001", "a")
newfile.write (os.urandom(500000000)) # generate 500MB random content file
newfile.close ()
有点怀疑这是否真的足以对 SSD 施加压力。基本上要无限循环这个;一旦驱动器已满,删除最旧的文件并写入新文件,每写入 500 个文件收集 SMART 数据以趋势老化。
想法?
谢谢,
段.
您可以尝试像这样简单的事情。
import pandas as pd
import numpy as np
rows = 100000
cols = 10000
table_size = [rows,cols]
x = np.ones(table_size)
pd.DataFrame(x).to_csv(path)
您可以更新 table 大小以使其变大或变小。我不确定这是否比您已经尝试的效率更高/更低。
os.urandom 选项最适合生成大型随机文件。
我正在研究 SSD 驱动器的特征以确定最大 TBW/预期寿命。
目前我正在使用 BASH 生成具有随机(非零)内容的 500MB 文件:
dd if=<(openssl enc -aes-128-cbc -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero) of=/media/m2_adv3d/abc${stamp1} bs=1MB count=500 iflag=fullblock&
Note : {stamp1} is a time stamp for ensuring unique file names.
我希望在 Python 中实现相同的结果,但没有找到有效的方法(快速生成文件)。
寻找建议。
谢谢!
更新
我一直在尝试以下方法,似乎已经实现了 2 秒写入;文件似乎是随机且不同的:
import os
newfile = open("testfile.001", "a")
newfile.write (os.urandom(500000000)) # generate 500MB random content file
newfile.close ()
有点怀疑这是否真的足以对 SSD 施加压力。基本上要无限循环这个;一旦驱动器已满,删除最旧的文件并写入新文件,每写入 500 个文件收集 SMART 数据以趋势老化。
想法?
谢谢,
段.
您可以尝试像这样简单的事情。
import pandas as pd
import numpy as np
rows = 100000
cols = 10000
table_size = [rows,cols]
x = np.ones(table_size)
pd.DataFrame(x).to_csv(path)
您可以更新 table 大小以使其变大或变小。我不确定这是否比您已经尝试的效率更高/更低。
os.urandom 选项最适合生成大型随机文件。