当前位置: 聖騎天下 > 首页

IT人角度分析京东商城Server is too busy事件(转)

IT人角度分析京东商城Server is too busy事件(转)

京东商城策划的正常折扣之后,只要满200元就五折购书活动,营销活动策划的非常成功,但是第一次活动出现无法下单或无法付款等一些问题,提示网购者错误信息为Server is too busy,然后京东商城创始人刘强东先生站在用户角度表达不满意,并且要求加三倍机器也要第二天重新开启购书促销活动,但是第二次活动继续出现Server is too busy。纵观整个事件,不管是活动策划效果,还是京东商城或创始人刘强东先生的危机公关,以及主动透露对待信息部门的态度,都非常成功,唯一失败的是出现戏剧性的Server is too busy,也许没有这个事件京东商城的促销活动并不会引起这么大的影响,个人相信这不是事先策划过的事情,但是此事件暴露京东商城技术实力的薄弱和管理者的落伍,甚至京东商城号称要招5000名工程师等,根据这一系列的信息,我们分别从IT技术从业者技术管理者的角度阐述一些个人的观点,希望对网络世界的我们有所启发或帮助。

(一)营销活动的前期准备及部门协同

我们先围绕2011年11月1号京东商城促销购书营销活动事件展开,超低价促销的营销活动,那么有一些信息就需要运营部门和技术部门合作一起梳理

(1) 参加促销活动的商品种类、商品名称和数量等信息;

(2) 促销活动的力度,持续的时间;

(3) 促销活动可能会吸引多少网购者参与,并发访问量能够达到什么规模,这些要通过事先收集本站及其它竞争对手的过往数据及经验进行综合分析;

(4) 网站不进行特殊的技术处理情况下,能承受多少用户并发购物,并且对不同环节进行预估,尤其京东商城的购物车应用;

(5) 网站提供服务的负载均衡设备、Web应用服务器、后端应用服务器、MemCached等可正常扩容情况下,可以支撑多少购物者同时在线完成购物流程:挑选物品、添加到购物车、填写邮寄地址等信息、付款等;

(6) 把第4,5步骤得出的系统能力,与营销策划活动的部门提供的可能购物者有多少进行最大值和最小值比较,计算出差值并且做好最坏打算,如何保证一定数额的购物者能正常完成购物流程,以及与运营部门商议是否可放宽促销活动的时间宽度,减少并发购物人数的概率性;

(7) 评估是否有条件,以及有合理的时间和资源对策划的运营活动开发一套新的系统,以支撑运营活动的开展;

(8) 对参与促销活动的物品信息及相关物品信息(比如促销为书籍,可能非促销的书籍也会购买,尤其热门书籍),优先生成静态页面储存到专门开辟的MemCached服务器中,提高对用户的响应速度和减少现有系统的负载;

(9) 大型营销活动,还可能涉及CRM部门、财务部门、物流等相关部门,尤其物流涉及的仓储和配送预计能承担的负荷能力,事先告知而避免购物者下单之后抱怨物流太慢或货物质量等问题;

(10) 限时大规模的促销活动,也必定会带来带宽和安全方面的问题,必须做好监测防备DDOS攻击的能力,避免导致营销活动泡汤;

(11) 运营活动结束之后,需要得到什么样的数据分析报告等,都要事先规划好,甚至预演过;

相信京东商城能成为B2C领域独领风骚的公司,内部专业人士可以列出更多更详细的信息,就不继续往下,把上述可能需要大家一起梳理的信息罗列出来一部分,就是告诉大家:我们是一个整体,任何一个环节的疏忽都可能成为瓶颈而导致出问题,要把部门与部门之间配合详细描述清楚,且使营销活动参与支撑的每一个人都清楚自己要做什么,要给别人什么支持或信息,甚至通过梳理信息和商议一些做法,可以达到承载更多的购物者参与促销运营活动,并且为公司节省成本。

(二)营销活动期间出现的故障及关联信息

京东商城网站大量用户出现报错信息(注:笔者也是参与购书活动的用户之一):

IT人角度分析京东商城Server is too busy事件

IT人角度分析京东商城Server is too busy事件

