扼杀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)下调整应用程序。选择和实际情况相对应的各种情况,并为针对各种操作进行优化,这一点很重要。如果你不这样做,你的用户和评论家一定会这样做,并且他们将依此来评判你的应用程序的好坏。
猜你喜欢
- 11月3日国际报道 负责Google Android开发业务的Andy Rubin明确表示:Google不从事手机硬件制造业。上周TheSt
- 随着网络的发展和各种信息媒体的诞生,人们进行信息交流的方式和途径也越来越多,但是,由于现今的各种通信费用一直居高不下,且人们的生活节奏日趋加
- 但凡是靠写东西在IT圈里混的,我们大可都归到IT写手的行列中来,具体考究一下,IT是信息技术的意思,写手嘛!就是写手啦,也没什么好解释的。I
- 2003服务器安全攻略(不会做服务器安全的站长请进)windows server2003是目前最为成熟的网络服务器平台,安全性相对于wind
- 1. 安装Evolution Evolution是一个整合了邮件,日历,计划任务,地址本功能的套件。以root身份运行apt-get ins
- 本文将讨论UNIX平台下,Apache WEB服务器安装和配置的安全问题。我们假定阅读本文的系统管理员已经针对自己站点的情况选择了相关的模块
- “我知道你想问什么,但是这件事情,目前我什么都不能说。”昨天晚上,申花队一行人飞抵重庆,备战明天下午与重庆力帆队的中超比赛。与以往经常随队出
- 原来qmail系统的邮箱一天起码要收十几份垃圾、病毒邮件,实在是比较烦,不是很喜欢qmail,特别是日志,让人不知所云,所以干脆考虑更换邮件
- 先前我曾经报道过Google即将推出通过Google Analytics统计Google Adsense的功能,今天,我登录AdSense后
- 首先说为什么要基于网易邮箱。网易自己号称他的网易邮箱(@163.com @126.com @yeah.net)是3亿用户的选择。其实也没有夸
- 从最近几天吵得热火的Blogbus的“自频道”,到早些时候Feedsky低调推出的“我的博客圈”,再到更早之前的Google Reader的
- 由phpwind团队与淘宝图片导购联盟合作开发的“图片导购应用”近日正式发布,“图片导购应用”给站长带来了全新的盈利模式,利用“图片导购应用
- DEDECMS5.5刚出来,很多人都还没有用,我就先尝试了,(勇于做第一个吃螃蟹的人)呵呵~~,其实做好数据备份也没什么好怕的。正好公司网站
- 北京时间12月3日消息,据国外媒体报道,正在与美国最大的分类信息网站Craigslist对簿公堂的eBay周三表示,为从分类列表中获取更多营
- SNMP(Simple Network Management Protocol,简单网络管理协议),用来对通信线路进行管理。在Windows
- 百度有啊总经理李明远10月23日消息,百度有啊总经理李明远今天在首届派代电子商务年会上表示,电子商务挣钱是迟早的事情,做电子商务需要充分的耐
- 2009中国经济在经过金融危机的洗礼后呈现出逐季企稳回升的态势,分析人士指出,中国经济有望在未来一段时期内重新恢复快节奏的增长步伐,而作为高
- 新浪科技讯 北京时间9月13日午间消息,在活跃用户突破1亿大关后,Twitter宣布将在未来几周内新增5种语言,分别是印地语、菲律宾语、马来
- 情人节将至,有网络广告界分析人士预计,情人节期间网络广告整体额度将较去年同期上升两成,因众多商家在节后纷纷开张,选择情人节期间进行网络营销势
- 一般而言,搜索引擎只识读文本内容,对图像是不可见的。同时,图像文件直接延缓页面加载时间,如果超过20秒网站还不能加载,用户和搜索引擎极有可能