有关 MogileFS 怎么设置 memcached
在 MogileFS 中是不是要使用 Memcached 一直有不同的看法.在 MogileFS 中其实是实现在了对Memcached 的操作,当有被经常请求的路径时,在 tracker 中支持 memcached 来加速 get_paths 的请求,并减少读取数据库.
在 MogileFS 中有个 doc 文件,以下就是这个作者的认为:
虽然多年以来一直认为在 MogileFS 内部来实现支持是比较不好的做法,但还是实现了这个操作.但我仍然认为如果可以的话,给这个当低层应用,然后在你自己的应用中来做会更加好.
真的,你应该在你的应用程序中来缓存 get_paths 的请求,来避免额外连接 tracker 的开销/
也就是说,你应该做的:
1) app <-> memcache
2) app <-> tracker <-> memcache
应用先连接 tracker ,然后 tracker 在连接 memcache .
3) app <-> tracker <-> db.
当然,如果 1) 的方案实在有不能实现,就才有必要使用 2) 的方案.当然这会比起方案 3) 好点:
现在教你怎么样来设置 MogileFS 来支持 memcached:
要使 MogileFS 支持 memcached ,有几种方法,比如直接 telnet 来告诉你的 tracker,也可以直接使用 mogadm settings 来设置,还可以写配置文件.
1
2 |
set_server_setting key=memcache_servers&value=127.0.0.1:11211 |
(如果你有多个,可以给其中的值使用逗号分成列表)
有个更加方便的设置方法,不需要 telnet ,直接使用 mogadm 来设置.
1 |
mogadm settings set memcache_servers 127.0.0.1:11211 |
使用 Memcached
以后使用 get_paths 之类来连接 MogileFS 时,需要加 noverify=1 的参数(即要使用这个,需要 memcached 可以工作的,并可以不查询数据)这时将使用 Memcache.
另外,如果上面设置 Memcached 的支持,你使用 memcached 来查看并没有生效的话,可能是因为你没有安装 Cache::Memcached 这个模块(这个功能害我直接读源码才发现之所以我原来不能生效的原因是因为这个模块)
1 |
cpanm Cache::Memcached |
如果是由于这个模块没有安装不能生效.你安装后,还需要重起 track 才行.因为这时才会重新加载 MogileFS::Config 这个来加载这个模块和配置.
现在你可以 telnet 到 memcached 的端口使用 stats 来查看结果了.象下面这样,当 cmd_get 和 cmd_set 开始显示变化就支持了. get_hits 是显示从 memcache 中命中的内容.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 |
stats STAT pid 12624 STAT uptime 2536 STAT time 1331322477 STAT version 1.4.5 STAT pointer_size 64 STAT rusage_user 12.428110 STAT rusage_system 25.463129 STAT curr_connections 30 STAT total_connections 33 STAT connection_structures 31 STAT cmd_get 909649 STAT cmd_set 355118 STAT cmd_flush 0 STAT get_hits 243718 STAT get_misses 665931 STAT delete_misses 0 STAT delete_hits 0 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 55760964 STAT bytes_written 21107808 STAT limit_maxbytes 67108864 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT bytes 38064274 STAT curr_items 355046 STAT total_items 355089 STAT evictions 0 STAT reclaimed 0 END |
注:要在 MogileFS 中使用 Memcached 的功能,建议使用 2.58 以上的版本.在这之前的版本有个 BUG.就是同一个 key ,重复上传会上传到不同的硬盘.这时因为 memcached 中的 mogdevids 这时没有更新,所以会出现 404 的现象,但实际文件是存在的.所以记得一定要到 2.58 以上.
建议继续学习:
- MogileFS 的介绍(MogileFS 系列1) (阅读:4128)
- 在 MogileFS 中使用 Nginx (阅读:2686)
- MogileFS 的客户端和API(MogileFS 系列4) (阅读:2504)
- MogileFS 的安装(MogileFS 系列2) (阅读:2480)
- MogileFS Rebalance(文件的重新均衡) (阅读:2329)
- MogileFS 的设置和管理(MogileFS 系列3) (阅读:2060)
- MogileFS 研究 (阅读:1915)
- MogileFS 文件系统检查 (阅读:1653)
- MogileFS 排错小技巧 (阅读:1573)
- 为 MogileFS 配置使用多个网络段/多数据中心 (阅读:1554)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:扶 凯 来源: 扶凯
- 标签: MogileFS
- 发布时间:2012-03-11 22:17:29
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 图书馆的世界纪录
- [54] 如何拿下简短的域名
- [54] android 开发入门
- [52] Go Reflect 性能
- [52] Oracle MTS模式下 进程地址与会话信
- [49] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [41] 程序员技术练级攻略
- [35] 视觉调整-设计师 vs. 逻辑