Skip to content

{ Category Archives } 工作日志

关于网站架构的后续关注

参考 http://www.dbanotes.net/web/flickr_lamp_capacity_planning.html Flickr 的 John Allspaw 在 MySQL Conf 2007 作了一个题为 Capacity planning for LAMP (下载PDF文件) 的技术报告,介绍了不少 Flickr 的网站运维经验。 Flickr 的数据量越来越大了,根据文档中透漏的数据: Squid Cache 中共有 3500 万张图片; 在 Squid RAM 中有 200 万张图片; 4.7亿的图片,每张图片有4到5种尺寸; 每秒钟 38000 个到 memcached 的请求; 2 PB 裸存储容量(每周需要消耗1.5T 的空间) 值得借鉴的地方: 计划 基于实际业务,而不是抽象的理论。John Allspaw 认为基准测试(Benchmark) 作用并不大,在业务频繁变化的环境中,Benchmark 根本不能与实际业务情况匹配。 部署 Flickr 使用SystemImager/SystemConfigurator(自动化安装、软件分发),CVSup(网络中的文件分发、更新),Subcon(配置管理工具)提高部署效率。 度量(图形化展现) Flickr 使用了 [...]

工作教训

报警报的是天津网通搜索服务器前台机器的搜索页面错误,以及搜索后台虚拟ip和实际ip 202,203 的 8080 端口错误,同一组虚拟ip中的其它机器没有问题。 开始报警的时候页面上搜索时好时坏,登陆前台服务器查看没有发现问题。从前台用 wget 获取后台搜索结果发现所有机器的8180端口(专辑搜索)都正常, 201 的8080端口(视频搜索)正常,202和203的8080端口无结果。 登陆后台机器查看进程都在,索引数据也没有问题,tomcat和merge服务的log显示超时。打电话问一个同事,同事建议重启服务看一下,但重启了以后,log还是显示超时。为了不影响服务,当时就把天津网通的前台搜索切换到北京电信的后台上。 今天上午彻查的时候,202,203机器的tomcat停止服务了(但进程还在),tomcat的错误日志里面显示,tomcat已达到最大线程数,即tomcat被堵塞了(All threads (600) are currently busy, waiting. Increase maxThreads (600) or check the servlet status)。netstat 查看发现一堆的 SYN-RCV 状态的连接。重启了tomcat后恢复正常服务,但返回结果还是超时。在排除了索引的问题后,将 202 上 merge 的log优先级改为 DEBUG 才发现,是摘要超时。 登陆 196, 197 摘要服务器查看,第一次重启了摘要服务,还是超时。列目录的时候偶然发现log文件已经 1.9 G了,将log文件改名后再重启摘要服务,搜索恢复正常。 总结: 1。搜索超时最初应该是由摘要超时引起的。摘要超时是因为log文件大小超出范围,摘要服务程序写入失败造成的。摘要服务程序的log是在程序里面写死了的,需要修改源程序来避免以后出现类似的情况。 2。tomcat被堵塞的具体原因待查。

电脑中毒记

这些天跟小蔡一起住。小蔡找到工作了,在国贸那边,富邦大厦。打算这周去上班,但因为太远,要另外租房住。 小蔡的电脑还没有弄过来,只好用我的电脑上网。他又不习惯用 firefox (还好意思说是计算机专业的?),居然要用 ie 来上网。都怪我平时太相信我的本本的抗病毒能力——我的本本从装好到现在,几乎没有中过毒——我就直接把电脑扔给他了。也不知道他上了什么网站,到昨天上午的时候,忽然瑞星弹出窗口警告一个  directdb.exe 要修改注册表的信息,直觉的打开任务管理器,果然,一堆的 iexplore.exe和莫明其妙的 notepad.exe出现在列表里。想都没想就把它们都结束了。上网一搜,(百度搜索结果,爱问搜索结果),果然是病毒,而且还是威力强大的“威金病毒”的变种:艾妮变种。按照说明先删除了注册表里面的启动项,再删除了  %ProgramFiles%\Common Files\System\ 下的 directdb.exe (隐藏文件),wab32res.dll 等文件后,exe 是没有了,可那三个 dll 如同孙悟空的脑袋一样,删了又出来,删了又出来,简直是无语了。 今天上班时,想起一个 filemon 的软件,下了下来,运行 filemon 的监控,再把那三个 dll 删除,这次看出端倪来了:三个 dll  文件是从  %windows%\system32\dllcache 里复制过来的,把 dllcache 一股脑的全删除了 (更安全的处理方式是:开始->运行->cmd->sfc /PURGECACHE),这回太平了,世界清静了。让我觉得郁闷的是,病毒注入了很多进程,其中包括 winlogon  进程,来检测那三个 dll 的存在,如果不存在就从 dllcache 里复制一份过来。我不知道我这样删除了文件,是否还有病毒残留。于是我重启了一次机器,在机器刚启动的时候就打开 filemon,仔细的看,没有发现对 dllcache 的请求,也没有发现那三个 dll 文件再次出现。终于,可以肯定的说,病毒被我清除干净了。 写在杀毒成功后面的话:对于杀毒,最好还是预先避免中毒。建议:1,不用 IE 上网,你可以用 maxthon,或者其他的基于 IE 内核的浏览器,如果你认为自己是专业人士的话,推荐用 FireFox ;2,不要上那些乱七八糟的网站。

