Несколько операций чтения / записи на диске могут стать причиной узкого места? - PullRequest
3 голосов
/ 23 апреля 2011

Я проделал большую работу, где я одновременно обращался к одному файлу из 30+ процессов (через 4 узла, смонтированных в NFS), и мне было интересно, если, помимо узкого места в полосе пропускания, есть преимущество в том, чтобы меньше соединений открывало тот же файл. В частности ...

Будет ли разница в скорости при этих двух способах доступа к файлу:

  1. 1 файл доступен для 5 отдельных процессов (ТОЛЬКО ЧТЕНИЕ)

  2. 5 отдельных файлов (1/5 размера оригинала), к которым получают доступ 5 отдельных процессов (ТОЛЬКО ЧТЕНИЕ)

Кроме того ...

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

1 Ответ

2 голосов
/ 23 апреля 2011

Одновременный доступ к одному и тому же файлу несколькими процессами предполагает операции блокировки и сериализации, по крайней мере, до некоторой степени. В сетевой файловой системе, которая может вносить значительные задержки в любую операцию. Несмотря на то, что использование полосы пропускания не будет таким уж разным, связанные с этим задержки могут значительно снизить производительность.

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

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

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

...