压力测试

不是专职做压力测试这行当的,只能是以自己的经验来以外行人的眼光来说说压力测试,压力测试并不仅仅是个压力测试的过程,而是一个相当系统和复杂的工程,我认为压力测试是为了让系统达到所期望的运行效果以及承受所期望的压力,这也就要求压力测试应该帮助性能调优团队,为其提供一定程度的指导,在这里我不将压力测试和性能调优分的那么清楚了,在我看来,压力测试过程包括了:明确压力测试的目标、制定压力测试方案、进行压力测试、分析压力测试结果、寻找瓶颈并进行调优以达到目标,在这篇blog中来细看下这几个过程以及常用的方法。
不是专职做压力测试这行当的,只能是以自己的经验来以外行人的眼光来说说压力测试,压力测试并不仅仅是个压力测试的过程,而是一个相当系统和复杂的工程,我认为压力测试是为了让系统达到所期望的运行效果以及承受所期望的压力,这也就要求压力测试应该帮助性能调优团队,为其提供一定程度的指导,在这里我不将压力测试和性能调优分的那么清楚了,在我看来,压力测试过程包括了:明确压力测试的目标、制定压力测试方案、进行压力测试、分析压力测试结果、寻找瓶颈并进行调优以达到目标,在这篇blog中来细看下这几个过程以及常用的方法。
明确压力测试的目标
通常来说(注意是通常),压力测试的目标有这么几点:
1、评测系统是否满足压力支撑的要求
要评测系统是否满足压力支撑的要求,同样要做的就是需要明确定义系统需要支撑多大的压力,例如:
机器的配置:CPU、内存、硬盘、etc.
网络条件:100M
操作系统:Linux core: 2.6
当并发数为10用户时,系统应能在20ms内响应完毕(这个时候的TPS为500),系统的load需在2以下;当并发数为100用户时,系统应能在 50ms内响应完毕(这个时候的TPS为2000),系统的load需在4以下;当并发数为200用户时,系统应能在80ms内响应完毕(这个时候的 TPS为2500),允许其中有千分之一的出错率,系统的load需在6以下,在压力测试的过程中,只要其中的任何指标未达到,均可判定系统尚未达到压力的目标。
实际的压力测试的这个指标会比我这里举的例子复杂很多,例如还需要考虑网络流量、内存消耗、IOPS、连接数等等。
这里面压力测试隐藏的目标是为容量规划提供一定的指导,例如目前的系统在某种配置的情况下单台机器能承受的最大并发数为100用户,那么如果系统的高峰压力是1000的话,如果系统支撑无损水平扩展的话就意味着需要10台这类配置的机器,这一步同样是经过测试的。
2、预估系统上线运行的状况
毕竟通常压力测试环境和线上的环境是会有很大的不同的,压力、数据量、硬件环境等,基本上只能是根据线下的环境的情况进行一定比例的对比后计算来预估,这里面很重要的是要预估系统上线后正常情况下的表现状况、一定的增长比率后的运行状况以及风险点(例如当并发用户数增长到多少时、系统load到多少时可能会出现问题)。
这一个目标我觉得非常难达到,但随着经验,我相信是可以做到的,如果能做到这种效果的话是会有很大的帮助的。
以上这个两个目标基本是压力测试都要达到或希望达到的,而具体有可能会因为系统的业务的具体情况会制定其他不同的目标。
制定压力测试方案
这步是压力测试整个过程中最难的步骤之一,为了能够测试出系统是否符合压力支撑的要求以及评估上线的表现,通常我们会希望搭建出和生产环境完全相同的环境,但这就是最麻烦的一点了,基本上是不太可能的,因此通常能采取的方法会是:
1、做等比例的缩放
按照生产环境的情况做一定比例的缩放,例如生产环境的数据量为1亿条,那么测试环境等比缩放到5000w条,生产环境的处理速度的情况…;
2、更差环境、更高压力的测试
采取比生产环境更差的机器配置、网络环境来进行测试,例如ebay的要求是能够承受10x的压力。
3、仿真测试
据资深人士而言,仿真测试要做到基本是不太可能的,仿真测试首先要求的是收集到生产环境中的运行状态的数据,然后在测试环境中编写程序来做到模拟生产环境运行的效果,这个难度基本是非常高的。
我自己现在做压力测试更多采取的做法是以上三种方法的合集。
在确定了测试方法后,就基本可以确定压力测试的环境了,环境确定好后需要做的是压力测试的案例或场景了,在压力测试的案例中需要涵盖正常场景以及异常的场景,正常场景是非常容易做出来的,只是需要根据生产环境收集的数据(例如不同级别的用户比例通常是7:2:1)或预估的数据来搭建相应的测试案例,异常场景则是比较复杂的,需要考虑很多的因素,例如数据库出现异常、网络出现异常等,这里我觉得通常的做法是画出正常场景的处理流程,然后划分交互边界的信任边界,对于所有的第三方交互都认为是不可信任,例如不能信任调用数据库是一定会快的,或一定会成功的,在异常场景中应涵盖这些信任边界的异常状况的测试,这些对于高可用性的系统而言是非常重要的,几个9的成败就在此了,^_^,当然,高可用性又是个更复杂的话题,不在这里讲。
在压力测试方案中还需确定的是考评的指标,通过会包括:tps、系统load等等。
进行压力测试
相对来讲,在有了压力测试方案后,这一步并不是什么太复杂的事情,只是需要选择一个和压力测试方案比较符合的工具来执行,例如jmeter、 loadrunner等,当然,这些工具相对来说也是比较复杂的,而且之间的差距也是比较大的,至少目前来看,jmeter和loadrunner的差距还是不小的,尤其是需要进行高压力的测试时。
分析压力测试结果
这步同样是压力测试中很难的一步,在这一步需要做出的根据压力测试的结果分析出系统的具体表现情况,判定系统是否能够满足压力指标。
以loadrunner产生的分析结果图而言,通常需要分析以下图:
1、Total Transactions per Second
这张图中显示了系统在进行压力测试过程的TPS的变化情况,从这张图中我们可以看到系统的TPS的情况,通常来讲,随着用户数的增加,TPS应该是呈一定比率的增长的,等增长到一定程度后会达到瓶颈,甚至开始下降,这也是TPS的瓶颈值了,这张图可以帮助我们评估系统的TPS是否符合要求。
另外,在这张图中,我们可以看到系统从什么时候开始出现出错的transactions,从而判断出错率是否在可接受的范围。
2、Transaction Response Time Under Load
这张图非常的重要,借助这张图我们可以分析随着用户数增加的情况下,系统的劣化状况,最佳状况当然是一条直线,但这基本是不可能的,毕竟资源是有限的,需要判断的是劣化的程度是否为可接受范畴。
另外就是需要关注数据中90%的用户的响应时间的状况,如果少量用户响应慢是可接受的话,那么有可能在之上指标不达标的情况下仍然满足了压力指标。
3、Unix Resources
这张系统load图自然是非常的重要,借助这张图大致可以判断系统随着用户数的增长消耗的资源的变化情况,这对于调优以及容量规划而言是很重要的,但还是得取决于应用本身,:)。
loadrunner还提供了其他方面很多的图,可以根据考评的要求来自行进行分析。
寻找瓶颈并进行调优以达到目标
这步不属于压力测试范畴,但还是在这里稍微讲讲,毕竟压力测试结束后如果系统没达标的话就必须进行这步了。
寻找瓶颈,这自然是非常难的事了,通常系统达不到要求的状况都会是随着用户的增长,响应时间劣化的过于厉害,在这样的情况下首先得观察系统硬件资源的变化情况,如果是硬件资源耗尽的话,需要查查为什么资源被耗尽,假设最后判断确实需要耗费这么多的硬件资源的话,也许需要考虑增加硬件资源或是水平扩展,否则的话可能需要从软件层面相应的优化系统了,这样的话可以进入下一步了。
如果不是硬件资源的限制的话,得在系统中从头到尾设置时间跟踪filter,从而判断响应时间劣化的原因,看看是系统中哪些步骤造成的,这个是细致活了,有可能要查非常久。
其实这里说的还是相当的简单了,在寻找瓶颈的过程中是个非常繁琐的过程,需要不断的尝试,硬件的增加、OS的调优、jvm的调优以及软件系统本身的调优等等,这些很多时候需要的是经验,因此某知名人士曾经说过如何寻找瓶颈和调优,其中依靠的一点就是直觉,^_^。
当然,在寻找瓶颈的过程中,可以借助os的工具、java的工具(例如gc打印、jprofiler等)来进行查找。
(ps: 不过感觉很多情况下都是应用本身造成的性能瓶颈,在写程序时稍不注意用错一个数据结构都有可能会导致比较大的问题,所以我现在查找瓶颈的时候更多的还是先从软件本身下手,只是软件性能要做到提升通常来付出较大的代价,这个时候需要权衡)
调优基本上要求对硬件、OS、JDK、数据库甚至软件的实现方式等都要有非常深入的理解,至少要能做到判断出瓶颈因素,然后找相应领域的专家来解决,因此要求是非常高的。
关于性能调优的知识体系这里有篇不错的文章:
http://www.cnblogs.com/jackei/archive/2008/06/27/1231307.html

