为什么有时候执行ls命令非常缓慢
来源:互联网 发布:抓娃娃机技巧知乎 编辑:程序博客网 时间:2024/05/14 11:00
在碰到系统资源紧张,海量文件的情况下,执行ls命令,特别是ls -laRt命令,会很慢,笔者就碰到在几百万~几千万个海量小文件的情况下,执行ls -laRt命令要花1分钟到数个小时的情况。这种情况因属正常,要解释为什么会这么慢,就必须先说明下Linux中的内部命令和外部命令
【内部命令 VS 外部命令】
内部命令:所谓内部命令是指写在bash源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。 比如:exit,history,cd,jobs,bg,fg,echo外部命令:bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等
比如:ls,vi,cat
用type命令可以分辨内部命令与外部命令,带builtin命令的就是内部命令
# type cd cd is a shell builtin# type echoecho is a shell builtin# type ls ls is aliased to `ls --color=tty'# type vivi is aliased to `vim'
有了上面的认识,接着就必需了解ls命令的详细执行步骤:
第一步: 通过$PATH找到ls命令的存放路径,默认是/bin/ls,并执行ls命令.
第二步: 扫描所要打印的目录
第三步: 获取该目录下的所有文件的所有信息
第四步: 将获取的上述信息读取到内存
第五步: 最后将内存中相关的信息输出到屏幕中
所有ls的最终执行结果主要取决于:
1. ls目录下子目录,子文件的数目
2. 所用磁盘速度大小,比如说: SSD盘的速度> NL_SAS盘 > SATA盘
3. 内存大小
4. 内核个数和大小,处理能力
备注:
1) 一般固态盘: 200-800MB/s
2) 一般机械盘: 20-120MB/s
3) 一般内存速度: DDRIII1333的读取速度 8-9G/s,写的速度:7-8G
【最后总结】
综合上面来看,一般ls命令执行个几分钟,几个小时都属于正常,取最终执行结果,取决于文件个数,硬盘速度,内存大小,CPU个数和性能(这个在处理并行执行ls命令,效果尤其明显),需要用top,free, iostat等性能分析工具,看具体瓶颈出现在哪里。
1 0
- 为什么有时候执行ls命令非常缓慢
- 你知道为什么下载的HTML5模版打开非常缓慢?
- ls 命令执行后显示解释
- ls -l命令执行结果解析
- 30-换个姿势执行 ls 命令
- 非常缓慢相
- ubuntu下sudo命令执行缓慢的解决办法
- 为什么我的Linux ls命令不能用了?
- 为什么要执行sync命令
- Mysql使用非常缓慢解决方法
- 人工智能为什么发展缓慢?
- 最近工作进度非常非常缓慢。
- HDFS------hadoop fs -ls命令的执行过程
- HDFS------hadoop fs -ls命令的执行过程
- -bash:ls:command not found,执行命令总是报找不到
- 命令执行错误系列(一)ls: 初始化月份字符串出错
- -bash:ls:command not found,执行命令总是报找不到
- Linux下执行ls命令提示CMake Error错误
- fprintf(); fscanf(); 向文件中写入读出数据
- 常用的 memcache
- [vim]vim全局替换
- 剑指offer(56):表示数值的字符串
- 深入浅出ES6(十):集合
- 为什么有时候执行ls命令非常缓慢
- Linux三个特殊权限 setuid setgid stick bit
- Linux下整合Apache和Tomcat
- FTP连接报错530 Permission denied解决方法
- Hibernate 延迟加载剖析与代理模式应用
- iOS layout的相关方法
- PHP经典算法计算两个日期的差数
- 开发容器式微服务的第一步
- Code Hunt 题解 05-08 (Java)