发博文
referer
个人资料
老小
老小
  • 博客等级:
  • 博客积分:123
  • 博客访问:10,669
  • 关注人气:3
博文
(2010-02-22 16:36)
标签:

squid3

esi

it

分类: cache应用

今天看到一个叫做ESI的东东,以此为线索,一路链接下去,颇为有趣,摘抄些新闻/博客段落来,算作长眼了:

 

首先是《CSDN09大会见闻》,其中提到康神的讲演《网站的那些事儿》,介绍了大规模网站架构上的种种工具和技术“比如做数据切分的Mysql Proxy,分布式缓存的Memory Cached,Web服务器缓存的Squid,页面优化的Y!Slow,页面切分方面的js拼接和iframe拼接(呵呵,怪不得搜狐的页面都是js加载,对搜索引擎很不友好),前端服务器Lighttpd, Squid 3 ESI等。也提到了架构设计中扩展性,可用性和一致性三者的关系,优化时应让让一致性延迟。提到目前网站系统一般都是三层结构DB层,逻辑层和前端层,而可扩展度方面DB < 逻辑 < 前端,原因就是有状态的最难扩展,无状态的最容易扩展,所以主张优化时尽量减少DB中存储的状态,将逻辑前移,最后总结优化的大方向就是:逻辑前移,善用缓存(无处不在的缓存)和数据冗余(方便查询)。
从中得到几个信息——1、搜狐的架构康神插手了;2、squid对ESI的支持限于3.0版本以上(这点很重要,因为其

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-02-09 23:31)
标签:

it

分类: web应用

今天偷菜极不顺利,QQ空间老坏,看着那个Qhttpd的502提示页面就郁闷,决定自己也安一个看看。

http://www.qdecoder.org/qhttpd/download.qsp

话说网上人都说QQ的视频服务器用的是qhttpd,Qzone用的是自己的qzhttpd呀。为啥农场的错误是qhttpd呢?

 

 

以上,过完年在说。呵呵

 

 

过年回来鸟~~去韩国下载了qhttpd来看,默认安装配置什么的,真的超级简单——功能也超级简单(连logformat都没有)。如果想要玩出花样来,好吧,从源代码开始,慢慢写C去吧~~~

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-02-09 22:48)
标签:

it

分类: 系统管理

今天偶然看到一个“新”的搜索引擎——WolframAlpha。好长的名字,不过有个东西,我想所有电子工业类专业出身的学生都应该还记得:MATLAB,嗯,这个俺当初考了98分的东东,就是该公司出品滴~~

一个简单的框,右边不是“搜索”而是“=”等号。简明扼要的表明自己其实是个计算类的引擎。最简单的测试,输入一个1+1,回车,果然1+1=2。只要你英文够好,把那些复杂的函数关系写成英文,然后一敲回车,OK,结果、二元绘图统统出现了……不愧是matlab的兄弟~~

作为搞笑试验,我敲了一个man+woman,并期待他给出一个child结果来。可惜不是,而且一本正经的给出了结果:human(animal),然后一串纲目属种云云,呵呵~~

有文章说,如果你往wolfram里写正面四次朝上六次朝下,他能知道你是在抛硬币。

谷歌的云计算、百度的框计算,都是server的计算,不是眼睛能看到的,wolfram才是。赞~

末了,我想到网上一个笑话:在百度中搜索“比我更牛B的人”,结果是“对不起,没有找到比我更牛B的人”~~~

或许有一天,这种搜索引擎真的能出现?

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: cache应用

之前的系列文章,只涉及squid本身,今天突然想到,其实这个网站加速,除了squid缓存这种缩短传输距离的办法以外,还有另一个办法——压缩内容以缩短传输时间。

而糟糕的问题是,squid对压缩内容的缓存,限制多多。因为squid默认是以HTTP/1.0进行内容传输的,对HTTP/1.1协议兼容性不怎么滴~~一个不小心,browser就会接受到squid交给它的无法理解的内容,并忠实的把这个错乱信息显示给网民……然后你就等着客户投诉电话吧~~

这个具体的限制就是:squid只支持静态压缩,不支持动态压缩。反应到header上,就是

  1. rep_header里必须指明Content-length是多少多少,不能采用Transfer-Encoding chunked这样的动态块格式;
  2. rep_header里必须指明Vary是Accept-Encoding,而不能是其他的User-Agent等等。

