Назад | Перейти на главную страницу

Отладка медленного ls на cifs mount strace делает его быстрым

У меня есть сервер, на котором смонтирован общий ресурс cifs (файлы хранилища Azure). Иногда ls возвращается медленно (20 секунд). После небольшой отладки я обнаружил, что:

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

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

Чтобы отладить это, я хотел запустить ls через strace, чтобы увидеть, могу ли я увидеть разницу в системных вызовах между разными случаями. Однако если я убегу

strace ls /data/some/symlink/directory it also returns sub second suddenly.

Есть идеи, почему запуск через strace делает его быстрым и как отлаживать дальше?

Оказалось, что это псевдоним для ls /home/someuser/.bashrc: alias ls = 'ls --color = auto'

опция --color = auto заставляет ls возвращать цвета в моем терминале, но не в strace. Для поддержки цветов необходимо статовать файлы.