У нас есть клиент Linux с использованием mount cifs -t, а просмотр между каталогами происходит крайне медленно, иногда 1-3 минуты, чтобы перечислить папки.
Этот ресурс находится на сервере Windows. У клиентов Windows это не проблема.
Мы можем воспроизвести проблему, если мы установим новую версию Ubuntu на виртуальную машину.
Следует отметить, что этот пользователь подключается через MPLS из удаленного офиса в наш центр обработки данных через соединение 100 Мбит / с.
Задержка составляет 50 мс.
Можно ли что-нибудь сделать, чтобы решить эту проблему? Предложения?
Первоначально у нас были проблемы с производительностью, заблокированной со скоростью 1 Мбайт / с для скорости передачи; однако, если мы добавили vers = 3.02 к команде mount cifs, скорость передачи может достигать 11 Мбит / с.
Единственная проблема, остающаяся в этом вопросе - это медленное переключение между папками.
Если мы запустим ls из терминала, у него есть такое же отставание, иногда 2 минуты, чтобы показать листинг ls.
Если мы запустим sudo ls, список каталогов мгновен, не уверен, почему или что-то еще мы можем сделать, чтобы смягчить проблему.
Запуск ls -R действительно показывает проблему. sudo ls -R в основном почти мгновен.
Если мы установим другую карту в другое место в нашей сети MPLS с задержкой в 25 мс проблема исчезла, и просмотр моментален.
Помогите пожалуйста.
Полная ls документация (info '(coreutils) ls invocation' или онлайн-версия) имеет вероятное решение:
Note that using the ‘--color’ option may incur a noticeable
performance penalty when run in a directory with very many entries,
because the default settings require that ‘ls’ ‘stat’ every single
file it lists. However, if you would like most of the file-type
coloring but can live without the other coloring options (e.g.,
executable, orphan, sticky, other-writable, capability), use
‘dircolors’ to set the ‘LS_COLORS’ environment variable like this,
eval $(dircolors -p | perl -pe \
's/^((CAP|S[ET]|O[TR]|M|E)\w+).*/$1 00/' | dircolors -)
and on a ‘dirent.d_type’-capable file system, ‘ls’ will perform
only one ‘stat’ call per command line argument.
Если вы добавляете сетевые издержки в stat, все в целом каталоге, ваша задержка начинает становиться понятной.
Или вы можете использовать вызов ls с --color=off или no --color.
Полная ls документация (info '(coreutils) ls invocation' или онлайн-версия) имеет вероятное решение:
Note that using the ‘--color’ option may incur a noticeable
performance penalty when run in a directory with very many entries,
because the default settings require that ‘ls’ ‘stat’ every single
file it lists. However, if you would like most of the file-type
coloring but can live without the other coloring options (e.g.,
executable, orphan, sticky, other-writable, capability), use
‘dircolors’ to set the ‘LS_COLORS’ environment variable like this,
eval $(dircolors -p | perl -pe \
's/^((CAP|S[ET]|O[TR]|M|E)\w+).*/$1 00/' | dircolors -)
and on a ‘dirent.d_type’-capable file system, ‘ls’ will perform
only one ‘stat’ call per command line argument.
Если вы добавляете сетевые издержки в stat, все в целом каталоге, ваша задержка начинает становиться понятной.
Или вы можете использовать вызов ls с --color=off или no --color.