Запись файлов локально или удаленная файловая система?

Мой вопрос касается удаленных файловых систем в Windows.

Предположим, у вас есть рабочая станция X, которая имеет доступ к файловым системам в сети, скажем, \\ServerY\MYDir\.

Представьте себе сценарий, в котором у вас есть два одновременных потока на X.

  1. Поток 1 записывает файл в каталог локального жесткого диска в X - C:\MYDir\.
  2. Поток 2 записывает в удаленный файл в \\ServerY\MYDir\.

Я хочу знать, действительно ли эти две операции ввода-вывода независимы, т.е. поток 1 использует только контроллер жесткого диска X, а поток 2 использует только сеть и передает все данные на сервер по проводу, где они фактически записываются на жесткий диск на серверY.

Or

Является ли поток 2 также созданием некоторых данных локального кеша в X (и, следовательно, использованием контроллера жесткого диска на X). В этом случае операции ввода-вывода потока 2 могут мешать работе потока 1, что может привести к возможной потере производительности.

По сути, будет ли какая-либо выгода от параллельной записи в локальный файл и в удаленный файл?

Мой вопрос относится к удаленной файловой системе, поддерживаемой такими окнами, как Microsoft Networks или NFS


person Rohit    schedule 05.05.2013    source источник


Ответы (1)


Обычно Thread2 не кэширует записи локально, и эти два потока независимы. В общем, да, вы увидите преимущества в производительности при одновременном доступе к обоим файлам.

Вы также обычно увидите повышение производительности при доступе к двум локальным файлам, которые находятся на разных дисках, даже если они находятся на одном контроллере.

Вы часто можете увидеть преимущества в производительности, даже если файлы находятся на одном диске, потому что это позволяет вам держать диск занятым, но чтобы не ломать голову, вам нужно выполнять ввод-вывод большими блоками. Если локальный диск является флэш-памятью, время поиска отсутствует, поэтому наличие нескольких потоков чтения/записи на него не снижает производительность, как на жестком диске.

Несколько вещей, которые могут повлиять на это: 1: Windows поддерживает «автономные файлы», когда клиенту разрешено кэшировать файлы удаленной файловой системы, как для чтения, так и для записи на локальном диске. Раньше было так, когда клиент использовал локальный кеш только в автономном режиме. Я не знаю, изменит ли это Win8.

2: «\ServerY» на самом деле может относиться к локальной машине.

person joeking    schedule 30.09.2013