今天偶然看到这个工具,感觉挺有用的,记录一下。 安装过程很简单: 继续阅读……
05 May 2010 Posted in linux
本文的主要参考是IBM工作室的一篇文章:http://www.ibm.com/developerworks/cn/linux/l-netperf/index.html 继续阅读……
30 Apr 2010 Posted in linux
昨天公司一台服务器被机房动手动脚之后,上面的虚拟机变得极不正常。squid基本跑不了三四个小时就out of memory一次。虽然已经把cache_mem调低到free的1/4了。依然如此。 更过分的事情刚才发生了,在又一次挂掉后,squid重启动彻底失败起不来了。 赶紧查看cache.log,其中记载了失败的原因,如下: 继续阅读……
26 Apr 2010 Posted in bash
经常使用crontab做定时任务。不过偶然碰到只需要半夜执行一次就够了的时候,还用crontab的话,第二天还得记得上去删除掉任务。就比较麻烦了——尤其是我记忆力不太好~~ 好在发现了at命令: 继续阅读……
25 Apr 2010 Posted in bash
在CU上看到的老帖子,创建并发程序的shell。个人觉得非常经典,贴回来好好学习使用。用()包围的是我写的学习笔记,#的是原帖注释: 继续阅读……
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左右。但是到最后甚至有一个文件连接超时了……</ 继续阅读……
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再刷新一遍;然后自己绑定节点访问,居然也还看到是旧页面!
继续阅读……
15 Apr 2010 Posted in linux
隔了一天,回头再来mount /dev/sda /mnt;成功了~ 不信邪,再上一台,login,mount,继续成功…… 难道是前天rp不行? 继续阅读……
10 Apr 2010 Posted in CDN
今天接到客户电话,说,主页已经提交过了刷新任务,上面的图片已经更新,但点击图片后链接到的页面内容还是老的…… 仔细一看,原来主页里的html是这么定义的: 继续阅读……
08 Apr 2010 Posted in squid
squid的重定向,我看网上一般都采用 redirect_children
(即 url_rewrite_children
)。估计是因为中文权威指南的原因吧。不过中文权威指南还是2.5版的时候出的。有些新东西没有。比如 squid.conf.default
中提供的另一种 url_rewrite_concurrency
。
继续阅读……
03 Apr 2010 Posted in bash
今天看同事的一个备份脚本,在取昨天的日期时,采用了YESTERDAY_NAME=date -I -d'-1 day' +"%Y-%m-%d"
的方法。
继续阅读……
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。后来说起并发数的时候,有些茫然,到底哪个才算是呢?
继续阅读……
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脚本。如下: 继续阅读……
28 Mar 2010 Posted in CDN
因为这么一个想法,我陆陆续续的把squid很多功能都理了一遍,今天终于打算写个不完美的终结篇。而就在写这个终结篇的同时,公司里也已经开始把这批别扭的客户改往nginx平台加速了。 继续阅读……
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 继续阅读……
24 Mar 2010 Posted in nginx
今天发现nginx做多域名混跑的proxy_cache时有一个小问题:当一个非加速server_name的请求到达的时候,nginx不会像squid那样返回一个ERR_DNS_FAIL,反而假装很正常的返回一个页面: 继续阅读……
21 Mar 2010 Posted in CDN
flash和flex应该是现在网络上红到发紫的技术了,要flv不要tv,要sns不要bbs,连春晚节目都满嘴偷菜~~~我也试着用用fms3.5,一些基本搭建,过过瘾,免得自己太过OUT了。
fms是adobe的付费产品,不过不花钱买序列号,也可以用免费的开发版,限制是10个链接而已。上www.adobe.com注册一个帐号,就可以下载了。下载下来的zip中包含了win版的exe和linux版的tar.gz。网上教程大多是win的,不过不要紧,除了字符和图形,真正使用上没啥区别。
上传FlashMediaServer3.5.tar.gz到linux服务器上,解压开,./installFMS -platformWarnOnly,然后按提示,设定安装目录、管理员帐号密码、监听端口、是否安装自带的apache2.2.9,是否设为守护进程等,最后完成。
ps看看,已经有几个fms的进程了吧;netstat看看,也有1935/19350/1111端口的监听吧(前提是你没改),OK了。
注:这里有几个问题。如果install的时候,端口选择了默认的1935,80,而本身服务器上又开着httpd的80,就会有冲突;这时候关掉FMSHttpd是不够的,因为fmsedge也监听这80端口,需要在conf/fms.ini中,把SERVER.HTTPD_ENABLED设为false,再删除ADAPTOR.HOSTPORT里的80,然后/etc/init.d/fms restart,这样就可以了。
继续阅读……