HTTP/1.1标准中,是建议所有的网页都加上vary头的。可见这个东东的重要性。

我不知道是不是有其他的缓存服务器能够支持vary值为user-agent,不过却在网上看到这么一句话:“如果依照除请求头以外的其他条件决定是否使用压缩(例如:HTTP版本),你必须设置Vary头的值为'*'来完全阻止代理服务器的缓存”——我正好在今天

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2010-02-06 23:00)
标签:

it

分类: cache应用

上回编译加载tcmalloc后,效果各有不同,所以还得细分具体运行情况,以便之后继续优化。

之前的架构是1个lvs下挂6台leaf+1台parent。现在已经给7台squid都加载tcmalloc了。leaf运行上佳,CPU占用率甚至降到了2%,loadavg也不过0.2。但parent的CPU占用率虽然降低,loadavg却依然在1以上——这对于单核服务器来说,可不是什么好事

分析日志,或者用squidclient分析cache情况,leaf如下:

$ cat access.log |awk '{if(/NONE/){a[NONE]++}}END{print a[NONE]/NR}'
0.981347

$ squidclient -p 80 mgr:info

Cache information for squid:
 Request Hit Ratios: 5min: 97.8%, 60min: 98.3%

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: 系统管理

参考原文http://www.wallfire.org/misc/netfilter_conntrack_perf.txt
中文版http://www.linuxmine.com/5791.html

说是zz,好歹也是自己看完以后的zz,所以组织语言次序都是自己来:

首先解释两个概念性的名词

conntrack最大数量.叫做conntrack_max
存储这些conntrack的hash表的大小,叫做hashsize

hash表存在于固定的的不可swap的内存中. conntrack_mark决定占用多少这些不可swap的内存

hashsize=conntrack_max/8=ramsize(in bytes)/131072/(x/32)
x表示使用的指针类型是(32位还是64的)

读取conntrack_max值
cat /proc/sys/net/ipv4/ip_conntrack_max
读取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_co

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: cache应用
话接上文,同一组LVS下,昨天采用重编译方式部署了另一台squid服务器。同样跑上一天,再次对比一番。今天流量比上回稍微少些,未加载的服务器cacti监控截图如下:


CPU占用率

负载

同时,重编译过后的squid服务器监控截图如下:

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: cache应用

昨天下午在一台squid上加载了tcmalloc。运行到现在,整整一天时间。现取LVS下与其完全相同配置的另一台未加载tcmalloc的squid服务器进行比较。
环境说明:
CPUinfo:Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz
MEM:4G
SQUID:Version 2.6.STABLE21
当单台流量20M,TCP连接数6w时,未加载tcmalloc的服务器CPU占用率和负载情况如下图:


CPU占用率

 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: cache应用
GADMIN-SQUID http://gadmintools.flippedweb.com/index.php?option=com_content&task=view&id=47&Itemid=37#Download 在linux环境下运行,经本人下载src后看,只能用于本机squid管理,不支持批量……

SQUIDTL http://www.zerozone.it/Software/Linux/SquidTL/ 针对IP、domain进行访问时长控制,C语言编写,需配合MySQL,好复杂的架构……

SQUIDMODEL http://sourceforge.net/projects/squidmodel/ java平台,俺还没搞定,未知其所以然

CACHEVIDEO http://cachevideos.com 专门针对yotube等网站的视频文件缓存开发的rewrite_program,python编写。可惜是要花钱滴~~

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

it

分类: cache应用

  TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。其作者宣称tcmalloc相对于glibc2.3 malloc(aka ptmalloc2)在内存的分配上效率和速度有6倍的性能提高,tcmalloc的常用场景是用于加速MySQL,不过据Wikipedia的hacker Domas Mituzas说,tcmalloc不仅仅对MySQL起作用,对squid也同样起作用(网上也有很多人在nginx上启用tcmalloc了),不过目前squid并没有official way来使用tcmalloc。

  TCMalloc的实现原理和测试报告请见一篇文章:《TCMalloc:线程缓存的Malloc


那么让我们赶紧给squid加载上tcmalloc,提高cache服务器在高并发情况下的性能,降低系统负载吧。

因为服务器是64位OS,所以要先安装lib
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有