淘宝图片存储与CDN系统[转]
转载一个PPT,演讲者是淘宝核心系统研发部负责人,LVS开发者,淘宝开源平台的推动者, 章文嵩(@wensong)博士。另据不可靠消息,PPT中提到的海量图片存储系统TFS,将于9月份在淘蝌蚪上开源。
开源的淘宝
非常低调的,淘宝开源平台今天上线了。并且一款重量级的产品在平台上正式开源:Tair。
Tair是淘宝内部广泛使用的核心分布式缓存系统,在数据库前面承担了大量的访问压力,基本上你能想到的电子商务网站访问压力较大的应用场景中,都有Tair的缓存发挥力量的地方。非常期待Tair开源以后能有更多优秀的开发者加入,让Tair能够更加健壮的发展,这样作为DBA,我们的日子就可以过得更轻松一点了,毕竟大压力的互联网应用中,缓存为王。
Tair总体架构图(refer):

Tair只是一个开始,接下来,淘宝更多的核心底层与具体业务逻辑无关的产品将陆续开源,从今天开始,淘宝将是一个开源的淘宝,希望有一天,DBA也能为这个开源平台贡献一份力量。
谨以此帖,猛顶淘蝌蚪。
如何设置lilina的rss全文输出
去年心血来潮,申请了两个域名askdba.net和dbatips.net,但是也没什么精力去搭建内容,于是就用d.c.b.a修改过的Lilina程序做了两个rss聚合网站,askdba主要面向中文blog,dbatips则是英文的,内容都是关于oracle/mysql以及一些运维相关的东西。如果你也在写这类型的blog,并且愿意加入聚合,可以留言告知。
前几天Lilina底层使用的Magpie碰到了一个很古老的bug导致askdba不可用,还有不少朋友来问起:
Fatal error: Only variables can be passed by reference in .../inc/magpie/rss_parse.inc on line 352
Google了一下,发现N年前eygle和chedong都遇到过这个问题,根据他们给出的信息很容易就修复了。想想既然这个网站还有朋友在关注,就花时间做了一些改进,主要是界面UI调整了一下,更便于阅读。
另外一个最重要的改进,当属rss输出从摘要输出改成了全文输出。从我自己订阅出来的效果来看,摘要输出不但内容太少,也没有格式化,所有的文字堆积在一起,每篇文章都需要回到网站去看,实在是不太爽。实际上,这个修改是非常简单的, 参照chedong的文章,找到根目录下的rss.php文件,在第88行:
$item_out->description = $item['summary'];
修改为以下内容即可:
$item_out->description = $item['atom_content'];
刚刚在Google Reader里看了下,效果不错,以后就只需要订阅这个地址就可以啦
http://feed.feedsky.com/AskDBA
如何监控MemCached的状态
使用MemCached以后,肯定希望知道cache的效果,对于MemCached的一些运行状态进行监控是必要的。MemCached也提供了stats接口输出一些信息,最简单的方式,就是telnet上去输入stats查看:
telnet 127.0.0.1 11211 Trying 127.0.0.1 ... Connected to memcache_test_host (127.0.0.1 ). Escape character is '^]'. stats STAT pid 7186 STAT uptime 1695 STAT time 1238401344 STAT version 1.2.6 STAT pointer_size 64 STAT rusage_user 0.003999 STAT rusage_system 0.002999 STAT curr_items 1 STAT total_items 54 STAT bytes 135 STAT curr_connections 2 STAT total_connections 111 STAT connection_structures 4 STAT cmd_get 3 STAT cmd_set 54 STAT get_hits 0 STAT get_misses 3 STAT evictions 0 STAT bytes_read 5957 STAT bytes_written 50914 STAT limit_maxbytes 2147483648 STAT threads 1 END
这种方式相当的不方便,所以网上就有各种不同客户端接口写的工具,比如用perl写的这个memcache-tool:
./memcached_tool Usage: memcached-tool[mode] memcached-tool 10.0.0.5:11211 display # shows slabs memcached-tool 10.0.0.5:11211 # same. (default is display) memcached-tool 10.0.0.5:11211 stats # shows general stats memcached-tool 10.0.0.5:11211 move 7 9 # takes 1MB slab from class #7 # to class #9. You can only move slabs around once memory is totally allocated, and only once the target class is full. (So you can't move from #6 to #9 and #7 to #9 at the same itme, since you'd have to wait for #9 to fill from the first reassigned page) $ ./memcached_tool 127.0.0.1:11211 stats #127.0.0.1:11211 Field Value bytes 135 bytes_read 5964 bytes_written 51394 cmd_get 3 cmd_set 54 connection_structures 4 curr_connections 3 curr_items 1 evictions 0 get_hits 0 get_misses 3 limit_maxbytes 2147483648 pid 7186 pointer_size 64 rusage_system 0.002999 rusage_user 0.003999 threads 1 time 1238401521 total_connections 112 total_items 54 uptime 1872 version 1.2.6
命令行的方式,在批处理调用的时候比较方便。但是在展现方面还是web方式更加直观有效,所以就有了php写的memcache.php,是的,用一次就知道这是我想要的。

