美文网首页
并发写大文件的优化

并发写大文件的优化

作者: 周群力 | 来源:发表于2019-10-27 12:53 被阅读0次

优化思路

1. 让磁盘IO和网络IO时间重叠

【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍,内存生产/消费模式缓冲磁盘写入的数据。

2. 每次写网络的包不能太小

这个不确定,直觉上想如果包小那么overhead占的比例就高,包大overhead的比例就小,但是不确定OS层会不会对网络包做缓存、到达一定大小才发。上文的评论区也有人指出了这点。

3. 避免单文件写入的并发问题

很多存储引擎不支持并发写同一个文件(存储单元),支持也要处理复杂的一致性问题。因此可以把单一大文件拆成多个小文件,并维护一个索引,读取时按索引读所有小文件。可以参考单个大文件的持续生成存储是否可以采用多线程加速?
。对于存储引擎来说,多个文件可以并发写入(如果存储引擎是分布式的,可以并行化的写入)

例如,GFS提供原子性的append操作,但这适合多个机器并发append同一个文件、并不适合对append顺序有严格要求的大文件写入场景。


image.png

又如OSS,从文档描述(以及断点续传上传)上看,OSS sdk提供的并发写文件策略也是将大文件拆分为多个part,从而允许并发上传,都上传完了再合并。不过看这api,是要传一个本地文件路径,而不是传输出流,那岂不是还得先把输出流写到本地大文件,再调API上传?没细研究,如果是这样的话有点扯。

相关资料

没找到书籍/课程。
博客:
文件 IO 操作的一些最佳实践
性能挑战赛

相关文章

  • 并发写大文件的优化

    优化思路 1. 让磁盘IO和网络IO时间重叠 见【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百...

  • 高并发秒杀API(六)

    前言 本篇将完成高并发优化,包括: Redis后端缓存优化 并发优化 一、高并发优化分析 在优化之前要明白高并发发...

  • 如何设计一个秒杀系统(各方面都写的很到位)

    1. Overview 1.1 并发读写 秒杀要解决的主要问题是:并发读与并发写。 并发读的优化理念是尽量减少用户...

  • 影响网络并发数的几个配置

    影响网络并发数的几个配置:1、系统级最大文件数和单进程最大文件数 2、单进程limit限制 3、nf_conntr...

  • MySQL实战14 慢查询优化join、order by、gro

    1.慢查询的优化思路 1.1优化更需要优化的SQL 优化SQL是有成本的高并发低消耗的比低并发高消耗影响更大 优化...

  • Mapreduce 优化策略

    优化策略 优化Map和Reducer数量。 输入,大文件优于小文件。 减少网络传输(尤其是shuffle阶段):压...

  • CentOS7 高并发优化

    扩展最大文件描述符数量 内核参数优化 /etc/sysctl.conf

  • JAVA-每日一面 2022-01-14

    问:高并发系统如何做性能优化?如何防止库存超卖?答: 高并发系统性能优化:优化程序,优化服务配置,优化系统配置1....

  • 秒杀系统笔记——持续更新....

    1、秒杀要解决的两个问题: 并发读 并发读核心优化理念:减少用户到服务器端读数据,或让他们读更少的数据。 并发写 ...

  • nginx优化

    nginx优化并发优化长连接压缩静态缓存一、并发优化nginx工作模式:主进程+工作进程 启动工作进程数量work...

网友评论

      本文标题:并发写大文件的优化

      本文链接:https://www.haomeiwen.com/subject/pkmpvctx.html