百度视频协议?

XML标签说明: 其中带星号标记的为必选项,未带星号标记为可选项。 *<document>——标记整个XML文件内容的开始和结束。 *<webSite>——站点地址。 *<webMaster>——负责人员的Email。当有必要时,我们通过这个地址与您联系。 *<updatePeri>——更新周期,以分钟为单位。搜索引擎将遵照此周期访问该页面,使页面上的视频更及时地出现在百度视频中。协议中只 是一个参考值,百度视频搜索会参考这个值定期地检查您所提供的xml文件是否改变,检查改变的方法是通过发送HEAD请求检查xml文件的Last- Modified或Content-Length是否改变,来决定是否进行抓取。所以请务必确认您的服务器能返回Last-Modified或 Content-Length其中一项,并且其值会根据您的xml文件的改变而改变。 *<item>——标记每个视频信息的开始和结束。标记内为单个视频信息,不包括视频专题。 *<op>——标记视频信息的操作类型,为add表示添加,为del表示删除。 *<title>——视频标题(当op为del时也可不提供)。 *<playLink>——视频播放所在页面url地址。 <imageLink>——视频缩略图的url地址。 <videoLink>——视频内容的url地址。 <tag>——视频分类信息。 <comment>——视频注释信息。 <duration>——视频播放时间。以秒为单位。 <pubDate>——视频发布时间,与该视频播放页面上的发布时间保持一致。请精确到分钟;若您网站的发布时间未记录小时分钟,提供年月日即可。 推荐时间格式:年月日小时分钟秒 如:2005-11-09 10:37  |  2005/11/09 10:37:00  |  2005.11.09 10:37:00  | 2005年11月09日10时37分00秒  |  Fri, 09 Nov 2005 10:37:00 GMT   baidu 正跟 google 一样,做规则的制订者。店大了,就可以自己做规则,就可以要求客人按照自己的规则来做。这样,就省事多了。 应该,未来的搜索引擎业,会出现越来越多的这样的规则,也就会越来越规范了。

Unix commands

Unix commands Note that there are thousands of commands available on a typical unix box. In bash, just hit the “Tab” key twice and say yes, to display the the commands currently available on your machine. A standard unix operating system lists currently thousands of commands. Type x to list all commands starting with x. [...]

php程序读取QQwry.dat

QQwry.dat 是为QQ的一个IP地址查询数据库. 数据更新很快.很值得利用.所以转载一篇说明,以备以后使用. 格式说明如下: A。文件头,共8字节 B。若干条记录的结束地址+国家和区域 C。按照从小到大排列的若干条起始地址+结束地址偏移,定长,7字节 D。所有的IP都是用4字节整数记录的,并且遵照Intel次序,高位在后,低位在前。 E。所有偏移量都是绝对偏移,就是从文件最开头计算。 F。除了文件头用了两个4字节偏移,其余偏移量都用3字节。 G。所有的偏移量也是低位在前,高位在后 H。采用了一些字符串压缩技术 1。文件头,共8字节 FirstStartIpOffset:4 第一个起始IP的绝对偏移 LastStartIpOffset:4 最后一个起始IP的绝对偏移 2。起始地址+结束地址偏移记录区 每条记录7字节,按照起始地址从小到大排列 StartIp:4 起始地址,整数形式的IP EndIpOffset:3 结束地址绝对偏移 3。结束地址+国家+区域记录区 EndIP:4 国家+区域记录:不定长 4。国家+区域记录,有几种形式 4.1。 国家字符串,以 0×0 结束 区域字符串,以 0×0 结束 4.2。 Flag:1 标识取值: 0×1,后面没有Local记录 0×2,后面还有Local记录 sCountryOffset:3 实际的字符串要去这个偏移位置去找 LocalRec:不定长,可选 根据Flag取值而定。这个记录也类似Country,可能采用压缩 4.3 LocalRec结构一 flag:1 还不是十分了解这个flag含义,取值 0×1 or 0×2 sLocalOffset:3 4.4 LocalRec结构二 sLocal:不定长 普通的C风格字符串 [...]

