我有一台安装了 cifs 共享(Azure 存储文件)的服务器。有时 ls 返回缓慢(20 秒)。经过一番调试后,我到目前为止发现:
ls /data/some/symlink/directory20秒内返回ls .需要 0.02 秒ls /data/original/location/that/symlinkpoints/to/directory也返回亚秒ls 的 20 秒返回时间似乎受到目录中文件数量的影响。目录越大,花费的时间就越多。
这让我认为这与 ls 处理符号链接的方式有关。就像它必须为每个文件或其他东西解决它一样。
为了调试这个,我想通过 strace 运行 ls 来看看我是否可以看到不同情况之间的系统调用有什么区别。但是如果我跑
strace ls /data/some/symlink/directory it also returns sub second suddenly.
Run Code Online (Sandbox Code Playgroud)
关于为什么通过 strace 运行它会使其速度更快以及如何进一步调试有什么想法吗?
原来是 ls /home/someuser/.bashrc 的别名:alias ls='ls --color=auto'
--color=auto 选项导致 ls 在我的终端中返回颜色,但不在 strace 中返回颜色。为了支持颜色,需要统计文件。
| 归档时间: |
|
| 查看次数: |
1342 次 |
| 最近记录: |