Author Archives: 加菲猫

分析ext2文件系统磁盘分区结构

最近看了些kernel fs code, 从实际例子,简单分析一下ext2文件系统的结构,  希望对大家有帮助 本文涉及到一些结构,主要是: 超级块 struct ext2_super_block { } 组描述    struct ext2_group_desc { } 索引节点    struct ext2_inode { } 目录结构    struct ext2_dir_entry_2 { } 1. 准备工作 为了分析,特地格式化了一个100MB左右的ext2文件系统,block size 1024 Bytes 可以看一下这个分区的主要信息: debugfs:   stats Filesystem volume name:   <none> Last mounted … Continue reading

Posted in 未分类 | Leave a comment

CDN Origin Pull

Origin Pull 这个技术其实说起来也不算什么新鲜玩意,大致就是 PULL from Original Server 的意思。 内容自动的从源站点传输到CDN之中,这个和手工的上传内容相对应。 比如一个域名: www.duba.net , 它的CNAME是 www.duba.net.cachecn.com , 我们访问页面,其中有首页的图标, 浏览器请求logo图片 http://www.duba.net/v5/images/logo.jpg , CNAME 的 解析 IP 指向一个CDN缓存服务器, CDN检查该 v5/images/logo.jpg 是否存在于CDN, 和内容的Fresh情况, 假如内容不存在或者过期,  就从CNAME关联的源服务器(CDN系统配置的)自动获取内容,这里可能是  http://www.duba.net , 或者是 image.duba.net/logoimage ( 比如 http://image.duba.net/logoimage/v5/images/logo.jpg )也说不定. 这个和常见的反向代理cache差不多。 源服务器要适当的设置 HTTP 的 cache 头,  用来供CDN控制刷新时间。没有的话,CDN会有缺省配置。 一般来说,CDN也允许手工设置刷新时间。 … Continue reading

Posted in 未分类 | Leave a comment

牛项目 Harvest

昨晚看《A Hierarchical Internet Object Cache》的时候,看到paper里面吹Harvest是如何的牛,就google了一下,还真的很牛: Harvest 后来发展成了大名鼎鼎的 Squid Netcache 产品也是 based on Harvest (netcache 曾经是如雷贯耳的 netapp 产品,,后来卖给了 blue coat ) Harvest 的作者之一(也是paper作者之一), Chunk Neerdaels , 目前在Akamai做VP 基本上算是 Caching / CDN 产业的源头项目(还是加个”之一”吧)了啊!  本文用菊子曰发布

Posted in 未分类 | Leave a comment

CDN设计:[笔记]Analysis of Enterprise Media Server Workloads