bashline 快捷键

在Linux命令行下一些常用的快捷键,能提高输入速度! 例如用ctrl+j来代替回车,ctrl+h来代替backspace, 减少手在键盘上的移动,极大地提高输入速度.另,这在vim 中也有一部分是可用的. ctrl+u 删除光标以前的所有字符 ctrl+d 删除光标以前的一个字符,相当于delete ctrl+h 删除光标以后的一个字符,相当于backspace ctrl+y 粘贴之前用ctrl+u/k 所剪切的文字 ctrl+t 调换光标前两个字符的次序 ctrl+a 移动光标到最前面 ctrl+e 移动光标到最后面 ctrl+p 上一个命令 ctrl+n 下一个命令 ctrl+s 锁定输入 ctrl+q 解除锁定 ctrl+f 移动光标到后一个字符 ctrl+b 移动光标到前一个字符 ctrl+x 标记一个位置 ctrl+l 清除画面 ctrl+c 结束命令执行 ctrl+j 执行命令,相当于回车 ctrl+m 同上 tab 命令补齐 另,alt + . 是上次命令的最后一个参数。 alt + 1 ,alt + . 是上次命令的第一个参数。详细的请参考bashline. 因为常用,所以记下来!

工作琐碎

终于,播客搜索后台的首次修正上线了。 其实说起来,改的东西并不多——就是增加了按点击,星级排序的功能。可是,就这么一点小小的改动,折腾了我足足半个月。 最开始找到 HitQueue ,  一听名字,就知道是返回的结果队列,于是看它的排序,顺藤摸瓜,找到 lessthan ,以为找到了地方了,兴致冲冲的改了,ant编译也通过了,测试机上一测,发现没有效果。log4j 打出来一看,那些期待中用来排序的数字都是 0。后来才知道,这里只是一个归并排序——归并来自多台服务器返回的结果。 周六的时候,在原来做这个的同事的帮忙 下,终于找到要改的地方了,还真不少:先是修改 index 的两个 config(ini与xml),把要的数据建到索引里面去。然后修改 index 下的 dump*** 类,把数据导出来,放在 idx 目录下,与 segment 放在一起。再修改 searcher 包里的 SearchBean ,在搜到了 docid 的情况下,增加我需要的排序功能。为了排序,还需要写一个类实现 SortComparatorSource 接口。于是又分别给点击,星级写了一个类。因为点击也是整数,当时把它和 docid 的类混在一起了,结果返回的 id 和点击数相同,显然是出问题了。后来看了半天,才发现错误的所在。 改完了代码,想要测试,也是一件非常麻烦的事情:更新两个 jar 包,更新两个配置文件,重建索引,重启索引服务(一个)和搜索服务(两个),再刷新页面。在测试机上测试通过了后,往线上部署,就更麻烦了:十多台机器,而且都是需要通过通道机登录! 终于,后台都更新完毕,前台页面还需要我来更新:从播客的测试机上取回最新的代码,更新这边的 svn, 再传到爱问的测试机,再传到发布服务器,再发布,再。。。,没有了,呵呵,终于完事了,万岁! 春节进入倒计时了,节前再也不上新东西了 ^_^。这几天把后台的那些报警都仔细看看,免得春节在家也不能安生。 北京又变天了,似乎要下雪。买了 13 号的 K21 的票,可是是无座的,正郁闷呢。如果一路下雪,可能还会堵啊。不知道要站多久,才能站到家。

