perl脚本性能优化(续)

11 May 2010 Posted in  perl

上回提到,性能优化的四个回答,今天在扶凯的博客里看到一篇文章,刚好是同样情况下的流程优化。按照其中的说法,修改测试,果然改进很大: 继续阅读……


perl边学边练(purge脚本进阶)

07 May 2010 Posted in  CDN

之前的purge脚本usage是./purge.pl “url1” “url2”。如果url变成成百上千个那么多的时候,这样就不行了。也需要在脚本中处理成文件句柄。修改如下: 继续阅读……


用Devel::NYTProf模块排查优化perl脚本性能

07 May 2010 Posted in  perl

缓存服务器上有一个perl写的日志分析脚本,记录所有不重复的url。之后对squid进行目录刷新时,从记录下来的文件中查找匹配的url即可。 继续阅读……


web服务监控小工具httping

06 May 2010 Posted in  monitor

今天偶然看到这个工具,感觉挺有用的,记录一下。 安装过程很简单: 继续阅读……


netperf网络测试

05 May 2010 Posted in  linux

本文的主要参考是IBM工作室的一篇文章:http://www.ibm.com/developerworks/cn/linux/l-netperf/index.html 继续阅读……


系统消息队列(squid启动小故障)

30 Apr 2010 Posted in  linux

昨天公司一台服务器被机房动手动脚之后,上面的虚拟机变得极不正常。squid基本跑不了三四个小时就out of memory一次。虽然已经把cache_mem调低到free的1/4了。依然如此。 更过分的事情刚才发生了,在又一次挂掉后,squid重启动彻底失败起不来了。 赶紧查看cache.log,其中记载了失败的原因,如下: 继续阅读……


awk取数值小技巧

29 Apr 2010 Posted in  bash

今天在Q群里看到有人在取ping值时用的小技巧,很是不错,加深了对awk的理解。 ping命令输出如下: 继续阅读……


at命令

26 Apr 2010 Posted in  bash

经常使用crontab做定时任务。不过偶然碰到只需要半夜执行一次就够了的时候,还用crontab的话,第二天还得记得上去删除掉任务。就比较麻烦了——尤其是我记忆力不太好~~ 好在发现了at命令: 继续阅读……


shell并发脚本学习

25 Apr 2010 Posted in  bash

在CU上看到的老帖子,创建并发程序的shell。个人觉得非常经典,贴回来好好学习使用。用()包围的是我写的学习笔记,#的是原帖注释: 继续阅读……


起点小说网的cdn分析~(绝非正式报告)

23 Apr 2010 Posted in  CDN

每天习惯了在起点小说网看看小说轻松一下神经,今天一不小心,看见了squid错误页面。于是小小的查看了一下起点的cdn状况。 首先声明本身的接入情况:宽带通4M接入,ip138显示为北京网通adsl…… 访问的是决战朝鲜的第三十三章。页面内容来看,域名主要有www.qidian.com、image.cmfu.com、ipagent.igalive.com、cj.qidian.com四个,前两个在网宿加速(lxdns)、第三个在蓝汛加速(ccgslb)、第四个在起点母公司盛大加速(sdo),其余零散域名未加速。 lxdns返回的ip是天津网通(ping值7ms); ccgslb返回的ip是北京蓝汛(ping值8ms); sdo返回的是上海联通(本地ping不通,在沈阳网通测试机上居然ping通了,返回的是同一个ip,30ms,汗)…… 整个页面一共81个对象: 加速的域名uedas.qidian.com和sdo的cj.qidian.com下的对象,time都在100ms以上; 网宿加速域名下的对象,主要是小图片和页面; 图片小到以B计算,返回time在16ms左右;页面包括aspx和html,html大小在15-20KB左右,返回time在50ms左右; 耗时最大的是主页面http://www.qidian.com/BookReader/1501306,27478560.aspx,耗时437ms,其中15ms建立链接,而422ms传输内容,content-length 69408,请求头带有no-cache的cache-control和gzip,deflate的压缩;返回头带有Age 1的HIT结果,但X-Cache有两层,分别是一层MISS一层HIT,via头信息是jsyz232:80 (Cdn Cache Server V2.0), tg146:80 (Cdn Cache Server V2.0)。预计应该是parent上设定强制缓存,而leaf上不缓存; 另一个耗时较大的是http://www.qidian.com/Javascript/ReadChapterNew.js?t=091216,耗时250ms,content-length 35423,其他情况和aspx差不多,不过返回了三个X-Cache,一个MISS两个HIT,在via头上很奇怪的看到三个服务器分别是jsyz232:80 (Cdn Cache Server V2.0), zb99:80 (Cdn Cache Server V2.0), tg134:8103 (Cdn Cache Server V2.0),不知道这个开8103端口的是什么意思??(网上查了一下,民生网银用的是这个端口,~~) 最后是蓝汛加速域名下的对象,都是广告; js文件url是相同的,都是http://ipagent.igalive.com/show_ads.js,但先后请求了5次,返回时间依次为:4.28s、48.42s、3.14s、6.17s和875ms,波动相当大!观察这5次的Age,分别是778、827、782、834、835;对应返回时间,可以看出是同一台服务器返回的同一份缓存。再具体看time的细分,建立连接时间都很短,传输内容时间从500ms到1.5s不等。也就是说,主要波动在于服务器的响应时间上。 aspx?文件,url比较长,类似这种:http://ipagent.igalive.com/s.aspx?adid=100144&host=http://ipagent.igalive.com&dt=1272030174514&lmt=1272028966&output=101&url=http://www.qidian.com/BookReader/1501306/27478560.aspx&ref=http://me.qidian.com/BookCase/1/1&flash=10&u_h=660&u_w=1126&u_ah=627&u_aw=1126&u_cd=24&u_tz=480&u_his=1&u_nplug=7&u_nmime=16,都是MISS回源的。长度和上面的js差不多都在40KB左右。但是到最后甚至有一个文件连接超时了……</ 继续阅读……