这样大规模营销活动时,其他企业也出现类似的故障花絮,淘宝策划的双十一促销活动也一样出现过故障,而且淘宝开展促销运营活动,是整个阿里的资源都调动起来:支付宝、阿里巴巴(内称B2B)、阿里云、淘宝等子公司都有专门的技术团队参与支持,活动开始之前就早早安排好值班的人员。而京东商城属于B2C型电子商务,无论物品种类、数量等,还是在线购物者都是无法比拟,而且内部还称信息部,这更加证明京东商城,还是类似传统型企业,技术的积累和接受过的挑战并没那么多,为此造成营销活动出现宕机的故障也在所难免,若是说找一个人承担责任的话,那么只能套用一句俗话:一切问题的发生都是管理不当造成的,那么这个责任应该是京东商城的信息部经理承担(注:互联网行业公司一般称技术总监CTO,像阿里巴巴是副总裁,他应该要有能力或意识提前预测可能发生的问题,以及组织架构师、开发人员、DBA、系统工程师等人员寻找应对或解决的办法。

我们继续围绕这一事件及京东商城刘强东先生微博透露的信息,先梳理知道或可猜测的信息:

(1). 单一品种:图书音像类,促销方式为折扣+满200元再打五折;

点评:折扣是其他图书类网站都有,且并不占优势,但是满200元再打五折非常诱人;

(2). 第一次营销活动就出现Server is toow busy的问题且超严重;

点评:技术人难得的挑战机会,结果是京东商城技术人的耻辱。

(3). 第一次营销活动搞砸之后,京东商城创始人刘强东要求增加三倍服务器,坚持促销的3个小时,且确保大家的订单能提交;

猜测:未必真添加3倍的服务器,若真增加了,说明之前使用的服务器数量太少,没重视此事情。

(4). 第二次营销活动依然出现Server is too busy,但是相比较稍好;

分析:部分网购者已经购买成功;系统有改进或优化;服务器也有增加;不少人放弃参加第二次的促销活动。

(5). 三小时促销活动订单为:数十万(注:具体数字不详),超过300W本书籍出售;

推测:订单数30W-50W之间,估计是40W订单出头。

(6). 事后补偿机制:20日内我们会给所有没抢到的老用户发放高额优惠券;

点评:不靠谱的做法,即使发放也不需要等待那么长时间,这也更加间接说明技术实力的薄弱。

(三) 围绕技术方面如何应对高并发

根据官方微博透露出售的书籍信息,及订单数量级,我们可以再大胆猜测大概有30W-50W的网络用户在三个小时促销期内参与购买,而且是分二天完成的,相信一天的促销时间段参与购买者的数字会更低一些,不过这对于一个B2C网站而言确实并发压力不小,假设一台Web服务器能支撑5000个并发,所有用户同时间点添加书籍到购物车中,那么需要600-1000台Web服务器。不过这只是个极端假设,真实的情况肯定不是这样。有几个点肯定容易成为瓶颈:购物车服务、MemCached服务、订单管理服务、支付服务、数据库服务,不清楚内部具体情况,所以只能进行猜测性分析:

(1). 京东商城采用购物车系统,方便网购客进行物品挑选,然后集中完成订单的模式,有区别于淘宝网的模式,为此购物车系统的压力将会非常大。购物车系统服务涉及大量的数据添加和显示操作,甚至修改和删除,数据必须考虑先要你用内存(例如:MemCached、Redis等)方式支持物品数据的增加、修改、删除,并异步更新到数据库中,因此购物车系统需要操作的内存缓存区最好能支持分布式部署和提供数据服务的模式,否则容易成为瓶颈,若是无法水平分布式的方式扩容,那必须进行垂直扩容,不得不考虑更换内存更大及性能更优秀的服务器支持;

(2).MemCached提供读服务是必须的且压力也会不小,但还必须考虑提供写操作,即数据先写入MemCached再队列方式同步到数据库;

(3).队列服务,涉及到一些数据的异步执行和排队等待等事件,在电子商务领域一样非常流行和成熟的技术,鄙人曾参与一个分布式队列项目的研发,达到可以在线部署、停止、调度、监控等功能,尤其是这种网购促销活动队列尤其重要,若是能有此类技术服务,会对整个系统的有序控制非常有帮助;

(4). 提供数据服务的数据库产品为SQL Server,这并不是意味着性能就差,关键是要做到:操作系统不需要的服务必须关闭,磁盘RAID要合理,数据库的设计要合理,索引组织结构要优化好,SQL Server 服务器端参数要配置和优化,重点借助Windows自带的工具就足够监控和分析数据库服务器的性能和瓶颈。主要是数据库服务器往往不容易进行拆分,而实现水平方向的分布式部署注释:SQL Server有一个分布式分区视图功能,可以轻易实现数据的拆分,且不需要应用做任何修改,只是性能相对而言会降低一点)。故可对于一些静态的数据提前预存到后端的缓存系统中,减少数据库服务器的压力,提高对网购者物品信息查询的响应速度;