郁闷的报警

      刚刚提交了报警申请的第一天,半夜两点,收到第一条报警消息,不过现在已经忘了具体内容了。本以为所有的报警信息都会像那些新浪新闻一样,每天来一条两条,也没有值得关注的,看过了删了就算完事了。哪知道几天后,事情就失去了控制了。       先是搜索前台页面超时,不停的超时,所以不停的报警,每隔几分钟来一条,而且都是同一台机器。这就纳闷了,为什么同在 F5 后面,其他的机器就不超时呢?登录上去一看,超的还不是一般的厉害:超时定义的是1s,log 里面居然打出来一堆 30,40,50秒的,最高记录还有98秒的!真不知道是怎么超出来的。折腾了近一天,最后统计 IP 来源才发现,超的最厉害的,都是相同的几个 IP,再查那几个 IP,居然是 Spider ,抓站的。修改了报警规则,终于把这个报警给“解决”掉了。可是到现在还是不明白,为什么那些 Spider 可以绕过 F5 的调配,把流量压在那一台机器上,还有那些 Spider 怎么造出来那么长的超时?唉,不明白。       然后是数据中心被人攻击(后来才知道的),导致数据转发失败,那些前台的后台机器,一个个争先恐后的报警:数据目录很久没有更新了!每个小时报一次,每次 12 台。从早上 9 点报到晚上 5 点,才算完。不过这个问题也不是全无好处,至少因为系统出了问题,逼的我不得不一台一台的登录服务器,查看数据流程,查看shell脚本,查看java代码,到现在为止,搜索后台算是明白了一半,可视频转换后台因为权限问题,一直登录不了,虽然昨天也同时出现了问题,可是我依然云里雾里的。       现在最担心的问题是,春节回家的时候,万一出现紧急报警,就死翘翘了。所以,回家前,一定要搞明白整个系统的运作,一定要自己从头到尾检查一遍,把容易出问题的地方找出来,解决掉。       郁闷的报警!

