减少Linux下Squid服务器的TIME_WAIT套接字数量[原创]
[ 2008-4-14 11:48 | by 张宴 ]
Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量。
增加以下几行:
说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
执行以下命令使配置生效:
vi /etc/sysctl.conf
增加以下几行:
引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
执行以下命令使配置生效:
/sbin/sysctl -p
解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求[原创]
[ 2008-4-10 12:50 | by 张宴 ]
Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页
例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页
但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:
例1:用Linux下的curl命令发送POST请求给Apache服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://www.sohu.com/index.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>405 Method Not Allowed</TITLE>
</HEAD><BODY>
<H1>Method Not Allowed</H1>
The requested method POST is not allowed for the URL /index.html.<P>
<HR>
<ADDRESS>Apache/1.3.37 Server at www.sohu.com Port 80</ADDRESS>
</BODY></HTML>
例2:用Linux下的curl命令发送POST请求给Nginx服务器上的HTML静态页
[root@new-host ~]# curl -d 1=1 http://blog.zyan.cc/tech/index.htm
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx/0.5.35</center>
</body>
</html>
但在有些应用中,需要使静态文件能够响应POST请求。
对于Nginx,可以修改nginc.conf配置文件,改变“405错误”为“200 ok”,并配置location来解决,方法如下:
server
{
listen 80;
server_name domain.zyan.cc;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*\.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
{
listen 80;
server_name domain.zyan.cc;
index index.html index.htm index.php;
root /opt/htdocs;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
error_page 405 =200 @405;
location @405
{
root /opt/htdocs;
}
location ~ .*\.php?$
{
include conf/fcgi.conf;
fastcgi_pass 127.0.0.1:10080;
fastcgi_index index.php;
}
}
一个时代的结束[原创]
[ 2008-4-6 23:36 | by 张宴 ]
不安逸于现状,
望加速追逐梦想。
挥挥笔,
再见理想国际。
抽身IT界,
独练开源剑。
待到花谢花又开,
那是王者复归来。
2007.01.25──2008.03.31,
一个时代的结束。
望加速追逐梦想。
挥挥笔,
再见理想国际。
抽身IT界,
独练开源剑。
待到花谢花又开,
那是王者复归来。
2007.01.25──2008.03.31,
一个时代的结束。
婚纱照,永恒的瞬间[原创]
[ 2008-3-30 23:21 | by 张宴 ]
上周六(2008年3月22日),我们去拍了婚纱照。喀嚓,美丽的一刻永远停留在镜头下,化作爱情的历史见证。在我们即将步入婚姻殿堂的时刻,也愿天下所有有情人终成眷属。
更多婚纱照:http://www.yupoo.com/albums/share/view?id=ff80808118e161b401190118e3f13ba3
更多婚纱照:http://www.yupoo.com/albums/share/view?id=ff80808118e161b401190118e3f13ba3
Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒”[原创]
[ 2008-3-26 17:25 | by 张宴 ]
我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,从Nginx的日志可以统计出,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700*60*60*24=60480000)的访问量:
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
服务器①:DELL PowerEdge 1950(两颗 Intel(R) Xeon(R) 双核CPU 5120 @ 1.86GHz,4GB内存)
服务器②:DELL PowerEdge 1950(一颗 Intel(R) Xeon(R) 双核CPU 5140 @ 2.33GHz,4GB内存)
Web服务器:CentOS Linux 4.4 + Nginx 0.5.35 + PHP 5.2.6RC2(300 FastCGI Procees, unix-domain socket, with XCache)
PHP程序内容:大量Memcached读写、少量MySQL读操作、大量文件队列写操作,然后计算,生成供<script type="text/javascript" src="http://www.domain.com/abc.php?u=1"></script>方式调用的JS代码或XML数据。
网卡流量:1.5M~3M/秒
请求数统计方式:从Nginx访问日志中,统计每分钟的第15秒共有多少条日志记录。
引用
grep "25/Mar/2008:15:01:15" /data1/logs/nginx.log | wc -l
服务器的系统负载也不算高:
总结:
1、Nginx的处理能力超强,这块不是瓶颈。影响动态程序处理能力的因素主要在于PHP(FastCGI)。PHP(FastCGI)模式适用于执行时间较短的PHP程序,一般复杂的PHP程序执行时间应该在100ms以内,例如我的博客首页执行时间为38ms左右。假设一个PHP程序的执行时间为100ms,那么一个PHP(FastCGI)进程每秒可以处理完毕10个请求,300个FastCGI进程理论上每秒可以处理3000个请求。但是,在生产环境下,还将受到内存、系统负载等多方面的影响,例如300个PHP(FastCGI)进程需要占用2.4GB左右的内存,每秒处理超过1000个请求时,系统负载会飚升到100以上。因此,FastCGI的进程不是越多越好,而是够用就好。
2、使用PHP的XCache、APC等加速模块会提供速度10倍左右,降低系统负载50倍以上。
3、修改了spawn-fcgi,使它能够支持250个以上的FastCGI进程。
4、如果PHP直接对MySQL进行大量读写操作,速度是达不到“700 request/sec”的,PHP与MySQL之间需要一个中间层,这是关键的技术。
5、CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。
6、使用PHP 5.2.6RC2,因为它修正了PHP 5.2.5的“zend_mm_heap corrupted”错误BUG。PHP 5.2.5(FastCGI)在高并发请求情况下,经常会出现该错误。
7、有空我将写一篇针对CentOS Linux环境Nginx + PHP5(FastCGI)安装、配置的最新博文。
IE浏览器下同一网页多图片显示的瓶颈与优化[原创]
[ 2008-3-4 18:57 | by 张宴 ]
Internet Explorer 浏览器在同一时刻只能从同一域名下载两个文件。
至于原因请见 MSDN Blogs:《Internet Explorer and Connection Limits》,如何解除限制请见微软客户帮助与支持主页:《如何将 Internet Explorer 配置为可以同时进行两个以上的下载会话》。
不管 Firefox 有多火,无可否认,IE 仍然是浏览器市场的老大。所以,在做系统架构时,不得不去考虑 IE 同时只能从同一域名下载两个文件的限制。如果超过两个文件,IE 将会以队列形式等待两个文件下载完毕,再去下载接下来的两个文件。这样,当在一个页面显示多张图片时,IE 用户的图片下载速度就会受到影响。
百度、新浪、雅虎等网站采用了同一组图片服务器,使用多个二级域名的方式来解决这个问题。
通过 HttpWatch Professional 5.2.17 分析可以看出,百度的图片搜索采用了 t1.baidu.com ~ t8.baidu.com 八个域名来显示图片,消耗在 IE 浏览器端的 Blocked 时间小于0.001秒,非常快。
至于原因请见 MSDN Blogs:《Internet Explorer and Connection Limits》,如何解除限制请见微软客户帮助与支持主页:《如何将 Internet Explorer 配置为可以同时进行两个以上的下载会话》。
不管 Firefox 有多火,无可否认,IE 仍然是浏览器市场的老大。所以,在做系统架构时,不得不去考虑 IE 同时只能从同一域名下载两个文件的限制。如果超过两个文件,IE 将会以队列形式等待两个文件下载完毕,再去下载接下来的两个文件。这样,当在一个页面显示多张图片时,IE 用户的图片下载速度就会受到影响。
百度、新浪、雅虎等网站采用了同一组图片服务器,使用多个二级域名的方式来解决这个问题。
通过 HttpWatch Professional 5.2.17 分析可以看出,百度的图片搜索采用了 t1.baidu.com ~ t8.baidu.com 八个域名来显示图片,消耗在 IE 浏览器端的 Blocked 时间小于0.001秒,非常快。
搬了家,与Micro$oft为邻[原创]
[ 2008-2-26 09:28 | by 张宴 ]
2月24日,搬了家,离开了居住将近1年的福缘门。新租的房子在三元桥某居民小区的住宅楼第10层,放眼望去,微软(中国)有限公司所在地----盛世大厦上的“Microsoft”标志清晰地映入眼帘。
呵呵,在买的期房入住之前的这一年,我恐怕会经常在 Microsoft 的陪伴下,做着 Linux 的梦了。
呵呵,在买的期房入住之前的这一年,我恐怕会经常在 Microsoft 的陪伴下,做着 Linux 的梦了。
一个分类搜集了众多开源软件官方网址的站点
[ 2008-2-23 22:36 | by 张宴 ]
Links Collection of OpenSource Software
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
http://www.designandcommunication.co.jp/Nakano/
一个日本的网站,上面分类搜集了众多开源软件的官方网站地址。
例如:
数据库类别:http://www.designandcommunication.co.jp/Nakano/Dev/Database.html
HTTP服务器类别:http://www.designandcommunication.co.jp/Nakano/Net/HTTP.html
dbcached──“分布式 key-value 数据库内存缓存系统”发布[原创]
[ 2008-2-18 20:22 | by 张宴 ]
前言:dbcached 1.0 beta* 在 Memcached 1.2.4 的基础上编写而成,也是我的第一个开源C项目。编写 dbcached 的目的是为了最大限度的发挥 Memcached 内存缓存的优势,便捷地维护 Memcached 服务器节点哈希列表,智能地支持 Memcached 故障转移,同时保证数据的持久化存储。
dbcached
协议:New BSD License
作者:张宴
网址:http://code.google.com/p/dbcached/
dbcached 是什么?
● dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。
● dbcached = Memcached + 持久化存储管理器 + NMDB 客户端接口
● Memcached 是一款高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
● NMDB 是一款多协议网络数据库(dbm类)管理器,它由内存缓存和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据库。
● QDBM 是一个管理数据库的例程库,它参照 GDBM 为了下述三点而被开发:更高的处理速度,更小的数据库文件大小,和更简单的API。QDBM 读写速度比 Berkeley DB 要快,详细速度比较见《Report of Benchmark Test》。
Memcached 和 dbcached 在功能上一样吗?
● 兼容:Memcached 能做的,dbcached 都能做。除此之外,dbcached 还将“Memcached、持久化存储管理器、NMDB 客户端接口”在一个程序中结合起来,对任何原有 Memcached 客户端来讲,dbcached 仍旧是个 Memcached 内存对象缓存系统,但是,它的数据可以持久存储到本机或其它服务器上的 QDBM 或 Berkeley DB 数据库中。
dbcached
协议:New BSD License
作者:张宴
网址:http://code.google.com/p/dbcached/
dbcached 是什么?
● dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。
● dbcached = Memcached + 持久化存储管理器 + NMDB 客户端接口
● Memcached 是一款高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
● NMDB 是一款多协议网络数据库(dbm类)管理器,它由内存缓存和磁盘存储两部分构成,使用 QDBM 或 Berkeley DB 作为后端数据库。
● QDBM 是一个管理数据库的例程库,它参照 GDBM 为了下述三点而被开发:更高的处理速度,更小的数据库文件大小,和更简单的API。QDBM 读写速度比 Berkeley DB 要快,详细速度比较见《Report of Benchmark Test》。
Memcached 和 dbcached 在功能上一样吗?
● 兼容:Memcached 能做的,dbcached 都能做。除此之外,dbcached 还将“Memcached、持久化存储管理器、NMDB 客户端接口”在一个程序中结合起来,对任何原有 Memcached 客户端来讲,dbcached 仍旧是个 Memcached 内存对象缓存系统,但是,它的数据可以持久存储到本机或其它服务器上的 QDBM 或 Berkeley DB 数据库中。
年关将近,最近真够忙的。边查找解决服务器故障,边用C语言写“Memcached→MySQL”关联程序,边用PHP做删除黄色图片及更新Cache的接口程序,边弄异地IDC数据同步测试,边讨论年后的新架构,时不时的还有一些多多少少的新需求进来。明天恐怕还得当一回画家,绘出新的系统架构图。
湖南千里冰封,人车难行,北京游子如织,一票难求。
昨天为线上一组Nginx+PHP服务器的PHP5.2.5(FastCGI)加上了xcache,增大php-cgi进程数为250,系统负载马上降下来了,维持在1左右,访问速度提高不少。
确定PHP5.2.5(FastCGI)进程数是否够用的方法: 可以统计出当前正在处理请求的FastCGI进程数,如果等于或接近开启的FastCGI进程总数,则不够用,需要优化程序或加大进程数。
1月30日参加了新浪年会,开始节目精彩,但后来恶搞过多,则乏味了,而且sohu听了会很生气。
同事拍摄的年会照片:http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798&page=1
年会视频:http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=1534667&uid=1244293405#11508575
被评为“2007年度新浪互动社区事业部优秀员工”,截图一张。要写“获奖感言”的朋友,可以改改,或许能用得上,免得费时间去搜了。
湖南千里冰封,人车难行,北京游子如织,一票难求。
昨天为线上一组Nginx+PHP服务器的PHP5.2.5(FastCGI)加上了xcache,增大php-cgi进程数为250,系统负载马上降下来了,维持在1左右,访问速度提高不少。
确定PHP5.2.5(FastCGI)进程数是否够用的方法:
引用
netstat -anpo | grep php-cgi | wc -l
1月30日参加了新浪年会,开始节目精彩,但后来恶搞过多,则乏味了,而且sohu听了会很生气。
同事拍摄的年会照片:http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798&page=1
年会视频:http://you.video.sina.com.cn/pg/topicdetail/topicPlay.php?tid=1534667&uid=1244293405#11508575
被评为“2007年度新浪互动社区事业部优秀员工”,截图一张。要写“获奖感言”的朋友,可以改改,或许能用得上,免得费时间去搜了。
Nginx versus Apache (两者的对比)
[ 2008-1-28 09:25 | by 张宴 ]
工作一周年纪念[原创]
[ 2008-1-25 17:12 | by 张宴 ]
2007年1月20日,离开武汉;
2007年1月21日,抵达北京;
2007年1月23日,新浪面试;
2007年1月25日,到岗工作。
待续......
2007年1月21日,抵达北京;
2007年1月23日,新浪面试;
2007年1月25日,到岗工作。
待续......
又一个新浪UNIX开源软件项目──xbayDNS
[ 2008-1-21 21:52 | by 张宴 ]
xbayDNS
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
协议:New BSD License
作者:huangdong
团队:新浪研发中心──系统研发
网址:http://code.google.com/p/xbaydns/
xBayDNS是一个基于Web的BIND 9管理界面。与通常我们所知道的管理界面所不同的是,它尽可能的将DNS的管理简化,并帮助用户建立起一个容易管理、维护、扩展的DNS系统。
一个普通的DNS服器可以提供域名的解析、代理、缓存这样的服务。我们期望DNS不但是一个服务,它更应该承担起GSLB、用户访问加速这样的任务。而在现实的环境中,应用DNS已经能够很好的完成这样的工作。所以沿着从前的经历,我们启动了xBayDNS这个项目,它的目的是让DNS服务在承担着GSLB和访问加速这样的工作时更容易管理。做为xBayDNS附加的礼物,也可以从中学到如何形成一个基于DNS的GSLB和用户访问加速的原理。
xBayDNS的特性如下:
• 基于Web的BIND管理
• 非常容易的支持多种操作系统(现有我们考虑支持的就有FreeBSD、OpenBSD、MacOSX、Linux)
• 支持ACL、View、TSIG这样的BIND高级管理功能
什么时候使用xBayDNS?
• 你需要简单的管理一台BIND的DNS服务器
• 你需要多台DNS服务器来为你的用户提供解晰服务
• 一套基于DNS的GSLB系统
• 一套基于DNS的分布式GSLB系统
• 你需要维护多台分布式的服务器
安装:
新浪发起的UNIX开源软件项目
[ 2008-1-10 08:45 | by 张宴 ]
Memcachedb
协议:New BSD License
作者:stvchu, gary.caokai, forever.sky81
团队:新浪互动社区事业部──博客产品
网址:http://www.memcachedb.org/
Memcachedb = memcache + Berkeley DB
Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。
前端:memcached的网络层
后端:Berkeley DB存储
写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。
• 支持的memcache命令
get, set, add, replace
incr, decr
delete
stats
flush_all
• 私有命令
db_checkpoint, db_archive
db_ismaster, db_whoismaster (for replication)
编译及安装方法:
http://blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
ncache
协议:New BSD License
作者:shinepf, shuiyang
团队:新浪互动社区事业部──博客产品
网址:http://code.google.com/p/ncache/
ncache是一款基于nginx的缓存系统,比Squid更快更高效。
01
协议:New BSD License
作者:stvchu, gary.caokai, forever.sky81
团队:新浪互动社区事业部──博客产品
网址:http://www.memcachedb.org/
Memcachedb = memcache + Berkeley DB
Memcachedb是一款支持高并发的分布式持久存储系统,对任何原有memcached客户端来讲,它仍旧是个memcached,但是,它的数据是可以持久存储的。
前端:memcached的网络层
后端:Berkeley DB存储
写速度:从本地服务器通过memcache客户端(libmemcache) set 2亿条16字节长的key,10字节长的Value的记录,耗时16572秒,平均速度12000条记录/秒。
读速度:从本地服务器通过memcache客户端(libmemcache) get 100万条16字节长的key,10字节长的Value的记录,耗时103秒,平均速度10000条记录/秒。
• 支持的memcache命令
get, set, add, replace
incr, decr
delete
stats
flush_all
• 私有命令
db_checkpoint, db_archive
db_ismaster, db_whoismaster (for replication)
编译及安装方法:
http://blog.csdn.net/simonlsy/archive/2008/01/07/2027940.aspx
ncache
协议:New BSD License
作者:shinepf, shuiyang
团队:新浪互动社区事业部──博客产品
网址:http://code.google.com/p/ncache/
ncache是一款基于nginx的缓存系统,比Squid更快更高效。
01