Pracuję nad charakteryzującym napędem SSD, aby określić Max TBW / Life Codzienność.

Obecnie używam Bash, aby wygenerować pliki 500 MB z losową (nie zerową) treścią:

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.

Chcę wykonać ten sam wynik w Pythonie, ale nie znaleziono skutecznych sposobów, aby to zrobić (szybko wygeneruj plik).

Szukasz sugestii.

Dzięki!


Aktualizacja

Eksperymentowałem z następującymi i wydaje się, że osiągnął 2 sekundę; Pliki wydają się być losowe i różne:

import os

newfile = open("testfile.001", "a")
newfile.write (os.urandom(500000000))    # generate 500MB random content file
newfile.close ()

Trochę sceptyczne, że jest to na tyle dobre, aby podkreślić SSD. Zasadniczo udać się do nieskończenie pętli; Po pełnym uruchomieniu napędu usuwa się do najstarszego pliku i zapisu nowego, a zbieranie inteligentnych danych co 500 plików zapisanych w celu trendu starzenia się.

Myśli?

Dzięki,

Dan.

1
Dan G 28 luty 2019, 19:20

2 odpowiedzi

Najlepsza odpowiedź

Opcja OS.urandom działa najlepiej do generowania dużych losowych plików.

0
Dan G 15 styczeń 2020, 04:51

Możesz spróbować czegoś tak prostego jak to.

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)

Możesz zaktualizować rozmiar tabeli, aby uczynić go większe lub mniejsze. Nie jestem pewien, czy jest to bardziej / mniej wydajny niż to, co już próbujesz.

1
Austin Wagner 28 luty 2019, 16:49