视频搜索共享服务全面评测

      转自:http://www.sowang.com/news/20061110-1.htm 中文搜索引擎指南      国内的视频网站几乎和美国同时起步,目前与YouTube类似的在线视频服务商高达150多家。纵观这些视频网站,不少是由中国第一代互联网老将们自立门户创业开办,如原搜狐副总裁古永锵的优酷网,而传统的门户网站像新浪也及时在其搜索引擎爱问里推出了视频搜索共享服务。   与传统的文字、图片ICP不同,视频网站对多媒体处理技术、服务器部署、带宽的有效利用都有非常高的要求。视频的转换效率、质量,数据存储分布,流媒体播放,每一个环节都对服务的质量有至关重要的影响。没有一定的技术实力和运营能力,视频服务根本无从谈起。   当下国内较为知名的视频网站有Tvix、新浪爱问、我乐网和六间房。本文将详细分析对比各家产品的视频处理性能、播放速度、搜索技术、社区功能、视频数据量、用户体验以及易用性。   其中英文网站YouTube雄踞全球在线视频市场霸主地位,提供网民上传视频与分享的服务,每日用户在线观看短片次数突破1亿次,日上传视频文件数量也已超过6.5万份,其模式为各视频网站们竞相效仿。此次测评也包含该网站,以更全面的角度评价网络视频服务。   一、国内视频网站介绍   ●Tvix   6月15日正式上线的Tvix视频分享,采用国际主流视频网站的运营理念,主推视频分享 平台功能,名人视频博客为其聚敛了不少人气。但毕竟网站规模还是太小,视频数量远远落后于其他竞争对手,搜索技术也有待提高。值得一提的是该网站的原传视 频活动举办得有声有色,”网络奥斯卡”、”生活纪实视频”等,极大的调动了网友的创造性和积极性,产生了不少优秀的原创作品。   ●新浪爱问   新浪爱问于中秋节前夕推出了的新版的视频搜索,隶属于爱问搜索这个大产品中。除了更加强大的网络视频搜索功能外,还着重推出了类似于YouTube的视频共享平台,网友可以在网站里上传视频并在线观看。   新浪爱问在搜索技术、视频转化速度、视频清晰度、播放速度等指标上在国内领先,达到了国 际一流水平。但也正是由于新浪爱问主营搜索业务,专注技术,网友间的分享等社区化功能不如YouTube全面细致。同时,由于测试版推出不久,网友上传的 可在线播放的视频数量不够丰富,为此,在视频搜索测试版上线不久,新浪爱问就举办了网友视频上传大赛,视频数量高速增长。   ●我乐网   我乐网几乎和YouTube同时创办,成立于2005年4月,是国内最早的视频网站之一。相对较长时间的积累,使得网站视频数量相比其他各家有明显优势,但播放不流畅是我乐网最大的缺陷。   由于较早推出了在线录制功能,我乐网的网友自拍视频成为该网站的一大亮点,也是网站人气较旺的直接原因之一。此外,为了增加用户黏度,我乐网产品战线拉得很长,从视频博客到电子邮箱无一不包,可以说是功能最全的视频社区。   ●六间房   今年五月,六间房联手网络恶搞巨星胡戈独家推出短片《鸟笼山剿匪记》,一炮打响,在网友中有了一定的知名度。该网站无论从技术还是功能上均处于视频网站的中上水平,但由于推崇”素面朝天”,不设美工,网站的界面显得不够整洁合理,用户体验有待提高。   二、各项技术性能指标评测   目前这些主流的视频搜索分享网站均采用Flash视频处理和流媒体播放技术,即无 论用户上传何种格式的视频文件,都转化为flv格式,只要客户端安装了Flash8以上版本的软件,就可以在线观看转化后的视频。因此,视频转化处理和播 放速度,是决定用户体验的最关键要素,也是视频网站最重要的技术性能指标,没有这些强大的技术性能做保障,其余一切社区、分享功能就成了空中楼阁。   主要性能指标包括视频播放速度、视频转化速度、视频转化后的体积膨胀率、视频清晰度等。   ●视频播放速度   互联网上,用户表现为烦躁、缺乏耐心,因此服务首重速度,这在视频产品里尤为明显,网络视频之所以近年才流行开来,一个很主要的原因就是网民的宽带条件好了,能支持在线的多媒体播放。   播放速度的比拼,实际各家网络带宽、服务器部署的比拼,视频转化压缩技术的比拼,数据传输的分布式算法的比拼。   以下是分布于全国各地的测试小组成员在同一时间(11月6日21:00)随机测试网站首页10个视频的结果: 注:5星表示极其流畅,3星表示恰好能播不卡壳,0星表示无法播放   可以看出,新浪爱问视频播放最为流畅,Tvix和六间房次之,YouTube由于在国内没有服务器,因此速度最慢,教育网内各家几乎都无法播放。   ●视频转化速度   视频成功上传到网站后,转化时间完全取决与于该网站视频转化服务器的速度,选取目前最常见的4种视频格式,对于同样一个视频,得到各网站视频转化时间如下:   新浪爱问的视频转化速度最快,YouTube紧随其后,明显高于其它各家。最长和最短的时间几乎相差一倍。用户上传视频后,热切地期待播放观看,加快转化速度可以极大的提高用户体验。   ●视频转化体积膨胀率和清晰度   这两个性能指标是一对矛盾。视频经过转化,文件大小和质量都有不同程度的变化。视频格式 转化后,愈大的文件体积可以保证越高的视频清晰度,但同时用户播放该视频所需的带宽也会增加,在带宽不够的时候,播放会不流畅,频频卡壳。如何在这两个性 能指标之间找到平衡,是一个技术难题。   通过把上传转化后的视频文件下载回来,以下比较了各网站对相同视频的转化效果:   视频经过转化后,YouTube清晰度下降最少,只有15%,其次是新浪爱问 17.5%,Tvix18.3%。但是在转化后的体积上,新浪爱问仅为原始视频大小的54.4%,紧随其后的是六间房60%,YouTube和Tvix转 化后几乎和源文件同大小,我乐网体积膨胀最为厉害,比原大小增加了一半以上。   中国的带宽比美国昂贵,在视频质量损失5%以内肉眼不太容易区分,但文件体积差5%,对 播放的速度影响就非常大,可以看出各家质量损失都在15%-20%之间,而体积还有很大的压缩余地,至少跟新浪爱问和六间房比,都可以再研究大幅度压缩的 技术,这两家压缩比最大的网站,同时也就是播放速度最快的网站。   三、网站功能评比   ●界面设计和易用性   像新浪和YouTube这样的大网站,整体风格就是简洁大气,色彩简单,功能简明 易用,UE设计上充分考虑了用户的使用习惯,使得用户一步一步操作下来,在需要的时候自然而然地找到相应的链接或按钮,不用思考。YouTube主色调是 浅灰,给人庄重感,而新浪爱问以白色背景为主,配以浅蓝绿,让用户感觉干净舒爽。我乐的界面元素丰富,功能齐全,首页呈现给用户各类不错的视频。六间房自 称没有美工,无怪乎页面包括导航条在内大部分都是简单的文字超链接,这样做虽说页面文件小了,但用户使用起来不是特别方便,有些地方要去猜。Tvix色彩 鲜艳,但文字图片较小,阅读起来比较费劲。   ●视频搜索功能 [...]