perl内置变量

22 Apr 2010 Posted in  perl

$_ 默认输入/模式搜索空间,常用于-f -d测试、print unlink函数、m// s/// tr///匹配、foreach while循环 继续阅读……


要命的刷新

22 Apr 2010 Posted in  CDN

今天一天都在跟刷新做斗争。 先是squid的目录刷新,用/home/squid/bin/squidclient -p 80 mgr:objects|awk ‘/harbin/{system(“/home/squid/bin/squidclient -p 80 -m purge “$2}’刷新一遍;客户反馈看到的依然是旧页面;我想想似乎看到url里有带()的,awk的system函数这时候会出错;于是改成用for i in /home/squid/bin/squidclient -p 80 mgr:objects|awk '/harbin/{print $2}';do /home/squid/bin/squidclient -p 80 -m purge “$i”;done再刷新一遍;然后自己绑定节点访问,居然也还看到是旧页面! 继续阅读……


sscanf用法

20 Apr 2010 Posted in  C

int sscanf( 继续阅读……


iscsi试验(读写测试)

15 Apr 2010 Posted in  linux

隔了一天,回头再来mount /dev/sda /mnt;成功了~ 不信邪,再上一台,login,mount,继续成功…… 难道是前天rp不行? 继续阅读……


apache防盗链(modperl试用)

15 Apr 2010 Posted in  web

客户需求如下: 继续阅读……


iscsi试验(失败,慎入)

12 Apr 2010 Posted in  linux

聊天时听同事提及iscsi。回来后借助百度和谷歌大概了解了一下是网络存储,就赶紧下了软件包作测试。 继续阅读……


客户页面小故障

10 Apr 2010 Posted in  CDN

今天接到客户电话,说,主页已经提交过了刷新任务,上面的图片已经更新,但点击图片后链接到的页面内容还是老的…… 仔细一看,原来主页里的html是这么定义的: 继续阅读……


url_rewrite_concurrency

08 Apr 2010 Posted in  squid

squid的重定向,我看网上一般都采用 redirect_children (即 url_rewrite_children)。估计是因为中文权威指南的原因吧。不过中文权威指南还是2.5版的时候出的。有些新东西没有。比如 squid.conf.default 中提供的另一种 url_rewrite_concurrency继续阅读……


date的一个怪问题

03 Apr 2010 Posted in  bash

今天看同事的一个备份脚本,在取昨天的日期时,采用了YESTERDAY_NAME=date -I -d'-1 day' +"%Y-%m-%d"的方法。 继续阅读……


lvs的activeconn与netstat的conn

02 Apr 2010 Posted in  linux

曾经有过一组高并发请求的服务器,在lvs上看到单台 activeconn 约等于 220000;同时,在RS上执行 netstat -s -t|grep "connections established" 结果大概是 65000,而 squidclient mgr:5min|grep client_http.requests 结果却只有 180。后来说起并发数的时候,有些茫然,到底哪个才算是呢? 继续阅读……


perl边学边练(purge脚本)

30 Mar 2010 Posted in  CDN

squid的purge,一般有两种方式,squidclient -m purge url或者http request (method)purge url。如果任务不太多的情况下,直接使用squidclient -p 80 -h 1.2.3.4 -m purge url即可。如果任务比较繁重的情况下,telnet80后直接发送purge请求稍微好一些。作为初学perl的练手,写一个purge脚本。如下: 继续阅读……


squid源站故障转向(终结篇)

28 Mar 2010 Posted in  CDN

因为这么一个想法,我陆陆续续的把squid很多功能都理了一遍,今天终于打算写个不完美的终结篇。而就在写这个终结篇的同时,公司里也已经开始把这批别扭的客户改往nginx平台加速了。 继续阅读……


zabbix_proxy部署

25 Mar 2010 Posted in  monitor

continue 继续阅读……


cacti优化

25 Mar 2010 Posted in  monitor

首先,采用spine代替cmd.php来采集数据。 下载与cacti相应版本的spine和补丁: 继续阅读……


cacti自建tcp80连接数监控

24 Mar 2010 Posted in  monitor

同样作为提供web服务的机器,因为不同业务的关系,除了流量以外,还需要参考TCP80连接数来分析服务器性能状况。下面就试试cacti对连接数的监控。 最简单的方法,利用snmpnetstat这个命令,自动搞定一切。cactiuser.org上提供一个现成的模板,只要import就能直接用。下载地址如右:http://www.iammecn.com/wp-content/uploads/2009/12/cacti_graph_template_snmp_connections.zip 继续阅读……