当前位置: 首页 > news >正文

为什么ubuntu大文件拷贝会先快后慢?

这是 Linux(包括 Ubuntu)上常见的大文件拷贝现象:一开始速度很快,随后逐渐下降。其根本原因主要在于 缓存机制、存储介质特性以及 I/O 调度策略 的综合作用:

1. 页缓存(Page Cache)的作用

  • 一开始快:当你执行 cp、rsync 等拷贝命令时,数据会先写入内存中的页缓存,系统立即返回“写入成功”,此时拷贝速度显示的是“内存写入速度”(几百 MB/s 甚至 GB/s)。
  • 后来慢:随着缓存被填满,内核必须逐步把数据真正写入硬盘。此时速度就取决于硬盘的真实写入能力(例如机械硬盘几十 MB/s,SSD 上百 MB/s)。因此速度下降并趋于稳定。

2. 存储介质的特性

  • 机械硬盘 (HDD):
    开始时硬盘缓存(几 MB 到几百 MB 的 DRAM 缓存)能吸收一部分数据,写入看似很快;缓存写满后,速度掉到盘片的真实顺序写速度(50–200 MB/s)。如果涉及磁头频繁寻道(碎片化、并发任务),速度会更低。
  • 固态硬盘 (SSD):有 SLC 缓存(几十 GB 甚至更大),在缓存可用时写入速度极快;一旦超过缓存容量,就会掉到 TLC/QLC 原生写入速度(可能从 1 GB/s 掉到 100 MB/s 甚至更低)。

3. 文件系统与 I/O 调度

  • 文件系统元数据开销:ext4、xfs 在大文件连续写入时表现较好,但如果文件碎片化、开启日志模式,速度会下降。
  • I/O 调度策略:Linux 的 CFQ、BFQ 等调度器可能会根据负载动态调整优先级,导致初始快、后期慢。
  • 写回机制:/proc/sys/vm/dirty_background_ratio 和 dirty_ratio 参数决定了缓存多久写回到磁盘,过大可能造成“先快后慢”的体验。

4. 总结

Ubuntu 下大文件拷贝“先快后慢”是正常现象:前期利用了 内存缓存 和 硬盘缓存 → 速度虚高;后期进入 真实磁盘写入速度 → 速度下降并趋于稳定。若要更稳定的速度,可以:用 SSD 替代机械硬盘;调整 rsync --inplace 避免缓存过大;修改内核参数(dirty_ratio 等)优化写回策略。


文章转载自:

http://SZjy53ng.zstbc.cn
http://2EHbvTf1.zstbc.cn
http://ZKZyJBQd.zstbc.cn
http://DY2My918.zstbc.cn
http://k55Y6Qz0.zstbc.cn
http://O1SG9rIZ.zstbc.cn
http://dGKk3yxw.zstbc.cn
http://WAOZA492.zstbc.cn
http://cTxIjuGa.zstbc.cn
http://quGBivZj.zstbc.cn
http://LXr7xmkl.zstbc.cn
http://WVzmRxcr.zstbc.cn
http://FVw6QM6D.zstbc.cn
http://s8BXby4Y.zstbc.cn
http://IiZCNmjK.zstbc.cn
http://C3j9rTVR.zstbc.cn
http://z4l1eJ3F.zstbc.cn
http://tDgsspfy.zstbc.cn
http://Uk7wIZe2.zstbc.cn
http://q2gF0tIK.zstbc.cn
http://z5VuK5CT.zstbc.cn
http://NSIrx5Mk.zstbc.cn
http://7fAaUKIv.zstbc.cn
http://SIIP5xS3.zstbc.cn
http://TvQkoDMC.zstbc.cn
http://slCm9FBK.zstbc.cn
http://mF3RmeGP.zstbc.cn
http://Ntp6n7aO.zstbc.cn
http://Jt7UGR6N.zstbc.cn
http://m7VIGQfp.zstbc.cn
http://www.dtcms.com/a/370863.html

相关文章:

  • SQL-窗口函数
  • buuctf-鸡藕椒盐味,[NPUCTF2020]EzRSA,[WUSTCTF2020]大数计算
  • OpsManage 项目启动脚本与 Docker 配置深度分析
  • 智能制造——解读97页汽配行业ERP整体解决方案【附全文阅读】
  • LIO-SAM 算法从入门到部署实践
  • ES6 核心特性详解:从变量声明到函数参数优化
  • 云手机在企业办公中的作用
  • 2025高教社国赛数学建模C题参考论文(含模型和代码)
  • RPC 和 HTTP 的区别
  • 通过Idea 阿里插件快速部署java jar包
  • 在Ubuntu 22.04系统中无需重启设置静态IP地址
  • 数据结构中排序的时间、空间复杂度以及稳定性
  • 面试开发工程师需要做哪些准备
  • hot100-贪心算法(附图解思路)
  • 京东商品属性API数据解析:颜色、尺寸与材质
  • 附051.Kubernetes Karmada kubectl 插件部署联邦及使用
  • 从 Excel 趋势线到机器学习:拆解 AI 背后的核心框架​
  • 嵌入式学习笔记--Linux系统编程阶段--DAY06进程间通信-消息队列
  • 【Beetle RP2350】摇杆控制自定义角度旋转舵机
  • 波特率vs比特率
  • C++ 14新增特性以及代码示例
  • SDRAM详细分析-08 数据手册解读
  • 51单片机---硬件学习(电子琴、主从应答模式、modbus模型、DS18B20传感器显示温度)
  • Blender 3D建模工具学习笔记
  • k8s网络原理
  • 新后端漏洞(上)- Weblogic SSRF漏洞
  • LockSupport详解以及使用
  • 【73页PPT】智慧方案业务协同管理平台解决方案(附下载方式)
  • Qt的入门
  • v0.29.1 敏感词性能优化之内部类+迭代器内部类