IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

MogileFS 对大文件的支持

扶凯 2012-09-12 12:45:24 累计浏览 2,157 次
本机暂存

我一直使用 MogileFS 存视频这样的大文件来做源站.也用来存海量的小文件. MogileFS 本身对大文件支持也是相当不错的,另外要知道大文件它查询数据库的次数就更加少.
在这需要提醒一下大家.需要注意在大文件上传的时候(平时我多大的都有大点的 4G 以上), 需要 MogileFS::Client 加上特别的参数,来分片上传,这样存放速度在 MogileFS 中就会快多了.
我们在使用 new_file 的方法来上传的时候,只需要加入可选参数中的 largefile => 1 .这个时候内部的 MogileFS::Client 中就会使用另一个上传的模块,不在使用默认的 MogileFS::NewHTTPFile.但功能基本一样,只是支持  chunked 和 partial (Content-Range) HTTP/1.1 PUT .

另外,在读文件的时候,另在 8k 读一次,建议一次的块为 1M -2M 这样也会快多了.如果使用 store_file 的方法来指定文件上传时,除了默认的 largefile => 1 外,还需要加一个 chunk_size => 1024 * 1024.这样才能更加快的上传.
如下:

1
2
3
4
5
6
7
8
9
$mogc->store_file(
    'testfile'
    ''
    'testfile.flv,
    {
        largefile =>1,
        chunk_size => 1024*1024,
    }
);

使用这个功能,也需要  mogstored 支持.我测试了默认的 mogstored 中使用的 Perlbal .但发现好象在 Centos5 上对 Content-Range 上传时会出错,提示大小不对,但不知道为什么在我的 Centos6 上测试就正常.
当然,要是你使用的不正常,就使用 cmogstored 好了.这个一定都正常.

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. Facebook的实时Hadoop系统 (累计阅读 11,499)
  2. GFS, HDFS, Blob File System架构对比 (累计阅读 10,509)
  3. 奇怪的 Nginx 的 upstream timed out 引起响应 502 (累计阅读 9,970)
  4. MooseFS知多少 (累计阅读 6,205)
  5. 在 MogileFS 中使用 Nginx (累计阅读 4,037)
  6. 分布式文件系统Ceph调研1 (累计阅读 3,653)
  7. MogileFS 的客户端和API(MogileFS 系列4) (累计阅读 3,569)
  8. MogileFS 的安装(MogileFS 系列2) (累计阅读 3,429)
  9. 云存储在C2C网站的实际应用―详解TFS (累计阅读 3,415)
  10. MogileFS Rebalance(文件的重新均衡) (累计阅读 3,290)