这里主要是对paper的笔记,和一些将访问模式应用到实际video CDN系统设计的考虑 【Key new observations】 with 77-79%of media sessions being less than 10 min long, 7-12% of the sessions being 10-30 min, and 6-13% ofsessions continued for more than 30 min. 对于对象的cache有两种选择:全部缓存,和部分缓存。部分缓存比完整对象复杂得多,但是看看它能够带来的好处: 有不少的session都是很短的,这里10分钟以下的session达到了77%以上,这样,对于影片之类的大对象的部分缓存,就意味着更加的节省cache资源,而且使用有限的空间,可以得到更高的命中率 Most of the incomplete sessions (i.e. terminated … Continue reading

Posted in 未分类 | Leave a comment

可惜了,Windows Live Sync 2011年会停止服务了

最近设置live sync的时候,发现说2011会停止服务,真的觉得很遗憾。 我从FolderShare(这个软件被微软收购前的名字) 的时代就开始使用,用于多台计算机文件的同步。后来用过Dropbox,也用过DBank等国产的服务,但是觉得LiveSync这样不需要网络存储,直接多机p2p同步的软件是非常有用的。 微软虽然不是很高调,还是实打实做了一些不错的网络服务。 Live Sync 将会被 Live Mesh代替,但是Live Mesh不能用于windows xp,另外带网络存储的方式也有些慢,有存储限制,而且让人觉得不够安全。 The Sync website will soon stop working Windows Live Mesh 2011 is replacing Windows Live Sync, and new users can’t download Sync anymore. In early 2011, this website … Continue reading

Posted in 未分类 | Leave a comment

解决电脑双击文件反应慢的问题

我的笔记本装的是 windows xp 专业版本,好长一段时间以来,都出现一些问题: 双击打开文件反应很慢,等很久 文件上点击右键非常慢,等很久 "我的电脑"点击空白的地方右键,新建菜单很久才能出来,甚至"我的电脑"就死掉了 网上找了很多,没有答案。 前段时间,将电脑里面各色软件安装的插件卸载了很多,忽然发现问题没有了,很高兴,结果从公司拿回家,问题依旧,看来不是这些插件带来的问题。公司是在办公网络里面,家里当然就不能在公司内网工作了,这也许是个原因吧。发现这点后,我发现在公司使用果然这个问题不那么明显,回家使用笔记本问题就比较明显。不过电脑一直没有装抓包工具,暂时没有去管。 今早在家,"我的电脑"又死掉几次,实在难以忍受了,我想到: 1.也许双击文件的时候,windows干了一些莫名其妙的事情,不过没有办法看到 2.在公司使用就OK,在家使用就慢,和公司家里的环境有关,一方面是windows域的可能,另外的可能是网络访问的问题 那么二话不说,打开Ethreal ,双击一个txt文件的时候抓包,看看发生了什么: 发现双击txt文件以后,存在一些网络通信,有解析 sz-file-svr (公司的某台服务器) 的,而且解析不成功,我想,到底双击文件的时候,windows想干什么呢?没有理由去 sz-file-svr 打开什么东西啊?难道公司用间谍软件将我们的操作发到什么地方(呵呵,真黑啊)? 不过还是修改 host 文件,人工加上该名字解析,发现问题照旧。 继续抓包,用工具看不到这些网络通信的进程信息,看来这些包是windows底层发出的,和应用进程没有什么关系,都是一些 microsoft-ds 还有 NBSTAT 之类的query,不知道到底发生了什么。我想到,假如和公司网络相关,也许我应该登录公司网络看看发生了什么,登录公司网络后,用ethreal抓包并双击文件,这下发现好几个 SMB 通信(就是微软的共享文件访问的),指向一个 \\sz-file-svr\…\FlashCS4\flash.exe 文件,   看来windows试图对 flash.exe 进行什么操作,查了一下,注册表里面很多和 flash.exe 的信息,我想起来,以前下载了一个绿色版的 flash cs4 … Continue reading

Posted in 未分类 | Tagged | 1 Comment

{讨论}技术的平等和民主

  看了云风的文章《平等》 , 谈到一个公司文化的平等的氛围问题,其实很多公司,都不会X总,X经理的喊,甚至经理也不会有单独的办公室,而是和大家坐在一起。这些都是不难做到的,关键是把平等贯彻到日常的行为里面。比如:当双方分歧很大的时候, 怎么做最后的决定?云风很反对按照级别或者资历之类的东西来做准则。云风提到: 04 年,我和我的上司 dingdang 有过一次激烈的争吵。那是唯一的一次。谁都说服不了谁。最后 dingdang 逼急了,说,这次一定要听我的,我要为整个团队负责。一句话噎的我在旁边闷声不响。五分钟以后,dingdang 就跑过来向我道歉。或许,有人不会理解,为什么应该道歉?因为,无论你看的多远,想的更多,在讨论具体问题时,不能以自己的位置来压人。其实,这个位置不单单是指职位的高低,也包含有你的经验,你在行业内的权威,等等。 很多技术讨论,并非很明显的1+1=2的,特别是设计来讲,只是一个根据各种因素的折中,而这些因素的权重,却需要根据不完整的信息做判断,这就类似于下面的情况:两个feature都很重要,但是资源不够,砍掉哪个? 另外的有些事情,明显就是公说公有理,婆说婆有理,比如选择哪个代码风格的问题,永远也不会有个结果。 很多时候是需要下决断的,很多时候,并非最优的判断比没有判断好,大家一般用什么途径来决断的?   其实我觉得dingdang的做法是对的,只是话有那么些刺耳。 我的想法是,领导有责任引导大家达到一致,但是假如不能的话,谁对这个事情负责,谁就有责任下决断,这个责任会更多的落到Leader/Manager或者架构师、资深工程师的头上。 换个说法,就是"我会听取大家的意见,但是假如无法决议的话,最后得听我来判断", 听起来没有那么舒服也没有那么民主了?大家怎么看?

Posted in 未分类 | Tagged | 2 Comments

[笔记] Darwin Streaming server 的 Task 类

这是我在另外一个blog的老文: http://blog.lmtw.com/b/peon/archives/2007/48655.html   Darwin Streaming Server 是一个开放源代码的streaming server,对于streaming server的编程和软件结构有着一定的参考价值,它是使用C++写的,其中的并发模式的核心就是Task类,下面写一下我的理解: 多任务的程序常常采用线程+同步阻塞IO的模式, 每个线程/进程服务于一个client,使用阻塞式的IO: 这种模式对于交互式的长连接应用也是常见的选择(比如Telnet)。好处是实现极其简单,容易嵌入复杂的交互逻辑。Apache、ftpd 等都是这种工作模式。但是这种策略很能难足高性能程序的需求。 在handle大量用户的情况下,为了避免创建过多的线程导致context switch开销,常常采用select I/O复用的方法(你可能说select过时了,不过Darwin QTSS就是用的这个, 说实话,这个框架的IO部分确比不上libevent/ACE): 上面是经典的select IO复用的过程, 以上的过程可以由3步来描述: 应用注册事件 事件触发通知应用 应用运行处理事件 注意在SELECT THREAD有3个任务:接受事件注册,等待事件触发,驱动SESSION处理事件,这些任务可以分解为不同的角色,我们可以在这种模式里定义4种角色: 1. EventHandler : EventHandler 向 EventGenerator注册事件,并对注册事件进行处理 2.EventGenerator :EventGenerator接受事件注册,当事件触发的时候,通知 EventHandler 3.EventHandler Driver : EventHandler Driver … Continue reading

Posted in 未分类 | Tagged , | 2 Comments

关于Youtube 的平均文件尺寸与GFS

Google的Sean Quinlan 最近提到老的的GFS设计已经不适合Google的一些新应用,包括youtube. 除了单metaserver以外,其他的方面暂时还想不到 GFS 在 youtube 上出了什么问题。比如 GFS 的大文件假设? 其实在我的感觉里,youtube文件应该尺寸不小?不过查一下google吧, 有一份07年末的数据: http://www.websiteoptimization.com/speed/tweak/average-web-page/ In 1997, 90% of videos were under 45 seconds in length (Acharya & Smith 1998). In 2005, the median video was about 120 seconds long (Li et … Continue reading

Posted in 未分类 | Tagged | Leave a comment

4.4-bsd-lite source download (源代码下载)

《TCP/IP详解》(TCP/IP Illustrated) 很多人都在看,<卷2:实现>  里面参考的代码是 4.4bsd-lite 的 source code,这个代码也有不少人找,因为书上给的下载url早就不能用了:( 从网上下载来,给大家共享一下: 4.4BSD-lite.tar.gz  http://www.mybloop.com/go/rXjhH7 4.4BSD-lite2.tar.gz  http://www.mybloop.com/go/n272eK 顺便缅怀一下 W.Richard Stevens ,太牛了。 一个人写本书容易,难得是几本书都好得不能再好,万人景仰,这才是最难最难的啊! 把那几本书翻烂先!

Posted in 未分类 | Leave a comment