April 1, 2010
找到一款不错的网站压力测试工具webbench[原创]
"webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。\n1、适用系统:Linux\n2、编译安装:\nwget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz\ntar zxvf webbench-1.5.tar.gz\ncd webbench-1.5\nmake \u0026amp;\u0026amp; make install\n3、使用:\nwebbench -c 500 -t 30 http://127.0.0.1/test.jpg\n参数说明:-c表示并发数,-t表示时间(秒)\n4、测试结果示例:\nWebbench – Simple Web Benchmark 1.5\nCopyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://127.0.0.1/test.jpg\n500 clients, running 30 sec.\nSpeed=3230 …"
April 1, 2010
我所熟悉的网站负载均衡技术[原创]
"DNS轮循 DNS轮循是指将相同的域名解释到不同的IP,随机使用其中某台主机的技术。但其具有明显 的缺点:一旦某个服务器出现故障,即使及时修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间,保存了故障服务器地址的客户计算 机将不能正常访问服务器。DNS负载均衡采用的是简单的轮循负载算法,不能区分服务器的差异,不能反映服务器的当前运行状态,不能做到为性能较好的服务器 多分配请求,甚至会出现客户请求集中在某一台服务器上的情况。\nF5 BIG-IP 简介:F5 Networks 公司的著名硬件负载均衡交换机。支持硬件四层、七层交换。不同的型号性能不同,BIG-IP 6400可以支持800万条并发连接,低一点型号的可以支持400万条以上的并发连接。性能极高,但价格也不菲。 价格:BIG-IP 6400的价格在16万元人民币左右。 网址: http://www.f5.com.cn/(中国) http://www.f5.com/(全球)\nLVS(Linux Virtual Server) 简介:软件四层交换。LVS是在Linux内核中 作四层交换,只花128个字节记录一个连接 …"
April 1, 2010
Linux服务器系统监控框架与MSN、E-mail、手机短信报警的实现[原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.06.25 转载请注明原文链接: http://blog.s135.com/read.php/354.htm]\n最近,在我原有的“Linux服务器系统监控程序”基础上,完善了HTTP、TCP、MySQL主动监控与MSN、E-mail、手机短信报警。监控程 序以shell和PHP程序编写,以下为主要框架与部分代码:\n一、系统监控接口程序(interface.php)具有的报警方式 1、MSN实时报警 ①、监控程序每次检测到故障存在、或者故障恢复,都会发送短消息到管理员的MSN。\n发送MSN短消息用了一个PHP类: sendMsg,使用该PHP类发消息,必须将发送、接收双方的MSN加为联系人,发送中文时,先用iconv 将字符集转为UTF-8:\n引用\n$sendMsg-\u0026gt;sendMessage(iconv(“GBK”, “UTF-8”, $message), ‘Times New Roman’, ‘008000’);\n2、 手机短信报警 ①、工作日早上10点之前,晚上6点之后,以及周六、周日,监控程序检测到故障,会调用手机短信 …"
April 1, 2010
采用curl库在PHP程序之间传递数组[原创]
"[文章作者:张宴 本文版本:v1.1 最后修改:2007.08.23 转载请注明出处: http://blog.s135.com]\n最近在工作中遇到一个问题:a.php程序需要将接收到的数据同时写到“线上运行的正式数据库”和“进行开发调试的测试数据库”。而测试数据库可能经常 会面临对表结构、字段、配置信息做调整等问题,很不稳定,发生错误的概率很高,如果用a.php程序同时写“正式数据库”和“测试数据库”,势必影响到线 上运行的正式服务。\n于是,我想到用PHP curl扩展库将生成的$data数组post传递一份给b.php程序,然后a.php程序继续往下执行写“正式数据库”的代码。a.php程序 将$data数组传递给b.php程序就完事了,至于b.php如何处理,就不关a.php的事了,b.php程序即使写“测试数据库”失败,也不会对 a.php程序造成影响。\n按照这种思路,我写了a.php和b.php的代码:\na.php程序源代码:\nview plain print ?\n$data[“username”]=“张宴”; $data[“password”]=“不知 道”; …"
April 1, 2010
同一域名对应多个IP时,PHP获取远程网页内容的函数 [原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接: http://blog.s135.com/post/389/]\nPHP获取远程网页内容有多种方式,例如用自带的file_get_contents、fopen等函数。\n引用\necho file_get_contents(“ http://blog.s135.com/abc.php”);\n?\u0026gt;\n但是,在DNS轮询等负载均衡中,同一域名,可能对应多台服务器,多个IP。假设 blog.s135.com被DNS解析到72.249.146.213、72.249.146.214、72.249.146.215三个IP,用户每 次访问blog.s135.com,系统会根据负载均衡的相应算法访问其中的一台服务器。\n上周做一个视频项目时,就碰到这样一类需 求:需要依次访问每台服务器上的一个PHP接口程序(假设为abc.php),查询这台服务器的传输状态。\n这时就不能直接用 file_get_contents访问 http://blog.s135.com/abc.php 了,因为它可能一直重复访问某一台服务器。\n …"
April 1, 2010
使用Nginx轻松实现开源负载均衡──9 月20日在ChinaUnix技术沙龙上的演讲PPT[原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.09.21 转载请注明原文链接: http://blog.s135.com/post/369/]\n9月20日下午,我应邀参加了 ChinaUnix 举办的以“如何搞定服务器负载均衡?”为主题的技术沙龙( http://linux.chinaunix.net/bbs/thread-1019366-1-1.html), 很高兴能够跟诸多业界精英一起探讨交流,很荣幸能够与Unix资深系统工程师──田逸、HonestQiao,以及F5资深技术工程师──杨明非,同台演 讲。\n《使用Nginx轻松实现开源负载均衡》是我的演讲PPT(PowerPiont),现提供下载。\nPPT分为四个 部分: 1、介绍Nginx的基本特征,以及使用Nginx做负载均衡器的理由。\n2、用实例,来介绍 Nginx负载均衡在大型网站的典型应用。\n3、以实现网站动静分离为原型,对NetScaler硬件七层负载均衡和Nginx软件负 载均衡做一个对比。\n①、NetScaler负载均衡交换机动静分离系统架构图 ②、Nginx …"
April 1, 2010
Nginx 简单的负载均衡配置示例[原创]
"www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP。\n用户访问 http://www.s135.com,将其负载均 衡到192.168.1.2:80、192.168.1.3:80、192.168.1.4:80、192.168.1.5:80四台服务器。\n用户访问 http://blog.s135.com, 将其负载均衡到192.168.1.7服务器的8080、8081、8082端口。\n以下为配置文件nginx.conf:\n引用\nuser www www;\nworker_processes 10;\n#error_log logs/error.log;\n#error_log logs/error.log notice;\n#error_log logs/error.log info;\n#pid logs/nginx.pid;\n#最大文件描述 符\nworker_rlimit_nofile 51200;\nevents\n{\nuse epoll;\nworker_connections 51200;\n}\nhttp\n{\ninclude …"
April 1, 2010
Nginx+PHP+MySQL双机互备、全自动切换方案 [原创]
"[文章作者:张宴 本文版本:v1.0 最后修改:2008.11.19 转载请注明原文链接: http://blog.s135.com/post/379/]\n在生产应用中,某台“Nginx+PHP+MySQL”接口数据服务器,扮演的角色十分重要,如果服务器硬件或Nginx、MySQL发生故障,而短时 间内无法恢复,后果将非常严重。为了避免单点故障,我设计了此套方案,编写了failover.sh脚本,实现了双机互备、全自动切换,故障转移时间只需 几十秒。\n一、双机互备、全自动切换方案: 1、拓扑图: 2、解释: (1)、假设外网域名blog.s135.com解析到外网虚拟IP 72.249.146.214上,内网hosts设置db10对应内网虚拟IP 192.168.146.214\n(2)、默认情况 下,由主机绑定内、外网虚拟IP,备机作为备份,当主机的MySQL、Nginx或服务器出现故障无法访问时,备机会自动接管内、外网虚拟IP。两台服务 器都启动负责监控、自动切换虚拟IP的守护进程/usr/bin/nohup /bin/sh …"
April 1, 2010
修改phpMyAdmin使其能够管理多台远程MySQL 服务器[转载]
"[文章作者:张宴 本文版本:v1.2 最后修改:2007.07.09 转载请注明出处: http://blog.s135.com]\n需 求背景: phpMyAdmin是一款不错的MySQL在线管理工具,但phpMyAdmin的cookie登录方式只能输入MySQL数据库 的用户名和密码,而想更改MySQL服务器地址和端口则须修改其配置文件config.default.php。当拥有多台数据库服务器,每台服务器又在 不同端口启动了多个MySQL服务,每次都修改配置文件就显得很麻烦,因此需要能够在登录界面直接输入MySQL服务器地址和端口的功能。\n功 能要求: 假设phpMyAdmin的访问网址为 http://192.168.1.25/phpmyadmin/,能够通过输入MySQL服务器地址、端口、 用户名、密码登录远程MySQL服务器,对远程数据库进行管理。\n修改后的phpMyAdmin登录入口截图: 下 载地址: http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024\n实 现步骤:\n1、打开“路 …"
April 1, 2010
MySQL数据库服务器在Flickr、Fotolog、 Wkipedia、Facebook等国际知名网站中的使用数量
"2008年4月18日,在Alexa安排的一次“ Scaling MySQL — Up or Out?”的小组辩论中,MySQL、Sun、 Flickr、Fotolog、Wkipedia、Facebook、YouTube等国际知名网站的DBA们,对其网站MySQL数据库服务器、Web 服务器、缓存服务器的数量,MySQL版本,编程语言类型,操作系统类型等问题进行了回答。 "