话题太大了,写到最后发现基本上还是有些泛泛而谈了.

S600 硬键盘无法输入的解决办法

现在智能手机越来越受大家欢迎,但是应用服务还是一个问题。今天有个朋友让我帮忙解决一下手机键盘无法输入字母及汉字的问题。我猜想应该是需要安装一种输入法。果然很快找到的解决方案。特共享给大家使用。

下载:
plumsip6-pro-ppc10

Google Chrome 浏览器已发布

Google Chrome 浏览器背后的故事

Watch a video from the development team on the thinking and features behind Google Chrome.

观看一个来自Google Chrome浏览器背后的开发团队在这个浏览器的思考和特点的视频

Watch the video

观看视频

阅读这项技术

Look under the hood of Google Chrome in this comics interpretation of key engineering decisions, by Scott McCloud.

请看下面连环画中对Google Chrome 浏览器的关键技术说明,由Scott McCloud而作.

Read the book

阅读

Download Google Chrome

下载Google Chrome浏览器

The Website for China Web Design

Domain China is a professional website design service provider. This is their website in China.

http://www.mkt-china.com/en/web-design/

also:http://www.domain-china.com

Google Webmaster 404 Tool

让我们更了解404:

Now that we’ve bid farewell to soft 404s, in this post for 404 week
我们将会回答你关于404的全部问题。

