扼杀IIS服务器性能的十条规则(2)
作者:佚名 来源:新云 发布时间:2008-04-24 15:05:00
6.不必注意多处理器机器
你的代码在多处理器系统上比在单处理器系统上运行得还要糟,这可能是件令人恶心的事。一个很自然的想法是,在一个N维系统上运行N次会更好。性能很差的原因是竞争:锁竞争,总线竞争,和/或缓存列竞争。处理器都在是争夺共享资源的所有权,而不是做更多的工作。
如果你一定要编写多线程应用程序的话,你应该在多处理器盒上对你的应用程序进行强度测试和性能测试。单处理器系统通过时间分片地执行线程而提供一个并发性的假象。多处理器盒具有真正的并发性,竞争环境和竞争更容易发生。
7.应该始终使用模块化调用;他们很有趣。
利用同步模块化调用来执行I/O操作对大多数桌面应用程序来说是合适的。但是,他们不是使用服务器上的CPU(s)的好方法。I/O操作要花费上百万个时钟周期来完成,这些时钟周期本来可以被更好地利用。利用异步I/O你能得到显著提高的用户请求率和I/O通量,不过增加了额外的复杂性。
如果你有需要花费很长时间的模块化调用或I/O操作,你应该考调拨多少资源给他们。你想使用所有的线程还是有个限制?一般地,使用有限的几个线程要好些。构建一个小的线程池和队列,利用队列来安排线程的工作完成模块化调用。这样,其他线程就可以拾取和处理你的非模块化的请求。
8.不要进行测量
当你能够测量你所谈论的事情并用数字表达它时,这就表示你对他有了一定的了解;但是如果你不能用数字表达时,你的知识是贫瘠的不能令人满意的;这可能是知识的开始,但这时你简直不可能将你的思想提高到科学的水平。
- Lord Kelvin (William Thomson)
如果不测量你就不能了解应用程序的特性。你在黑暗中摸索,一半是靠猜测。如果不识别性能问题,你就不能做任何改进或做出工作量计划。
测量包括黑匣子测量和profiling。黑匣子测量的意思是收集由性能计数器(内存使用,上下文交换,CPU利用等)和外部检测工具(通量,反映时间等)所显示的数据。为了profile你的代码,你编译代码的一个工具版,然后在各种条件下运行它,并收集关于执行时间和过程调用频率的统计数据。
测量如果不用于分析的话就一点用都没有。测量将不仅告诉你有问题,而且甚至能帮助你找到问题发生在哪,但它不能告诉你为什么会有问题。对问题进行分析以便你能正确地改正他们。要从根本上解决问题而不是停留在表面现象。
当你进行改动后,要重新测量。你要知道你的改动是否有效。改动也可能会暴露其他性能问题,测量-分析-改正-再测量的循环就会重新开始。你也必须要有规律地进行测量,以便发现性能衰退问题。
9.应该使用单一用户,单一请求的测试方法。
书写ASP和ISAPI应用程序的一个通病是只用一个浏览器去测试应用程序。当他们在Internet上应用他们的程序时,他们才发现他们的应用程序不能处理高负载,并且通量和反应时间另人可怜。
用一个浏览器测试是必要的但是不够的。如果浏览器反应得不够快,你就知道你有麻烦了。但即使它在使用一个浏览器时很快,你也不知道它处理负载的能力如何。如果十几个用户同时请求会发生什么事?一百个呢?你的应用程序能容忍什么样的通量?它能提供什么样的反应时间?在轻载时这些数字会怎样?中等负载呢?重载呢?在多处理器机器上你的应用程序会如何?对你的应用程序进行强度测试,这对于找出bugs发现性能问题来说是基本的。
类似的负载测试考虑适用于所有的服务器应用程序。
10.不应使用实际环境。
人们往往只在几个特定的,人工的环境(如下benchmarks)下调整应用程序。选择和实际情况相对应的各种情况,并为针对各种操作进行优化,这一点很重要。如果你不这样做,你的用户和评论家一定会这样做,并且他们将依此来评判你的应用程序的好坏。


猜你喜欢
- WordPress3.3已经宣布功能添加冻结,预计在未来几周将进入Beta测试阶段,WordPress3.3可能将在12月份发布。WordP
- 装了ubuntu好长一段时间了,都没去用,国庆的时候折腾了下,配置了一些基本的开发环境,一上手就感觉喜欢上了ubuntu,说不上为什么。为了
- 前言不同版本的动态库可能会不兼容,如果程序在编译时指定动态库是某个低版本,运行是用的一个高版本,可能会导致无法运行。Linux上对动态库的命
- 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当
- 北京时间10月30日消息,据国外媒体报道,美国数字媒体公司RealNetworks周四发布了第三季度财报。财报显示,受削减支出抵消了音乐和游
- 创办4年的轻博客Tumblr已经在博客数量上超越了已经创办8年的传统博客平台 WordPress今年一月,Tumblr有着700万轻博客。但
- 作为读者来说,退订(包括Twitter上Unfollow)不想看的内容是好事,道理很简单,不再赘述。那么,博主、推友会因被读者退订、Unfo
- 不要让读者找不着北:关于网站导航问题,越简单越好。虽然google鼓励你创建目录结构,但你不能让它太过复杂,比如需要15次点击才能到达目标内
- 我们做网站就是为了赚些钱,没有流量就没办法赚钱,关于怎样提升新站流量的话题,一直是网上最热门的话题之一,同样也是最难的掌握的知识之一。如果你
- 前言刚建立好的linux虚拟机使用NAT方式可以连接外网,系统重启几次,系统无法上网,这是什么问题导致的呢?提示:以下是本篇文章正文内容,下
- Godaddy主机的Update Contact Information部分使你能够更新域名的联系信息。私人或者在设置中的域名联系信息无法更
- index.php index.htm defaut.html答:修改.htaccess。.htaccess可以做大量范围的事情,包括:文件
- 织梦后台的数据库替换功能非常强大,但一些会员反映没有数据库中的表字段说明,这样就无法对具体的内容进行替换操作。为了解决大家这个烦恼,织梦团队
- 今天早上相当郁闷,打开电脑然后在服务里面启动Apache服务器,结果它显示说“本地计算机上的APACHE服务启动后又停止了.一些自动停止,如
- 一. bootfs和rootfs通常而言,Linux的操作系统由两类文件系统组成:bootfs(boot file system)和root
- 目前虽电子商务发展迅猛,市场潜力大,网购人群也是越来越多,毕竟网络的局限性时时刻刻影响网购安全,对于那些进入的中小企业来说,第一步确实很困难
- 11月26日消息,谷歌宣布翻译工具(http://translate.g.cn 或者 http://翻译.g.cn)今日全新改版,除了整体产
- 怕七夕,年年又七夕!明个就是七夕了!站长们打算怎么过?农历七月初七的夜晚,天气温暖,草木飘香,这就是人们俗称的七夕节,这是中国传统节日中最具
- Microsoft Security Essentials 是一款通过正版验证的Windows电脑可以免费使用的微软安全防护软件,帮助您远离
- centos 7 变化很多 首先安装过程中,操作变化方式很大,mini安装也没有了base这个选项,也就导致很多在centos6里面的命令在