(5). 提供Web服务的程序为.net编写的,一般做到水平扩展,然后再搭配LVS或F5(注释:听说京东商城使用F5)实现负载均衡设备即可,Web服务层面不会成为瓶颈。若是.net程序代码质量不高,则可能成为瓶颈,就需要更多的机器支持;实际上,.net和Java都是这样的,对程序员的编码水平相对要求较高,不是会写就行,代码质量必须保证很高系统效率才会高,否则写出来的代码会成为网站的瓶颈。

(6). 订单管理系统将会成为压力非常大的服务,需要合并订单和检查库存,分配订单到不同的仓库所在地等,建议只做订单常规的检查,至于订单分配到不同地方仓库处理等事情可以等活动结束之后的1-2个小时内再后台集中处理的模式;

(7).支付服务方面,京东商场有自己的物流配送服务,且提供在线支付和货到付款的模式,具体数字不详,网络上获得的京东商城货到付款比率高达90%;

小结:

曾经微博mysqlops上发过一段话形容“产品、运营、技术”的三角恋关系:成功的产品需要优秀的运营团队;好的运营团队也需要优秀的产品;再好的产品和运营,也要坚如磐石的技术作支撑,否则最多是一座小洋楼;再牛的技术人要是不能服务于产品和运营,就像深锁闺房的黄花大闺女。正确看待三者的关系,就是肯定我们大家的工作,公司或团队才可能取得巨大的成功!

这次大规模的促销毕竟是京东商城的第一次真正体验互联网网购压力,多少会存在预备不足的情况,以及运营部门和技术部门衔接的信息不畅或不到位的情况,关键是出现这些问题之后,是否能借助这些经验教训,进行深刻的对内性反思且发现存在的问题,是否在高位的管理者意识到技术将成为业务发展的瓶颈,毕竟京东商城的运营团队和产品团队已经做得非常棒了,而且B2C领域的市场占有率也非常高,接下来就是如何把这些优势如何发挥得更加明显,那么就需要技术支撑了,相信京东商城2010年至今从阿里系挖了不少技术人员,以及从其他公司搜刮了不少非常优秀的技术人,不至于愿意把他们束之高阁。若是京东商城想成为B2C平台,必须考虑投入资源和放权,让真正能结合业务发展需求且能把握技术方向的能人志士成为主导者,从而实现技术的革新,使其成为产品和运营的一把利剑。

(四)京东商城2012年招聘规划

前面围绕图书音像类满200元五折促销活动事件展开的分析和总结,并且分别从管理和技术的角度给出相关改进建议,我们本节谈一谈京东商城宏伟的2012年招聘计划,相关背景信息:京东商城现有人员大概1.3万名员工,2012年将招收2万名电子商务人才,补充公司发展需要,包括5000名新毕业大学生、1000名软件工程师和1000名有相关从业经历的行业人士。

对我们技术圈人员而言是一大盛事,各大公司都争相聘请更多数量的技术人才,肯定会把技术人员的薪资待遇提高,也许又可以向欧美正常的待遇靠近一步;理智地想一想,这样的虚假繁荣又能维持多久呢?就像团购行业,一开始团购行业的人才待遇风生水起,资本市场也加入这场游戏,谁又能想到最后的结局可能都玩完,反而被淘宝聚划算、大众点评团购等几大原本就有资源优势的公司后发制人,最后市场也做萎缩了,也就导致没有那么多企业生存下来,最后会有很多技术人员被裁掉,好像这样这样做对社会,对企业,对个人而言都不是好事情。

