December 10, 2011
FreeBSD/Linux下安装cacti的memcached的监控插件
"\u003cp\u003e因为python的模板使用了python来获取数据,所以需要安装python环境以及python的memcached客户端\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1.安装ez_setup工具\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewget -q \u003ca href=\"http://peak.telecommunity.com/dist/ez_setup.py\"\u003ehttp://peak.telecommunity.com/dist/ez_setup.py\u003c/a\u003e\npython ez_setup.py\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e2.安装python的memcached客户端\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewget \u003ca href=\"ftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz\"\u003eftp://ftp.tummy.com/pub/python-memcached/python-memcached-1.45.tar.gz\u003c/a\u003e\ntar -zxvf python-memcached-1.45.tar.gz\ncd python-memcached-1.45\npython setup.py install\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e\u003cstrong\u003e3.下载cacti的memcached模板\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewget \u003ca href=\"http://content.dealnews.com/dealnews/developers/cacti-memcached-1.0.tar.gz\"\u003ehttp://content.dealnews.com/dealnews/developers/cacti-memcached-1.0.tar.gz\u003c/a\u003e\ntar -zxvf cacti-memcached-1.0.tar.gz\ncd cacti-memcached …\u003c/p\u003e\u003c/blockquote\u003e"
December 7, 2011
rpm 常用命令
"\u003cp\u003erpm 常用命令\n1.安装一个包\n# rpm -ivh\u003c/p\u003e\n\u003cp\u003e2.升级一个包\n# rpm -Uvh\u003c/p\u003e\n\u003cp\u003e3.移走一个包\n# rpm -e\u003c/p\u003e\n\u003cp\u003e4.安装参数\n–force 即使覆盖属于其它包的文件也强迫安装\n–nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。\u003c/p\u003e\n\u003cp\u003e5.查询一个包是否被安装\n# rpm -q \u0026lt; rpm package name\u0026gt;\u003c/p\u003e\n\u003cp\u003e6.得到被安装的包的信息\n# rpm -qi \u0026lt; rpm package name\u0026gt;\u003c/p\u003e\n\u003cp\u003e7.列出该包中有哪些文件\n# rpm -ql \u0026lt; rpm package name\u0026gt;\u003c/p\u003e\n\u003cp\u003e8.列出服务器上的一个文件属于哪一个RPM包\n#rpm -qf\u003c/p\u003e\n\u003cp\u003e9.可综合好几个参数一起用\n# rpm -qil \u0026lt; rpm package name\u0026gt;\u003c/p\u003e\n\u003cp\u003e10.列出所有被安装的rpm package\n# rpm -qa\u003c/p\u003e\n\u003cp\u003e11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?\n# rpm -qilp \u0026lt; rpm package name\u0026gt;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u0026lt;\u0026gt;\u003c/strong\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cstrong\u003e一、安装\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e命令格式:\u003c/p\u003e"
December 7, 2011
利用autobench测试web服务器极限并发数
"\u003ch1 id=\"一目的\"\u003e一、目的\u003c/h1\u003e\n\u003cp\u003e利用autobench工具结合httperf命令对web服务器进行测试,得出该服务器可以承载的最大并发连接数与最佳并发数。\u003c/p\u003e\n\u003ch1 id=\"二测试工具\"\u003e二、测试工具\u003c/h1\u003e\n\u003ch2 id=\"工具介绍\"\u003e工具介绍\u003c/h2\u003e\n\u003ch3 id=\"1httperf\"\u003e1、Httperf\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://code.google.com/p/httperf/\"\u003ehttperf\u003c/a\u003e 是一款高性能的HTTP测试工具,使用它我们可以准确定位服务器的并发连接能力。下面介绍一下它的主要特征\u003c/p\u003e\n\u003cp\u003e(1) 可以观察测试客户端(并非被测服务器)在发起压力测试时的负载情况。这样在测试高并发的情况下可以准确的分析问题。(被测服务器无法承载高并发还是测试客户端无法发起过多请求)\n(2)支持HTTP/1.1和SSL\n(3)可以生成可扩展的测试计划\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e下载\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e安装\u003c/strong\u003e:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e# tar xvzf httperf-0.9.0.tar.gz\n# cd httperf-0.9.0\n#./configure\n# make \u0026amp;\u0026amp; make install\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e更多的使用方法参见man page。\u003c/p\u003e\n\u003ch3 id=\"2autobench\"\u003e2、autobench\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://www.xenoclast.org/autobench/\"\u003eautobench\u003c/a\u003e 是一款基于httperf的Perl脚本。它会在一次测试中调用多次httperf来对web服务器进行测试,每次会按照给定的参数增加并发连接数,将httperf的测试结果保存 …\u003c/p\u003e"
December 7, 2011
velocity2011讲师经验总结及velocity2011的ppt下载[54chen]
"\u003cp\u003e总结:\n1)会场有点小,比较热\n2)讲的东西为了照顾更多人,比较片面,如果有想听深入的同学,可以参加我们 \u003ca href=\"http://blog-brother.com/\"\u003e哥学社\u003c/a\u003e 的吃喝会。\n3)会上遇到了douban强宁大侠、安全宝的冯大侠、还有一位来自清华的主任、以及各位一线的朋友恕不能一一列出,深感荣幸。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ca href=\"http://www.slideshare.net/54chen/ss-10490088\" title=\"互联网创业服务器运维工具集\"\u003e互联网创业服务器运维工具集\u003c/a\u003e\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eView more \u003ca href=\"http://www.slideshare.net/\"\u003epresentations\u003c/a\u003e from \u003ca href=\"http://www.slideshare.net/54chen\"\u003ezhen chen\u003c/a\u003e.\u003c/p\u003e"
November 29, 2011
raid演示flash
"\u003cp\u003e本文件为exe格式的.点击下载: \u003ca href=\"/wp-content/uploads/2011/10/raid.exe\"\u003ehttp://blog.haohtml.com/wp-content/uploads/2011/10/raid.exe\u003c/a\u003e\u003c/p\u003e"
November 29, 2011
magent编译及常见错误解决办法
"\u003cp\u003e# 编译magent\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecd /home/lnmp/src\nmkdir magent\ncd magent/\nwget \u003ca href=\"http://memagent.googlecode.com/files/magent-0.5.tar.gz\"\u003ehttp://memagent.googlecode.com/files/magent-0.5.tar.gz\u003c/a\u003e\ntar zxvf magent-0.5.tar.gz\n/sbin/ldconfig \u0026amp;\u0026amp; sed -i “s#LIBS = -levent#LIBS = -levent -lm#g” Makefile\nmake\nmkdir -p /usr/local/webserver/magent/bin\ncp magent /usr/local/webserver/magent/bin/magent\ncd ../\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003e错误1:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003egcc -lrt -Wall -g -O2 -I/usr/local/include -m64 -c -o magent.o magent.c\nmagent.c: In function ‘writev_list’:\nmagent.c:729: error: ‘SSIZE_MAX’ undeclared (first use in …\u003c/p\u003e\u003c/blockquote\u003e"
November 29, 2011
Memcached代理软件 magent
"\u003cp\u003emagent是一款开源的Memcached代理服务器软件。\n\u003cstrong\u003e命令参数:\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003c/blockquote\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003e-h this message\n-u uid\n-g gid\n-p port, default is 11211. (0 to disable tcp support)\n-s ip:port, set memcached server ip and port\n-b ip:port, set backup memcached server ip and port\n-l ip, local bind ip address, default is 0.0.0.0\n-n number, set max connections, default is 4096\n-D don\u0026#39;t go to background\n-k use ketama key allocation algorithm\n-f file, unix socket path to listen on. default is off\n-i number, max keep alive connections for one memcached …\u003c/code\u003e\u003c/pre\u003e"
November 29, 2011
memcached 集群单点故障解决方案
"\u003cp\u003emagent是一款开源的Memcached代理服务器软件,其项目网址为: \u003ca href=\"http://code.google.com/p/memagent/\"\u003ehttp://code.google.com/p/memagent/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e一、安装步骤:\u003c/strong\u003e\n1、编译安装libevent:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ewget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz\ntar zxvf libevent-1.4.9-stable.tar.gz\ncd libevent-1.4.9-stable/\n./configure --prefix=/usr\nmake \u0026amp;\u0026amp; make install\ncd ../\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e2、编译安装Memcached:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003ewget http://danga.com/memcached/dist/memcached-1.2.6.tar.gz\ntar zxvf memcached-1.2.6.tar.gz\ncd memcached-1.2.6/\n./configure --with-libevent=/usr\nmake \u0026amp;\u0026amp; make install\ncd ../\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e3、编译安装magent:\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003emkdir …\u003c/code\u003e\u003c/pre\u003e"
November 24, 2011
由浅入深理解索引的实现
"\u003cp\u003e\u003cstrong\u003e00 – 背景知识\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– B-Tree \u0026amp; B+Tree\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/B%2B_tree\" title=\"B+Tree\"\u003ehttp://en.wikipedia.org/wiki/B%2B_tree\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/B-tree\" title=\"B-Tree\"\u003ehttp://en.wikipedia.org/wiki/B-tree\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– 折半查找(Binary Search)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://en.wikipedia.org/wiki/Binary_search_algorithm\" title=\"Binary Search\"\u003ehttp://en.wikipedia.org/wiki/Binary_search_algorithm\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– 数据库的性能问题\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA. 磁盘IO性能非常低,严重的影响数据库系统的性能。\u003c/p\u003e\n\u003cp\u003eB. 磁盘顺序读写比随机读写的性能高很多。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– 数据的基本存储结构\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA. 磁盘空间被划分为许多大小相同的块(Block)或者页(Page).\u003c/p\u003e\n\u003cp\u003eB. 一个表的这些数据块以链表的方式串联在一起。\u003c/p\u003e\n\u003cp\u003eC. 数据是以行(Row)为单位一行一行的存放在磁盘上的块中,如图所示.\u003c/p\u003e\n\u003cp\u003eD. 在访问数据时,一次从磁盘中读出或者写入至少一个完整的Block。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://www.mysqlops.com/wp-content/uploads/2011/11/fig12.jpg\"\u003e\u003cimg src=\"http://www.mysqlops.com/wp-content/uploads/2011/11/fig12.jpg\" alt=\"\"\u003e\u003c/a\u003e\n Fig. 1\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e01 – 数据基本操作的实现\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e基本操作包括:INSERT、UPDATE、DELETE、SELECT。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e– SELECT\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA. 定位数据\u003c/p\u003e\n\u003cp\u003eB. 读出数据所在的块,对数据 …\u003c/p\u003e"
November 22, 2011
varnish英文手册生词
"\u003cp\u003e当客户端请求相同的页面时.varnish只发送一个请求到后端(backend)机器,等后面返回数据信息的时候再copy多份\u003c/p\u003e\n\u003cp\u003eserve – 服务\u003c/p\u003e\n\u003cp\u003eplethora – 过多\u003c/p\u003e\n\u003cp\u003eencounter – 遇到\u003c/p\u003e\n\u003cp\u003ehopefully – 希望\u003c/p\u003e\n\u003cp\u003eGuru – 领袖\u003c/p\u003e\n\u003cp\u003emeditation – 冥想\u003c/p\u003e\n\u003cp\u003erelevant – 有关\u003c/p\u003e\n\u003cp\u003eprobably – 可能\u003c/p\u003e\n\u003cp\u003eclue – 线索\u003c/p\u003e\n\u003cp\u003eransaction – 交易\u003c/p\u003e\n\u003cp\u003eelaboration – 拟定\u003c/p\u003e\n\u003cp\u003efurther – 进一步\u003c/p\u003e\n\u003cp\u003evarious – 各种\u003c/p\u003e\n\u003cp\u003eDirector – 主任\u003c/p\u003e\n\u003cp\u003eresilience – 弹性\u003c/p\u003e\n\u003cp\u003edistribute – 分发\u003c/p\u003e\n\u003cp\u003eprobe – 探头\u003c/p\u003e\n\u003cp\u003estale – 陈旧\u003c/p\u003e\n\u003cp\u003ecoalesce – 合并\u003c/p\u003e\n\u003cp\u003eidentical – 相同\u003c/p\u003e\n\u003cp\u003eshield – 盾\u003c/p\u003e\n\u003cp\u003eMisbehave – 胡作非为\u003c/p\u003e\n\u003cp\u003eability – 能力\u003c/p\u003e\n\u003cp\u003eGrace – 恩典(优雅,恩,恩惠)\u003c/p\u003e"
November 22, 2011
浅谈伪分布式数据库架构
"\u003cp\u003e\u003cstrong\u003e浅谈伪分布式数据库架构\u003c/strong\u003e\u003c/p\u003e\n\u003chr\u003e"
November 22, 2011
如何构建千万用户级别后台数据库架构设计的思路
"\u003cp\u003e【 \u003cstrong\u003e导读\u003c/strong\u003e】\u003c/p\u003e\n\u003cp\u003e关于如何构建千万级别用户的后台数据库架构话题,在ITPUB及CSDN论坛都有不少网友提问,新型问答网站知乎上也有人提问,并且顺带梳理了下思路,方便更多的技术朋友有章可循,整理一篇抛砖引玉性的文章。\u003c/p\u003e\n\u003cp\u003e一、 \u003cstrong\u003e技术朋友给出的背景资料\u003c/strong\u003e:\u003c/p\u003e\n\u003cp\u003e(1). 网站型应用,主要指:SNS社交网站、新闻门户型网站、邮件系统、SNS Game社交游戏、电子商务网站、即时通信IM等类型系统;\u003c/p\u003e\n\u003cp\u003e(2). 注册用户为千万级别,也即1KW注册用户以内;\u003c/p\u003e\n\u003cp\u003e二、要求\u003c/p\u003e\n\u003cp\u003e构建千万级别用户的后台数据库架构分析思路,对数据层架构设计的有章可循,必须考虑数据量的大小,以及数据库提供服务的性能和系统的可靠性,适当地考虑用户量超过,以及需要使用的服务器资源等信息。\u003c/p\u003e\n\u003cp\u003e三、构建千万级别用户的后台数据库架构的分析思路\u003c/p\u003e\n\u003cp\u003e曾经发过一篇文章,关于千万级别用户应用架构设计的歌谣,供大家参考 \u003ca href=\"http://blog.haohtml.com/archives/12110\"\u003e千万级架构设计诀窍\u003c/a\u003e,接下来我们针对如何构建千万级别用户的后台数据库架构,给出通用性分析思路的建议,未必完全靠谱,但求基本靠谱(注:毕竟很多事情需要看具体业务而定的):\u003c/p\u003e\n\u003cp\u003e(1). 一定要区分业务类型,可能达到千万用户级别的应用业务 …\u003c/p\u003e"
November 21, 2011
图解”How MySQL Replication Works”
"\u003cp\u003e示意图:\n\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/11/mysql-replication-master-slave.jpg\"\u003e\u003cimg src=\"http://blog.haohtml.com/wp-content/uploads/2011/11/mysql-replication-master-slave.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e在使用MySQL的应用中,如果你的MySQL Server压力逐渐增大,在应用层优化已经到了一定瓶颈时,那么你应该首先考虑 \u003ca href=\"http://dev.mysql.com/doc/refman/5.0/en/replication.html\"\u003eMySQL_Replication\u003c/a\u003e。本文将利用图示的方式简单的描述出MySQL Replication是如何工作的。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e如何同步\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e主库将所有的更新操作,写入二进制日志。\u003c/li\u003e\n\u003cli\u003e从库运行”IO线程”(Slave IO Thread)读取主库的二进制日志。\u003c/li\u003e\n\u003cli\u003e从库运行”SQL线程”(Slave SQL Thread)执行IO线程(Slave IO Thread)读取的日志中的SQL,从而保持和主库的一致。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003e如何分配请求\u003c/strong\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e目前,这部分需要在应用层实现。\u003c/li\u003e\n\u003cli\u003e执行更新SQL(UPDATE,INSERT,DELETE)时,请求主库。\u003c/li\u003e\n\u003cli\u003e执行查询SQL(SELECT)时,请求从库。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e所以,当你的应用(Application)SELECT请求所占的比率越大,那么Relication就会越有效。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e相关教程:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eMySQL传输二进制日志原理:\u003c/p\u003e"
November 21, 2011
MySQL传输二进制日志原理
"\u003cp\u003e摘自:\u003c/p\u003e\n\u003cp\u003eMySQL Replication可以很方便的用来做应用的读扩展,也可以帮MySQL实现一定程度的HA方案。MySQL通过\u003ca href=\"http://www.orczhou.com/index.php/2009/04/how-mysql-replication-works/\"\u003e向备库传送二进制日志来实现Replication\u003c/a\u003e,本文将通过二进制日志相关源代码的主要接口来解释:“\u003cstrong\u003eMySQL如何传输二进制日志,是主库推,还是备库拉?MySQL日志传输的实时性如何?\u003c/strong\u003e”。\u003c/p\u003e\n\u003cp\u003e在MySQL Replication结构中,备库端初次通过\u003ca href=\"http://dev.mysql.com/doc/refman/5.1/en/change-master-to.html\"\u003eCHANGE MASTER TO\u003c/a\u003e完成Replication配置,再使用start slave命令开始复制。更细致的,备库通过IO Thread向主库发起读取binlog的请求(COM_BINLOG_DUMP命令),主库收到COM_BINLOG_DUMP请求后,使用单独线程(dump thread)不断向备库IO Thread发送Binlog。示意图:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"http://blog.haohtml.com/wp-content/uploads/2011/11/how_mysql_send_binary_log.jpg\"\u003e\u003cimg src=\"https://blogstatic.haohtml.com//uploads/2023/09/how_mysql_send_binary_log.jpg\" alt=\"\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e在主库端一旦有新的日志产生后,立刻会发送一次广播,dump线程在收到广播后,则会读取二进制日志并通过网络向备库传输日志,所以这是一个主库向备库不断推送的过程;\u003c/p\u003e\n\u003cp\u003e新日志在产生后,只需一次广播和网络就会立刻(\u0026lt;1ms)向发送到备库,如果主备之间网络较好的话(例 …\u003c/p\u003e"
November 21, 2011
varnish中vcl_recv子程序actions 动作
"\u003cp\u003e\u003cstrong\u003e主要有以下动作\u003c/strong\u003e\npass \\当一个请求被pass后,这个请求将通过varnish转发到后端服务器,但是它不会被缓存。pass可以放在vcl_recv 和 vcl_fetch中。\nlookup \\当一个请求在vcl_recv中被lookup后,varnish将从缓存中提取数据,如果缓存中没有数据,将被设置为pass,不能在 vcl_fetch中设置lookup。\npipe \\pipe和 pass相似,都要访问后端服务器,不过当进入pipe 模式后,在此连接未关闭前,后续的所有请求都发到后端服务器(这句是我自己理解后简化的,有能力的朋友可以看看官方文档,给我提修改建议) 。\ndeliver \\请求的目标被缓存,然后发送给客户端\nesi \\ESI-process the fetched document(我理解的就是vcl 中包换一段 html代码)\u003c/p\u003e"