How do you treat the response code 410 “Gone”?
就是404.

Do you index content or follow links from a page with a 404 response code?
让人理解你的网站以及网站的内容是我们的目标!Well we wouldn’t want to show a hard 404 to users in results, we may utilize a 404’s content or links if it’s detected as a signal to help us better to understand your website. 
请注意:if you want links crawled or content index, it’s far more beneficial to include them in a non-404 pages.

What about 404s with a 10-second meta refresh?
雅虎! currently utilizes this method on their 404s. They respond with a 404, but the 404 content also shows:

<meta http-equiv=”refresh” content=”10;url=http://www.yahoo.com/?xxx”>

We feel this technique is fine because it reduces confusion by giving users 10 seconds to make a new selection, only offering the homepage after 10 seconds without the user’s input.

Should I 301-redirect misspelled 404s to the correct URL?
Redirecting/301-ing 404s is a good idea when it’s helpful to users (i.e. not confusing like soft 404s). For instance, if you notice that the Crawl Errors of Webmaster Tools shows a 404 for a misspelled version of your URL, feel free to 301 the misspelled version of the URL to the correct version.

For example:
http://www.google.com/webmsters <– typo for “webmasters”

we may first correct the typo if it exists on our own site, then 301 the URL to the correct version (as the broken link may occur elsewhere on the web):
http://www.google.com/webmasters

Have you guys seen any good 404s?
Yes, we have! Please see some links belowing:
http://www.mkt-china.com/blog/404
“That’s a good news.”

http://www.metrokitchen.com/nice-404-page
“If you’re looking for an item that’s no longer stocked, this makes it really easy to find an alternative.”

-Riona, domestigeek

http://www.comedycentral.com/another-404
“Blame the robot monkeys”

-Reid, tells really bad jokes

http://www.splicemusic.com/and-another
“Boost your ‘Time on site’ metrics with a 404 page like this.”

-Susan, dabbler in music and Analytics

http://www.treachery.net/wow-more-404s
“It’s not reassuring, but it’s definitive.”

-Jonathan, has trained actual spiders to build websites, ants handle the 404s

http://www.apple.com/iPhone4g
“Good with respect to usability.”
http://thcnet.net/lost-in-a-forest
“At least there’s a mailbox.”