我们接着从企业业务发展需求角度分析,京东商城的业务,主要是自营业务平台,相信后续发展必然会考虑做B2C网购平台,以及自建的物流配送系统等组合在一起,相对于淘宝网的业务和挑战,依然是相差甚远,原因很简单:淘宝网上的注册网店和活跃用户的数量都非常庞大,而且其自己做很多帮助网店卖家如何经营、如何判断自家网店经营状况、营销等方面提供技术支持,也相当多的应用是第三方企业API函数调用的模式提供,也需要管理及监控,另外从订单量和交易额度而言,更加无法比拟,用一句话概括:淘宝网那么大的布局和业务需求,都不需要你所言的工程师数量,为何京东商城要考虑人海战术?

我们再从企业管理的角度分析,先大致罗列几点:

(1).招聘的应届生需要非常多的培训资源,而且需要确保培训的质量,只好要保证几个方面:技能培训,正确做事的方式,企业文化熏陶等方面;

(2).企业人数越来越多,不可避免地会出现企业文化稀释;

(3).部门内部,甚至部门与部门之间的利益或权利的争斗会越来越严重;

(4).正常事情的完成会涉及更多部门或人,而信息传递越来越困难,执行力可能越来越差;

(5).公司的管理组织架构和绩效考核管理等,都必须做相应的变化,不同的企业可能转变方式不太一样,转变的过程可能会出现很多意想不到的事情发展,容易出现严重的不公平性;

(6).技术人员一般都是有一定的技术追求的,若是没有事情可做就等于要废了他们,而京东商城未必有那么的业务发展的事情需要他们去承担,最后的结果可能是优秀的人才走了,剩下的是普通和混日子为主的雇员;

(7).雇佣大量员工,不论管理成本,日常办公等开销,还是最直接的薪资待遇开销,都将是非常客观的数字,而且薪资待遇低还很难吸引到优秀人才;

(8).在IT企业中,千万别把技术人员,当IT民工使用。若是聘请普通或平庸型的技术人才,会比优秀人才给企业带来的成本高得多,优秀人才(备注:指综合素质,人才肯定需要搭配的,莫钻牛角尖)不管是做事情的速度,还是完成的质量等各个方面都会远远超过其他类型人才,而且还可能给企业降低在管理、带宽、硬件、机房等设施方面的资金投入,并且赢得更好的用户体验;

小结:

企业的雇员及业务规模做大并不是万能的,重要的是企业要注重责任、诚信,踏实做好每一件事情,考虑企业发展的速度,尽量挖掘企业内部现有资源,并且补充必需资源,才能有长远的发展。

www.opensoce.com特别注解:据我个人的了解,阿里对运维人员的要求过于细分专业化,以至于他们的工程师更专注于自己细分的方向,而不擅长综合性的处理问题,这样的企业更注重各部门的协作,离开了协作,运维部门无法正常运转。曾经有位阿里的运维工程师到我这里应聘,除了他自己的方向,其他一概不会,而我们需要的是在运维的各个方向都有所涉猎、能够独立处理问题的工程师。这样就可以理解,为什么京东挖走了那么多阿里的运维工程师,如果对他们的分工协作安排不妥当的话(笔者猜测),就无法发挥其应有的作用。

(五)京东商场的云计算规划

看到京东刘强东先生及京东商城官方微博,提出京东商城也要做云计算,个人感觉到非常吃惊!不知道京东商城是要为上市做准备,还是为了面子工程或说为了国家提供的云计算补贴基金,还是京东商城有我们外面人都不曾可预计的庞大业务正在秘密研发或业务将以火箭速度增长呢?

以京东商城现在及未来的业务支撑点而言,不管从京东商城现在还是将来的业务规模看,都没有必要自己做云计算,或说提供云计算服务,国内的情况不能跟国外的Amazon等公司相比较,国内外的环境不一样,也不要跟阿里巴巴马云去比较,他是为自身的电子商务圈而服务,且已经形成规模和布局,不这么做可能违法减低其成本和维持其生态圈的运作,而且阿里巴巴已经具备提供云计算服务的硬件设施条件,以及业务发展需求,可以用一句话说:业务促动其必须考虑搞云计算服务,关于阿里巴巴提供云计算服务的个人看法阐述可以查阅阿里云飞天系统的技术架构

