Задание ввода-вывода замедляется, даже если не достигается максимальная пропускная способность - PullRequest
0 голосов
/ 06 мая 2020

Я провожу эксперимент, чтобы проверить использование полосы пропускания и поведение диска. Итак, я запускаю простое приложение Python, которое запускает задание, записывающее строку непосредственно в файл на SSD-диске (максимальная пропускная способность 450 МБ / с) в обычной файловой системе на Ubuntu. Размер этого файла после завершения задания составляет 76 МБ, а время выполнения этого задания составляет ~ 0,5 секунды.

f = os.open("path/to/file", os.O_RDWR | os.O_CREAT)
os.write(f, data)
os.fsync(f)
os.close(f)

Затем я повторно запустил приложение, но на этот раз с использованием двух параллельных заданий (каждое пишет 76 МБ непосредственно в отдельный файл), я заметил замедление времени выполнения задания (~ 1 секунда). Я ожидал, что, поскольку максимальная пропускная способность не достигнута (76x2 = 152 МБ <450 МБ / с), время выполнения задания будет то же самое .. </p>

Кто-нибудь может указать мне, почему это происходит? Кажется, что полоса пропускания диска становится перегруженной, когда выполняются параллельные задания (?), Но я не понимаю, как это возможно, когда максимальная пропускная способность не достигнута?

Заранее спасибо

...