-JohnMu, adventurous

http://lookitsme.co.uk/404
“It’s pretty cute. :)”

-Jessica, likes cute things

http://www.orangecoat.com/a-404-page.html
“Flow charts rule.”

-Sahala, internet traveller

http://icanhascheezburger.com/iz-404-page
“I can has useful links and even e-mail address for questions! But they could have added ‘OH NOES! IZ MISSING PAGE! MAYBE TIPO OR BROKN LINKZ?’ so folks’d know what’s up.”

-Adam, lindy hop geek

影响页面优化效果的十要素

要达到良好的网站优化效果,除了要保证高质量原创内容及建立链接提高Link Popularity外,对网页进行充分的优化更是必需的。

以下部分按其对优化效果影响度自大至小排列, 仅供参考:

Title 标签

在HTML语句中包含在 之间的内容,用来概括页面的基本内容。在用户浏览网页时Title显示在浏览器窗口的上方,而在SERP页面中,Title更是决定用户是否点击该页面的主要因素。

详细:

* 网页Title的优化的原则
* 网页Title的优化的实施

内容中的关键词

网页文本中包含的用户搜索时输入的关键词,这方面的优化包括文本中关键词出现的频次、位置以及组合方式等。

详细:关键词密度(Keyword Density)
页面中使用的Headings、粗体、斜体等

Headings,通常意义上指段落标题,在HTML中以H1、H2、H3之类表示。

通过使用Headings、粗体等字体方面的变化给出概括页面或段落的概要或强调部分,这在可以在给访问者以较好的阅读体验外,还能够有效地帮助搜索引擎判断页面的重点内容。交替使用则效果更佳。
站内其他页面指来的连接

一般意义上,如果某个网页的内容很重要,那么,同一网站内肯定会有相当多的页面指向该网页,呵呵,很好理解吧?事实上,搜索引擎也是这么想的,一个内部连接充分的网页同样会被引擎认为重要。这方面的优化包括连接来源页面自身的内容、位置、链接使用的Anchor text等。

页面的外出链接

这方面的影响可能是正面的也可能是负面的,取决于链接的质量、与本页内容的相关度甚至网站之间的相关度等。

详细:

* 网站的出站链接
* 出站链接与入站链接的平衡

网页存在时间

每个网页对搜索引擎来说都有一个“出生时间”,即其被搜索引擎的Spider第一次爬行收录的时间。存在时间越长的网页,搜索引擎便认为其更权威,可信度更高。当然,这是在保证该网页不是“死”页面,没有被埋藏起来的前提下。

在URL中使用关键字

在URL中使用的关键词,对其的更详细讨论可参见初步优化: 子域名、URL、Keyword与description、Keyword in URL : 中文网站的两难等。

网页大小

网页大小可以用文件大小KB来表示,也可以用字数来表示。一般说来,一个过大的网页(KB)会影响浏览速度,一个过长(字数)的网页则难以在关键词密度方面找到平衡,但具体很难有定论。

Alt与Title标签

这包括图片的alt、Tltle标签,也包括链接中使用的Title标签。虽然这常被SEO Spam用做关键词填充,不过,各大主要搜索引擎仍然使用其做参照。

HTML代码

W3C认证被许多网站用以证明其页面文件符合HTML规范,简单说来,一个HTML代码错误百出的页面对搜索引擎Spider的总计也会带来困难。但是否经过W3C认证就会有助于搜索引擎排名目前仍存在不少争议,甚至有的测试表明一个故意留上几个小错误(注意,是小错误)的网页甚至能更受到搜索引擎的青睐。因此,我们要做的倒不一定非得通过W3C认证,但至少要保证其在各种浏览器下显示正常,保证搜索引擎的Spider能够正常分析。

MKT CHINA 新址:中山北路2790号杰地大厦1102室

特别通知:MKT China 已搬迁至 中山北路2790号杰地大厦,请顾客朋友注意。

上海市中山北路2790号杰地大厦1102室

电话: +86 (0)21 6095 5225
传真: +86 (0)21 6095 5226

网址: www.mkt-china.com

MKT has moved office

Hello everyone,

Please notes that MKT has moved office as belowing:
MKT Co.,Ltd.