从目前的现状分析(例如:对于未完成抢购下单的用户奖励,需要20天的时间完成,动作太迟缓)及未来业务的发展,京东商城必须搞对内的分布式计算,其内部用户浏览物品信息、购物订单等数据累计到一定程度,就非常有价值,需要学会用数据佐证商业决策、运营活动的开展和产品的规划,以便决策者快速地分析企业业务发展现状,及时地分析自身网站上所产生的用户行为数据,帮助产品和营销的人员,更好地优化产品和用户购物体验,甚至还可以收集竞争对手的数据并加以分析帮助企业做出正确的商业决策。

(六)总结

京东商城B2C购物网站,在京东刘强东先生及管理团队的带领下,从单一的3C产品,发展到现在种类齐全,而且年交易额度也是超100亿元规模,发展的非常迅速,而且京东商城的产品和营销手段也越来越高明,虽然京东刘强东先生本人非常低调,但是京东商城却是越来越高调地做事情,而且做事情的手笔对竞争对手越来越有威胁性,本人相信京东商城会继续领跑独立的B2C电子商场网购业务,但是京东商场还有内功需要修炼,尤其随业务迅速发展,技术壁垒可能会成为其内部的一道坎,但是早已经从外部挖来大量经验丰富的员工,只要给予他们舞台和资源上的支持,相信京东商城下一次促销活动有办法规避出现大规模的Server is too busy事件。

转载自MySQLOPS 数据库与运维自动化技术分享

Linux补丁制作方法

Linux补丁制作方法

