工作琐碎

新浪爱问视频搜索(http://v.iask.com | http://v.iask.sina.com.cn)自从新版搜索于2007年8月7号上午 11时50 分上线以来,新视频搜索从前台到后台问题不断,我也就跟着忙乎不停,一直到今天,23号,才得以稍微的消停。 首先是没有走上线流程,导致上线的时候,使用的后台机器连基本的监控都没有。原来压力测试的时候,有一个很耗内存和CPU的进程是放在另外一台机器上的, 但部署的时候,所有的进程都部署在了同一台机器上。造成刚刚切换的一个小时内,后台服务器的负载非常的高,CPU几乎在100%,内存占用连交换内存都满 了,结果系统在不停的杀进程以释放内存。前台表现是,一直按F5刷新页面,几乎每隔几分钟就有一个“无结果”页面出现——后台合并进程超时,直接返回给前 台无结果。 首先采取的措施是增加机器,分担压力。电信,网通每一边都增加了一台机器以后,电信这边的压力还是比较大,超时比例还是居高不下。于是又加了一台机器,但 不是部署成跟原来一样,而是把原来后台机器的合并进程都撤下来放在这台新机器上。索引和摘要机器对硬盘 IO 消耗还是很大,想找好点的机器又找不到(RAID 0+1),只好尽量把程序放到不同的硬盘上去。从 data1 到 data2 再到 data3,都打散了之后再看,终于好点了。 开始的时候,前台是直接连后台。没有负载均衡,没有失败转移,导致后台压力不均,而且维护的时候,连重启进程都不敢——因为会直接影响线上服务。后来申请了虚拟IP,使用虚拟 IP 来连后台,终于松了一口气。再把后台的进程监控完善了,后台就慢慢的稳定下来了。 后台终究使用的是成熟的一套系统,即使开始出了些状况,调整一下,很快就能好。而前台,就不那么容易了。前台相当于是完全重写的,一堆的小问题,特殊处 理,页面调整,逻辑修改等等等等。光是打日志的函数,就修改了不下十遍。修改最大的还是每次搜视频的时候,出两个相关专辑这个问题。因为与原来的流程相差 太大无法融合,几乎相当于完全重新进行一次搜索了。还好这个逻辑上线后,后台并没有表现出太大的压力波动。 接下来就是日常的管理和log统计。因为这段时间是调整期,log统计没有使用脚本自动统计,而是由人工来看。每一天好几次的 “wc -l” grep awk 等等,超时,超时分类,后台错误,错误分类,弄得我不厌其烦。后来索性写了个简单的 shell 脚本,每次需要统计了就运行一下,感觉心旷神怡的。才写完的时候还忍不住一口气运行了好几遍!还把它加到了crontab 里面让它每天晚上23:45的时候运行一次,第二天来看结果。 前台起初一直在超时,调整了后台后,还是有部分前台超时比较厉害。在log里翻了半天,才发现引起超时的居然是 mp3 那边的调用——mp3搜索在无结果时会调用视频搜索的接口,而这样的关键词,大部分在视频里面搜,也是无结果的。真正无结果的搜索,会导致检索程序扫描整 个索引库,一般情况下,这样的一遍完整的扫描都会造成超时。问题定位了以后,解决起来就好办了,给那边调用单独提供了一个接口,过滤掉一些明显无结果的查 询,将超时日志记录到另外的地方,就行了。 头说我们的数据量还是比百毒少很多。想想也是,原先基本上是站内搜索,这段时间投入又少,只有这么几个人在折腾,哪有那么快的。于是就继续努力的抓站。抓站的脚本和配置不停的需要修改——因为需求在变,目标站点也偶尔会变,我们只好跟着变。 前台,后台都渐渐稳定了,但工作从来就不会停止。接下来,还要做管理界面,还要继续抓站,还要调整,还要折腾。。。