Jiedi Building, unit 1102, No.2790 Zhongshan Road North,
Putuo District, Shanghai China
Tel: +86 (0)21 6095 5225 
Fax: +86 (0)21 6095 5226
Cell: +86 (0)13524667082
Web:
www.mkt-china.com

中文:中山北路2790号杰地大厦1102室

 

Feed Suggest

http://www.daytimenews.com/submit-rss-feed.aspx
http://www.devasp.com/search/AddRSS.asp
http://www.feedooyoo.com/
http://www.feedbomb.com/
http://www.2rss.com/index.php
http://www.gnoos.com.au/submitFeed.jsp
http://www.blogbunch.com/suggest/
http://www.blogdigger.com/add.jsp
http://www.feedest.com/feedAdd.cfm
http://www.plazoo.com/en/addrss.asp
http://www.pressradar.com/suggest
http://www.feedboy.com/
http://www.feedfury.com/submit
http://www.jordomedia.com/
http://www.feed24.com
http://www.objectssearch.com/blogs/submit.html
http://www.feeds2read.net/
http://www.free-rss.page2go2.com/
http://www.feedsfarm.com/
http://www.feedbase.net
http://www.planetmysql.org
http://www.millionrss.com/add-my-feed.php
http://www.rssfeeds.com/suggest_wizzard.php
http://www.rssmicro.com
http://www.begoodbe.com/rss_submit.html
http://www.rss-spider.com/submit.php
http://www.blogbunch.com/suggest/
http://www.weblogalot.com/Ping/
http://www.syndic8.com
http://www.solarwarp.net/submitrss.php
http://www.purerss.com/addfeed.php?catid=
http://www.rssmotron.com/feed_eater.php
http://www.design-feed.net/submit.html
http://www.aspin.com/func/addres/rss-support?proc=getrss
http://www.rssmad.com/index.php?
http://www.rss.rocketinfo.com/desktop/AddRSSFeed.jsp
http://www.octora.com/add_rss.php
http://www.rss-feed.org
http://www.feeds.adobe.com/SubmitFeed.cfm?init=true
http://www.search4rss.com/?add=default
http://www.strategicboard.com/addblog.php

What is the optimizal page size?

What is the optimizal page size? we have been asked this question so many times that I have lost count. In this article, you will learn what all contributes to the file size of a web page and thus, how long it takes to load on the visitors browser.
Structuring web sites - layout or a web site
Another question that I have been asked very often concerns the use of links on a web site - should one use relative or absolute URLs?.
Web site can start off as simple set of static HTML pages and if you are serious about your web presence, your site will in a matter of a few months will grow to tens, even hundreds, of web pages. Managing all those pages is not easy especially if you were not careful from the very beginning. Structuring web sites - web site design and layout looks at how you should segregate files on a web site which will stand you in good stead when your web site grows.
Color combinations
Your web site should reflect your company image correctly. The choice of colors is an important aspect in portraying this image. For example, red is usually avoided on financial web sites. Blues and grays have always been good choices for professional web sites. Here you will find more than 100 color combinations that you can use on your web site. You should typically test a color combination and maybe fine tune it for your web site because the color combination needs to complement the colors used in your logo.
HTML color names and the web safe palette
Colors on a web page can be displayed in hexadecimal codes or HTML colour names. Using Cascading Style Sheets (CSS), you can even display colors in the RGB notation. You will also find the complete list of HTML color names along with their web safe equivalents.
The Web safe color palette was developed to provide consistency in color display across browsers. Though the idea is now outdated, it is still a good thing to know!
Web page fonts
If you have this irrestible urge to use that beautiful looking scripty font on your web site - Don’t!. Read more on browser compatible fonts - which fonts to use on web pages. I get so many emails from web designers who were “appalled” at how their web site looked on another computer. Don’t make the simple mistake of assuming that your visitors will have that lovely font installed on their system or worse still, that your visitors will download and install it just because you have requested them to! - Will you do it… I dont think so, and so don’t expect it from your visitors.
Obviously, there is a way to still use that beautiful font for text on your web site. You can simply make an image which will guarantee correct display across different browsers… however, the image would take much longer to load and the text will not be indexed by search engines. You can use the ALT attribute but it’s not the same thing as good old text!
Note: Google has decreased the relevance of the ALT attribute for ranking web pages because of so many web developers trying to spam the search engine by stuffing the ALT attribute with keywords.