Linux补丁制作方法,简单明了: diff -rNu ngx_output_chain.c ngx_output_chain_dx.c >ngx_output_chain.patch 看一段例子,具体做什么的,你懂的:) --- ngx_output_chain.c 2010-10-12 07:06:52.000000000 -0500 +++ ngx_output_chain_dx.c 2011-11-11 01:48:06.335975441 -0600 @@ -565,10 +565,31 @@ } if (n != size) { - ngx_log_error(NGX_LOG_ALERT, ctx->pool->log, 0, - ngx_read_file_n " read only %z of %O from \"%s\"", - n, size, src->file->name.data); - return NGX_ERROR; + int dxcnt=0; + while (dxcnt<5&&n!=size) { + dxcnt++; +#if (NGX_HAVE_FILE_AIO) + ...

«阅读全文

Windows的软连接工具Junction

Windows的软连接工具Junction

在Linux下,用ln -s可以轻松创建软连接,非常方便使用,在Windows下也存在近似功能的软件Junction。 Junction官方下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896768 Junction的参数,源路径和连接路径与ln刚好相反,Linux的ln用法为: ln -s 源路径 连接路径 Junction用法: junction 连接路径 源路径

«阅读全文

undefined reference to `libiconv_open’ @PHP 5.3.8@解决方法

undefined reference to `libiconv_open’ @PHP 5.3.8@解决方法

PHP 5.3.8编译时出现如下错误 ext/gd/libgd/.libs/gdkanji.o: In function `do_convert': /var/soft/php-5.3.8/ext/gd/libgd/gdkanji.c:350: undefined reference to `libiconv_open' /var/soft/php-5.3.8/ext/gd/libgd/gdkanji.c:365: undefined reference to `libiconv' /var/soft/php-5.3.8/ext/gd/libgd/gdkanji.c:381: undefined reference to `libiconv_close' ext/iconv/.libs/iconv.o: In function `_php_iconv_strlen': /var/soft/php-5.3.8/ext/iconv/iconv.c:592: undefined reference to `libiconv_open' /var/soft/php-5.3.8/ext/iconv/iconv.c:615: undefined reference to `libiconv' /var/soft/php-5.3.8/ext/iconv/iconv.c:649: undefined reference to `libiconv_close' ext/iconv/.libs/iconv.o: In function `php_icon...

«阅读全文

Undefined symbols for architecture x86_64: _res_9_init

Undefined symbols for architecture x86_64: _res_9_init

在MAC(OSX)下编译PHP 5.3.8(打开MySQL支持,–with-mysql,–with-mysqli)时会遇到如下错误: Undefined symbols for architecture x86_64:Undefined "symbols for architecture_res_9_init "x86_64,: referenced from: "_res_9_init" , referenced from: _zif_dns_get_mx in dns.o _zif_dns_get_mx _zif_dns_get_record in indns.o dns.o _zif_dns_check_record_zif_dns_get_record inin dns.o _zif_dns_check_record dns.oin dns.o " "_res_9_search",_res_9_search", referenced referenced from: from: _zif_dns_get_mx_zif_dns_get_mx in dns.o in dns.o _zif_dns_get_record in dns.o _zif_dns_get_record...

«阅读全文

MAC编译安装MYSQL 5.5

MAC编译安装MYSQL 5.5

cmake 下载cmake, 官网下载地址: http://www.cmake.org/cmake/resources/software.html 目前最新版本2.8.6,直接下载mac版本即可,我下载的是: http://www.cmake.org/files/v2.8/cmake-2.8.6-Darwin64-universal.dmg mysql用户 因为mac内置mysql, 用户也已经默认添加,所以无需添加mysql用户。 下载mysql 5.5源码 官网下载地址: http://dev.mysql.com/downloads/mysql/, 选择 Generic Linux (Architecture Independent), Compressed TAR Archive(mysql-5.5.17.tar.gz)下载即可 编译安装 cmake . -DCMAKE_INSTALL_PREFIX=/Users/yourname/webs/mysql make && sudo make install make过程中会出现如下错误: /var/folders/d4/3dnh59tx7wd6y2wzl_x8_r700000gn/T//ccyRpMBr.s:596:suffix or operands invalid for `add' make[2]: ...

«阅读全文

SCRIPT设置默认类型为JAVASCRIPT

SCRIPT设置默认类型为JAVASCRIPT

按照W3C标准,script标签必须指明类型,例如: <script type="text/javascript“> alert('Hello!'); </script> 但是在某次分析facebook页面代码时却发现,facebook页面中仅使用了script, 并未按照上述方式使用,当时没有特别注意,只是认为facebook没有遵循标准,直到昨天搞chrome插件时看到一段代码,才发现可以在head中指定script标签的默认类型,设置方法如下: <meta http-equiv="Content-Script-Type" content="text/javascript" /> 按照这样设置之后,在页面中就可以只写<script>标签而无需指定类型。

«阅读全文

only weak aliases are surported in this configuration(MAC/DARWIN)

only weak aliases are surported in this configuration(MAC/DARWIN)

only weak aliases are surported in this configuration 在Mac下编译Gtk2,编译到gdkaliasdef.c和gtkaliasdef.c时会出现以下错误导致编译停止: only weak aliases are surported in this configuration 解决方法 采用正则替换,正则表达式如下(geany): //搜索 __attribute\(\(alias(.*), visibility\("(.*)"\) //替换为 __attribute((weak,alias\1

«阅读全文

OWASP 2011亚洲峰会高端培训

OWASP 2011亚洲峰会高端培训

亚洲峰会高端培训 编号 培训内容 培训时间 培训讲师 培训一 如何使用OWASP项目和工具提升企业安全 11月10日8:00-12:00 Tobias Gondrom 培训二 网银系统安全框架设计 11月10日14:00-18:00 张炜 培训三 OWASP Top 10 及防治 11月11日8:00-12:00 王文君 培训四 安全开发之道-从源头解决和预防安全漏洞 11月11日14:00-18:00 李建蒙 详细介绍请查看:http://www.owasp.org.cn/OWASP_Conference/AppSec_2011/training 1. 如何使用OWASP项目和工具提升企业安全(针对人群:CISO, 高级信息安全经理)语言:英文,视情况确定是否需要同传。 内容: Setting up and improving your global security organisation using mature OWASP projects and tools. Achievin...

«阅读全文

取CPU占用最高的进程ID

取CPU占用最高的进程ID

取CPU占用最高的进程ID 取进程ID ps aux|grep "^www "|awk '{print $3" " $2}'|sort|tail -n 1|awk '{print $2}' #或 ps auxw --sort=%cpu|awk '{print $3" "$2}'|tail -n 1|awk '{print $2}' 你懂的:) 跟踪该进程的动作 strace -p `ps aux|grep "^www "|awk '{print $3" " $2}'|sort|tail -n 1|awk '{print $2}'`

«阅读全文

PHP导致系统负载高、IOWAIT高

PHP导致系统负载高、IOWAIT高

PHP导致系统负载高、IOWAIT高 今天出现一个故障现象:PHP导致系统负载高、IOWAIT高,分析如下: php调用较多是不假,但是为什么iowait会高呢?难道,php所include/require的文件数量比较多最终会导致iowait高? 需要找个合适的时间,对代码进行个小修改,进行跟踪,看看到底涉及到了多少文件的io 文件io多的,就需要进行优化 这个假设性的结论mark下,值得研究

«阅读全文

GBK双字节编码致PHP单引号转义的SQL注入安全隐患

GBK双字节编码致PHP单引号转义的SQL注入安全隐患

GBK双字节编码致PHP单引号转义的SQL注入安全隐患 当php.ini中magic_quotes_gpc被设置为on时,提交的参数会被转义,例如,单引号会被转义成了’。一下子截断了字符型注入的路。 GBK双字节编码:一个汉字用两个字节表示,首字节对应0×81-0xFE,尾字节对应0×40-0xFE(除0x7F),刚好涵盖了对应的编码0x5C。 0xD5 0x5C 对应了汉字“誠”,于是 %d5%5c 经URL解码后为“誠”。 当我们提交参数 %d5′ ,经浏览器URL编码后为%d5%27,再经PHP URL解码后为 0xd50x27,再经PHP转义后为0xd50x5c0x27,即就是在0×27(‘)之前插入了转义符0x5c(\)。当MySQL采用GBK编码连接时,0xd50x5c0x27 这一字节序列就被MySQL作为GBK编码理解:誠’。 这样就吃掉了PHP的转义符,从而突破了单引号转义的限制。 测试脚本如下: <?p...

«阅读全文

解决Android SDK Manager下载慢的问题

解决Android SDK Manager下载慢的问题

在http://developer.android.com/sdk/index.html上可以下载的Android SDK安装包只包含Tools,具体的的SDK还要通过SDK Manager更新、下载。但是这个下载速度很慢,几k左右,安装2.3.1的sdk估计要好几个小时。后经查找发现可以用迅雷下载离线包,然后将离线包放在android-sdk-windows\temp目录下,再进行更新就自动使用离线包安装了。 目前最新的Android 2.3.1 sdk离线包下载位置如下: https://dl-ssl.google.com/android/repository/android-2.3.1_r02-linux.zip 如需下载不同版本的SDK文件,可以尝试先用SDK manager,它会在temp目录创建需要下的文件,用这个temp下的文件名替换上面网址中的文件名就可以使用迅雷下载了。 其他相关的下载地址,文件名修改方法你懂的:) //-- Android SDK Tools, revision 7 https://dl-ssl.google.com/and...

«阅读全文

在火狐5火狐6使用谷歌工具条(Run Google Toolbar in Firefox 5 and Firefox 6)

在火狐5火狐6使用谷歌工具条(Run Google Toolbar in Firefox 5 and Firefox 6)

Open Firefox 5 or Firefox 6 (whichever version is installed on your system) and download a Firefox add-on named Add-on Compatibility Reporter. Install the add-on and restart Firefox. Download Google Toolbar and install it. Restart Firefox again. NOTE: Google won’t allow you to download and install Google Toolbar directly from their website. To download Google Toolbar on your Firefox 5 and Firefox 6 follow the link given above. After installation you would be able to use Google Toolbar on Firefox 5 and Firefox 6. After our rigorous tests, we didn’t find any issue using Google Toolbar on Firefox 6. Firefox will keep sending the incompatible add-on message but i...

«阅读全文

OWASP 2011亚洲峰会11月在北京举行

OWASP 2011亚洲峰会11月在北京举行

2011年11月8-9日,由开源web应用安全项目(OWASP)主办的OWASP 2011亚洲峰会将在北京国际会议中心召开。本届OWASP亚洲峰会将以“互联网安全新思维”为主题,将从“网络安全产品测评”、“OWASP应用安全技术”“业务安全发展新思路”“云安全”等多个角度展开深入的讨论。 OWASP是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。近几年,OWASP峰会以及各国OWASP年会均取得了巨大的成功,推动了数以百万的IT从业人员对应用安全的关注以及理解,并为各类企业的应用安全提供了明确的指引。 OWASP中国分会已经分别成功举办了OWASP 2009上海峰会、OWASP 2010中国峰会. 2011年OWASP中国峰会将升级为OWASP全球四大区域会议之一的OWASP 亚洲峰会。本次峰会期间,还会举办国内首个互联网安全产品展览,邀请国内外各安全厂商、个人软件开发者参...

«阅读全文

Nginx/Apache/MySQL/PHP查看编译参数

Nginx/Apache/MySQL/PHP查看编译参数

Nginx、Apache、MySQL、PHP编译完成后可以用以下方法查看编译参数,方便日后升级和保留记录。 Nginx编译参数: /usr/local/nginx/sbin/nginx -V Apache编译参数: cat /usr/local/apache2/build/config.nice PHP编译参数: /usr/local/php/bin/php -i |grep configure MySQL编译参数: cat /usr/local/mysql/bin/mysqlbug|grep configure

«阅读全文

Linux防DDOS脚本

Linux防DDOS脚本

Linux防DDOS脚本 Linux防DDOS脚本安装: wget http://www.inetbase.com/scripts/ddos/install.sh chmod +x install.sh ./install.sh Linux防DDOS脚本卸载: wget http://www.inetbase.com/scripts/ddos/uninstall.sh chmod +x uninstall.sh ./uninstall.sh Linux防DDOS脚本本站备份: Linux防DDOS脚本安装: wget http://www.opensoce.com/files/ddos/install.sh chmod +x install.sh ./install.sh Linux防DDOS脚本卸载: wget http://www.opensoce.com/files/ddos/uninstall.sh chmod +x uninstall.sh ./uninstall.sh Linux防DDOS脚本配置文件 配置文件位置: /usr/local/ddos/ddos.conf , 大家可以根据各自的情况灵活修改配置文件。

«阅读全文

MySQL字符串长度漏洞分析

MySQL字符串长度漏洞分析

SQL注入攻击一直都在被广泛的讨论,在MySQL中,我们常常会忽略这样两个安全隐患,那就是超长SQL查询和单列SQL字符长度限制可能会带来的问题。 首先我们来谈论一下超长SQL查询 MySQL配置项: max_packet_size 这个东西是用来限制MySQL客户端和服务器通信数据包的长度的,比如一个查询为“select * from user where 1”,那么这个长度仅仅几十个字节,所以不会超标。在绝大多情况下,我们很难会超过MySQL的默认限制1M。对于MySQL来说,如果查询字符串的大小超过了这个限制,MySQL将不会执行任何查询操作。可以想象一下,1M的SQL语句还是很长的,为什么会产生如此长的SQL语句呢?往往是SQL语句中的某字段赋值字符串过长造成的,同样如果取出时字段内容过长也会造成超过max_packet_size大小而无法执行查询操作。 如果攻击者有可能控制你的SQL长度,...

«阅读全文

nginx [emerg] 13513#0: eventfd() failed (38: Function not implemented)

nginx [emerg] 13513#0: eventfd() failed (38: Function not implemented)

[emerg] 13513#0: eventfd() failed (38: Function not implemented) 原因是:编译时带了–with-file-aio模块,这个要linux 2.6.22以后内核才支持.服务器是2.6.18. nginx -V 可以看到编译参数.下载nginx源码,使用nginx -V编译参数去了–with-file-aio模块.编译安装后问题解决.

«阅读全文

迈腾2.0TSI加装胎压检测,迈腾改装

迈腾2.0TSI加装胎压检测,迈腾改装

2011款迈腾2.0 TSI舒适型,与豪华型的差别仅在于胎压检测。其实功能本身没什么,以前开捷达的时候啥附加功能都没有也照样开,不过因为豪华型有这个配置,总觉得缺这个心理会有点阴影,所以还是找了n多资料,决定对迈腾动手! 迈腾胎压检测的工作原理:利用ABS系统传感器传送的数据监控各车轮的转速及其滚动周长的变化状况。若某个车轮的滚动周长发生变化,报警灯将点亮。 根据以上工作原理,我们得知,迈腾的胎压检测并不复杂,不需要在每个轮胎增加传感器,成本并不高。研究了网络上各种版本的胎压检测的文章之后,总结出迈腾改造胎压检测需以下两步: 布线、安装胎压检测开关 修改行车电脑参数(用笔记本通过can-bus数据线连接到汽车电脑,用5053软件修改) 很简单吧:) 注意事项 1、以下操作有风险,后果自负! 2、本文仅供参考。 3、请不要...

«阅读全文