一、引言
随着信息技术的快速发展,服务器在各行各业的应用越来越广泛。
为了确保服务器的稳定运行,进行服务器状态监测显得尤为重要。
本文将为你介绍如何进行轻松、有效的服务器状态监测,帮助你更好地掌握服务器的运行状况。
二、为什么要进行服务器状态监测
服务器状态监测是为了确保服务器的正常运行,及时发现并解决潜在问题。
通过监测服务器的各项指标,如CPU使用率、内存占用、磁盘空间、网络流量等,可以预测服务器可能出现的故障,从而采取相应的措施进行预防和处理。
这对于保障服务器安全、提高服务器性能、提升用户体验具有重要意义。
三、如何进行服务器状态监测
1. 选择合适的监测工具
目前市面上有很多服务器状态监测工具,如Nagios、Zabbix、Prometheus等。
这些工具可以实时监测服务器的各项指标,并发送警报通知。
你可以根据自己的需求选择合适的监测工具。
2. 配置监测指标
根据服务器的实际情况,配置合适的监测指标。
常见的监测指标包括CPU使用率、内存占用、磁盘空间、网络流量、进程状态等。
你可以根据服务器的实际负载情况和业务需求,设定合理的阈值,以便及时发现异常。
3. 设定警报通知
为了及时获取服务器的运行状态,你需要设置警报通知。
当监测指标超过设定的阈值时,监测工具会通过邮件、短信、电话等方式发送警报通知,以便你及时进行处理。
四、轻松进行服务器状态监测的查询指南
1. 登录服务器
你需要通过远程登录的方式登录到服务器。
常见的远程登录方式包括SSH、Telnet等。
确保你拥有正确的登录凭证(如用户名、密码),以便顺利登录服务器。
2. 使用命令行工具
在服务器上,你可以使用命令行工具进行状态查询。
常见的命令包括top、free、df、netstat等。
这些命令可以实时显示服务器的CPU使用情况、内存占用情况、磁盘空间使用情况以及网络连接情况等信息。
例如,输入“top”命令可以查看服务器的CPU使用情况;输入“free”命令可以查看内存占用情况;输入“df”命令可以查看磁盘空间使用情况;输入“netstat”命令可以查看网络连接情况。
通过这些命令,你可以快速了解服务器的运行状态。
3. 使用专业监测工具
除了命令行工具外,你还可以使用专业的服务器状态监测工具进行查询。
这些工具可以提供更详细、更全面的监测数据,并帮助你进行故障预警和诊断。
你可以根据自己的需求选择合适的监测工具,并配置相应的监测指标和警报通知。
4. 定期检查日志文件
服务器的日志文件记录了服务器运行过程中的各种信息,包括错误日志、访问日志等。
定期检查这些日志文件,可以了解服务器的运行情况,发现潜在的问题。
你可以使用日志分析工具对日志文件进行分析,以便及时发现异常并采取相应的措施。
五、总结
通过本文的介绍,你应该已经了解了如何进行轻松、有效的服务器状态监测。
选择合适的监测工具,配置监测指标和警报通知,使用命令行工具和专filter监莹虎牟徒页市研;瞥阳颖熠损虐坏瓷萍巢矣狼孤研策挣诱侦站守必崭傍辛等进行查询,以及定期检查日志文件,都是进行服务器状态监测的有效方法。
希望本文能够帮助你更好地掌握服务器的运行状况,确保服务器的稳定运行。
魔兽世界服务器状态在哪看?
魔兽世界服务器状态可以在魔兽世界官网查看,步骤如下:
1、打开网络搜索,在网络搜索首页进行搜索;
2、在搜索框输入关键词魔兽世界服务器状态,点击搜索会显示多个词条;
3、在词条中找到网站魔兽世界官网,点击进入;
4、进入网站就可以查看魔兽世界服务器的状态了;
5、右边搜索框可以选择区域以及想要搜索的服务器。
服务器百问百答,如何通过浏览器对刀片服务器进行管理?
所谓刀片服务器是指在标准高度的机架式机箱内可插装多个卡式的服务器单元,实现高可用和高密度。
每一块刀片实际上就是一块系统主板。
它们可以通过板载硬盘启动自己的操作系统,如Windows NT/2000、Linux等,类似于一个个独立的服务器,在这种模式下,每一块母板运行自己的系统,服务于指定的不同用户群,相互之间没有关联。
不过,管理员可以使用系统软件将这些母板集合成一个服务器集群。
在集群模式下,所有的母板可以连接起来提供高速的网络环境,并同时共享资源,为相同的用户群服务。
在集群中插入新的刀片,就可以提高整体性能。
而由于每块刀片都是热插拔的,所以,系统可以轻松地进行替换,并且将维护时间减少到最小。
这些刀片服务器在设计之初都具有低功耗、空间小、单机售价低等特点,同时它还继承发扬了传统服务器的一些技术指标,比如把热插拔和冗余运用到刀片服务器之中,这些设计满足了密集计算环境对服务器性能的需求;有的还通过内置的负载均衡技术,有效地提高了服务器的稳定性和核心网络性能。
而从外表看,与传统的机架/塔式服务器相比,刀片服务器能够最大限度地节约服务器的使用空间和费用,并为用户提供灵活、便捷的扩展升级手段。
刀片服务器的特点刀片服务器公认的特点有两个,一是克服了芯片服务器集群的缺点,被成为集群的终结者;另一个是实现了机柜优化。
集群终结者众所周知,作为一种负载均衡技术,服务器集群已经在有效提高系统的稳定性和核心网络服务的性能方面被广泛采用,在集群系统中,若要提供更高端的运算和服务性能,只需增加更多的单元就可以获得更高的性能。
更为重要的是,服务器集群还可以为任何一台单独的服务器提供冗余和容错功能。
目前IT行业正在大力发展适应宽带网络、功能强大可靠的计算机。
在过去的几年里,宽带技术极大地丰富了信息高速公路的传输内容。
服务器集群和 RAID技术的诞生为计算机和数据池的互联网应用提供了一个新的解决方案,而其成本却远远低于传统的高端专用服务器和大型机。
但是,服务器集群的集成能力低,管理这样的集群使很多管理员非常头疼。
尤其是集群扩展的需求越来越大,维护这些服务器的工作量简直不可想像,包括服务器之间的内部连接和摆放空间的要求。
这些物理因素都限制了集群的扩展。
刀片服务器的出现适时地解决了这些问题。
在集群模式下,刀片服务器所有的主板可以连接起来提供高速的网络环境,共享资源。
同时每个刀片都可内置监视器和管理工具软件,配置一台高密度服务器就可以解决一台到一百台服务器的管理问题,如果需要增加或者删除集群中的服务器,只要插入或拔出一块板即可,将维护时间减少到最小。
就这个意义上来说,Blade Server从根本上克服了服务器集群的缺点。
实现机柜优化从某一角度而言,刀片服务器实现了机柜优化的自然飞跃。
刀片服务器将机柜式服务器所占用的空间密度再一次提高了50%。
资料显示,在机柜系统配置好的前提下,将1U机架优化服务器系统移植到刀片服务器上,所占用的空间只是原来的1/3~1/2。
而在一个标准的机柜式环境里,刀片服务器的处理密度要提高四到五倍。
比如在处理1024节点的高密度计算服务器环境里,1U配置需要24个机柜,其中不包括以太网交换集线器所占用的机柜空间,而采用插有8个 刀片的刀片服务器,只需要9个机柜,却包括了以太网交换机的空间。
在相同的面积内,数据中心可以通过部署刀片服务器获得8倍于机架式服务器的服务器租赁收益。
另外,刀片服务器采用集中管理的方式,可以简化服务器的管理工作。
在IT人员日益匮乏的今天,采用刀片服务器的企业可以减少雇佣工资高昂的服务器管理和维护人员,从而降低维护费用。
还有,刀片服务器的低功耗设计也会显著减少能耗,节约能源的同时减少了费用。
作为一种新兴的服务器产品,读者可能还缺乏对它的直观认识。
每台刀片服务器一般由机柜和刀片组成,因此刀片服务器的标识由机柜的型号和刀片的型号共同构成,而不像以往的服务器那样由一个单一的服务器型号所代表。
刀片通过机柜背板上的CompacPCI接口与之相连接。
服务器机柜一般可以容纳8片至数十片刀片。
刀片以服务器刀片为主,而每个服务器刀片都是一个功能完整的服务器。
在此,我们以一款常见的一种刀片服务器向大家介绍一下,以了解其基本构成。
根据所需要承担的服务器功能,刀片服务器被分成服务器刀片、网络刀片、存储刀片、管理刀片、光纤通道SAN刀片、扩展I/O刀片等等不同功能的相应刀片服务器。
目前最为常见的服务器刀片一般采用1颗为的Intel Pentium Ⅲ处理器,并采用ServerWorks LC-E芯片组、Intel 815芯片组、Via Pro266芯片组,支持的内存容量和类型由芯片组决定,内存类型一般为具有ECC功能的SDRAM或DDR。
由于刀片服务器的散热问题较为严重,在设计中也有厂商采用了低功耗的Transmeta 5600处理器。
目前,HP、Sun也正致力于把它们的RISC处理器制作成服务器刀片,只是尚未面世。
除连接机柜背板的接口外,服务器刀片上一般还具有一个PMC扩展接口,可以连接PMC接口的扩展卡,如SCSI卡、光纤存储卡等,其功能相当于 PCI扩展槽,只是相应接口的扩展卡价格略贵。
服务器刀片采用与笔记本电脑相同规格的65mm(2.5英寸)硬盘,一般只安装操作系统和简单的应用软件,性能较低。
网络刀片网络刀片的功能相当于局域网交换机,从而提供良好的网络监控和管理功能。
网络刀片普遍提供10/100Mbps端口,以双绞线的方式连接服务器刀片,对外提供高速上连通道(千兆端口)。
采用NAS存储方式的刀片服务器经常会配备2个网络刀片,其中一个专门用于连接NAS设备。
每个刀片支持 10/100/1000M以太网连接,并且可以在背板上安装10/100/1000M的2-4层交换机,这样就可以把系统中每个槽位上安装的刀片与交换机连接起来,提供一个基于IP的交换网络。
通过集成这种总线,刀片服务器系统可以很好地集成IP业务和语音业务,提供各种不同的电信增值服务。
存储刀片存储刀片可以被视为一个硬盘模块,通过背板总线或者硬盘接口线向服务器刀片提供存储功能。
存储刀片上一般配备2块性能较高90mm(3.5英寸)硬盘,接口类型有IDE、SCSI和光纤通道(Fiber Channel)接口。
管理刀片第一代刀片服务器的KVM(Keyboard、VGA、Mouse)刀片可以说是功能最为简单的管理刀片,提供对所有服务器刀片的管理控制。
KVM刀片,提供键盘、鼠标、显示器接口,KVM刀片经常还包括软驱和光驱,便于使用者直接操作服务器刀片。
KVM刀片上提供切换开关,用于在机柜上的不同刀片之间或者不同机柜之间进行切换。
第二代刀片服务器具备更加强大的管理功能,但是各家产品各不相同。
管理刀片往往通过服务器刀片上集成的监控管理芯片进行1台或多台刀片服务器的集中监控和管理。
管理刀片向服务器机柜内的其他刀片提供必要的配置信息,并在某些刀片发生故障时接收报警信息,并向监控程序发出报警。
CompactPCI :刀片服务器的标准CompactPCI开放式标准架构很好地平衡了业界标准,包括硬件、操作系统、应用开发工具、能快速有效开发高利润的电信增值服务,同时使传统上以专有软硬件架构为主的电信建设转型,能享受开放系统带来成本大幅降低及大众化业界标准操作系统的好处。
这一转变让设备及服务供应商找到了数以百万计的开发者,并开始采用具高可靠性、高扩展性和高性能的CompactPCI宽频通讯平台。
CompactPCI总线标准是建立刀片服务器的基础。
它是惟一的标准,同时也是标准纷争的起源。
CompactPCI目前有2个主要的版本,即 1.0版和2.0版,它们在接口定义的完善程度上不尽相同。
早期的刀片服务器全部采用CompactPCI 1.0的标准,背板带宽也限定在32位PCI之内,这些产品属于第一代刀片服务器。
2002年最新推出的刀片服务器部分采用CompactPCI 2.0标准,背板支持64位PCI通信,称之为第二代刀片服务器。
由于标准的版本不同,两代刀片服务器之间不能完全兼容。
目前为止,只有HP一家声称完全按照CompactPCI标准设计刀片服务器,而其他服务器厂商只是在总线和接口标准方面遵循CompactPCI,在刀片的尺寸上没有完全按照该标准去执行。
应用模式指南刀片服务器的应用很广泛,尤其是对于计算密集型应用,比如天气预报建模、数据采集、数据仿真、数字影象设计、空气动力学建模等等。
而对于行业应用,如电信、金融、 IDC/ASP/ISP应用、移动电话基站、视频点播、Web主机操作及实验室系统等,刀片服务器依然能大显身手。
刀片服务器的出现使其在2001年底的服务器市场上占据一块相对于机架式服务器来说不算小的市场份额。
而随着2002年技术的发展尤其是InfiniBand技术开始扮演重要角色,刀片服务器将逐渐成为主流服务器并占据较大的市场份额。
刀片服务器的使用范围相当广泛。
下面我们列出两个典型的应用模式进行简单的介绍。
应用模式1:网站Web服务器这种方式可充分发挥刀片服务器密度高、可群集以及可远程管理的优势。
网站可以用刀片服务器组成高密度的群集,用来实现高访问量的Web服务器,后端再连接中高端的服务器或群集系统作为数据库服务器。
存储服务提供商可以采用同样的前端方案,后端配合NAS设备来提供存储服务。
与普通机架服务器相比,刀片服务器在这类应用中的优势在于占用机位少,可有效节省托管费用。
应用模式2:中小企业网络服务器当前的企业网络需求是多方面的,需要类型多样的服务,其中有些服务可以安装在一台机器上,而有些则需要使用至少一台备份机器或者群集。
与之相对应,任何一个刀片系统既可以独立运行,也可以与其他服务器组成群集或互为备份。
根据企业的实际需要进行搭配。
这种方式可充分发挥刀片服务器易管理、配置灵活和可扩展性好的优势。
使用刀片服务器进行群集并与存域网相结合,这可以胜任大数据量吞吐的数据库并行处理。
对于企业来说,这种高密度不仅节约了宝贵的机柜空间,还节约了布线成本,并可节电,从而降低对UPS的要求。
ASP 规则指南
简介
Active Server Page (ASP) 应用程序的成功常常取决于对体系结构和设计这两方面的取舍 考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性 这种取舍是非常困难的 本文中 我将为您提供一些特定的指导方针 以助您成功开发基于 ASP 的应用程序
我已将指导方针整理成一组开发原则 在评估解决方案和技术时 可以应用以下原则帮助您做出决策 以下原则是我长期以来从成功的开发模式所得的经验积累
原则 采用标准方法
建立命名约定并使目录结构标准化 可以帮助您大大提高 ASP 应用程序的可读性和可维护性 虽然目前尚无 ASP 应用程序的正式标准 许多开发人员还是建立了一些通用方式 在此 我将与您共享一些更为通用的方式
因为 ASP 技术依靠脚本引擎进行工作 而且脚本具有类型不严密的天性 命名约定也很模糊 在类型非常严密的语言中 变量将按照它的实际类型进行声明 在使用 ASP 技术时 通常按照处理变量的方式(而不是其实际数据类型)在 ASP 代码中声明变量 例如 在使用 Visual Basic(R) Scripting Edition (VBScript) 时 尽管所有的 VBScript 变量都是 Variant 你还是会将成功标志声明为 bSuccess(b 代表布尔型) 而不是 vSuccess(v 代表 Variant)
下表是一些通行的命名约定
变量前缀
前缀 使用的变量 变量示例
b or bln Boolean bSuccess
c or cur Currency cAmount
d or dbl Double dblQuantity
dt or dat Date and Time dtDate
f or flt Float fRatio
l or lng Long lMilliseconds
i or int Integer iCounter
s or str String sName
a or arr Array aUsers()
o or obj Object oPipeline
数据库对象的变量前缀
前缀 使用的变量 变量示例
cnn Connection cnnPubs
rst Recordset rstAuthors
cmd Command cmdEmployee
fld Field fldLastName
范围及前缀的用法
前缀 说明
g_ 创建于 Global asa
m_ 对于 ASP 页或在 Include 文件中是局部的
(没有前缀) 非静态变量 对于过程来说前缀是局部的
Knowledge Base (KB) 中的一篇文章 Q INFO: Microsoft Consulting Services Naming Conventions for Visual Basic (英文)对命名约定提供了真知灼见
尽可能采用目录结构为您的各个应用程序部件提供始终如一的位置 您应用程序的实际目录结构当然由您自己决定 但通常是将图像 文档 include 文件和组件分别放置在单独的目录中 以下是简单 ASP 应用程序目录结构示例
目录结构示例
\SimpleAspApp
一个好的目录结构允许您有选择地应用 NTFS 权限 您还可以从 ASP 应用程序内部使用相对路径 例如 可以使用以下代码 从位于 SimpleAspApp 目录的 default asp 页 引用 Includes 目录中的 include 文件 top asp
/includes/top asp
注意我的 include 文件的扩展名是 asp 而不是 inc 这样做是出于安全方面的考虑 而且使用 asp 扩展名(而不是 inc) 还能够在 Visual InterDev(R) 中使用彩色编码
有关结构化 ASP 应用程序的其他一些提示和技巧 请参阅文章 ASP Conventions (英文)
原则 设计为在服务下运行
ASP 将在服务下运行 设计 ASP 应用程序时 您马上会面临在桌面应用程序中不会遇到的安全环境和线程问题 在桌面环境中 通常只处理作为交互式用户运行的单线程执行 而且有权访问当前的桌面系统 在 Internet 信息服务 (IIS) 中 模拟不同用户环境的多个客户机线程调用您的应用程序 而且您的应用程序被限于 系统 桌面
这对您来说意味着什么?请学习 IIS 的安全模式 还要提醒您 仅因为某些东西能在 Visual Basic IDE 下能够正常运行 并不意味着它就能在 ASP 技术中安全运行 Visual Basic IDE 并没有准确地模拟运行时环境 常见的设计错误包括 在 ASP 技术中使用需要用户界面的 OCX 控件 使用对线程来说不安全的组件 和使用要求特殊的用户上下文的组件 要避免的一个最简单的问题 就是从应用程序中试图访问 HKEY_CURRENT_USER (HKCU) 注册表项(例如 不要调用 Visual Basic 的 GetSetting 和 SaveSetting 函数 它们都依赖于 HKCU) 同样 不要出现需要用户进行人机交互的消息框或其他对话框
以下文章是有关 ASP 技术中的安全和验证问题的相当不错的入门读物
Authentication and Security for Internet Developers (英文)
Q INFO: Security Issues with Objects in ASP and ISAPI Extensions (英文)
原则 封装业务逻辑
ASP 技术通过生成 HTML 输出提供了表示服务 简而言之 它会生成用户界面 您需要将商务逻辑从 ASP 表示脚本中分隔开来 即使您不使用 组件将业务逻辑从 ASP 代码中分隔开来 至少也要将业务逻辑分隔到函数和 include 文件中 以提高可维护性 可读性和可重用性 在需要排除故障和隔离问题时 您还能体会模块化设计方法的好处
调用脚本内部调用函数和方法 可避免代码乱作一团 并能在 ASP 应用程序中添加结构 下面举例说明从 ASP 代码中 将逻辑分离到方法调用中
lt;% Main()
MyBizMethod()
DisplayData()
在使用包含 ASP 功能的技术时 可以应用这一原则 下面举一个使用 Visual Basic WebClass 时的例子 说明如何使用这一原则
因为 WebClass 本身引用 ASP 代码生成 HTML 所以您不要将业务逻辑直接置于 WebClass 内 因为这是您的表示层 不在 MTS/+ 下直接运行 WebClass
从 WebClass 可以调用能运行在 MTS/+ 中的单独业务组件
您可以决定创建自己的 具有对 ASP 引用的 组件 而不是依赖于 WebClass 框架结构和额外的 WebClass 运行时开销 — 您也可以使用 ASP 脚本直接将业务组件自动化
原则 尽晚获取资源 尽早释放资源
常见的问题是 从桌面系统到服务器的过渡 许多具有桌面系统背景的开发人员从来没有为服务器的一些问题和资源共享担心过 在传统的桌面应用程序中 连接到服务器是个耗时的过程 为了改善用户的体验 通常采用尽早获取资源和推迟释放资源的方法 例如 许多应用程序会在它的整个运行时间内始终连接着数据库
这种方式在传统的桌面应用程序中能够正常工作 其原因是用户数量非常明确 容易加以控制 并且后端与前端紧密连接 然而 对于当前的 Web 应用程序 这种方式已经不可行了 其原因是有限的服务器资源将面对越来越多的用户 为了使您的应用程序能够应付用户的增加 您需要尽晚获取资源 尽早释放资源
共用有助于增加这一方式的有效性 通过共用 多个用户能够共享资源 而且等待时间最少 对服务器的影响也最小 例如 在处理数据库时 ODBC 连接共用和 OLEDB 资源共用可以实现从共用池中选择连接 最大程度地减少连接数据库的开销
有关共用 ADO 的详细信息 请参阅 Pooling in Microsoft Data Access Components (英文)
原则 使用数据库维护复杂的状态
尽管 HTTP 协议是无状态的 ASP 开发人员还是会经常使用 ASP 功能内置的状态保持机制 例如 使用 ASP 技术内置的 Application 对象 开发人员所保存的资源能够为应用程序的所有用户共享 通过使用 ASP 内置的 Session 对象 开发人员只为单个用户保存资源
尽管听起来在 ASP 技术的 Session 对象中保存信息是一个非常方便的保持状态的方式 然而这一方式付出的代价太大 而且它也可能成为对可伸缩性的最大的限制因素之一 应用程序的可伸缩性本质上是随着用户数目的增长能够继续保持其性能的能力 而对于每一用户 在会话超时或被放弃之前 Session 对象都会消耗服务器的资源 会话还会将您捆绑到一台服务器上 从而限制您利用 Web 集群的功能 请尽可能不要使用 ASP Session 对象进行状态管理 如果您完全没有使用会话 您就可以禁用 Web 应用程序的 Session 状态(请参阅 IIS 文档) 否则 您可以使用下述语句 针对每一页禁用 Session 状态
对于一些简单的数据 您可以使用 QueryString cookie 或隐藏的窗体域保持 ASP 请求间的状态 然后 对于更为复杂的信息 通常推荐您使用数据库 一般所采用的方式是生成某一特有的标识符 然后发送到每一个发出请求的客户机 并保存为隐藏的窗体域 在随后的请求中 这一特有的标识符被用于在数据库中查找与该用户相关的状态信息 这一方式提供了更高的可伸缩性和更为简洁明了的代码
有关使用 QueryString cookie 和隐藏的窗体域的详细信息 请参阅 Q HOWTO: Persisting Values Without Sessions (英文)
原则 使用 Server CreateObject 创建对象
在创建 ASP 技术的对象时 您可以选择 <OBJECT> 标记 Server CreateObject 和 CreateObject 三种方式 每项技术的行为略有不同 尽管在 IIS 中 使用 <OBJECT> 标记或 CreateObject 比 Server CreateObject 略具性能优势 我们一般还是推荐使用 Server CreateObject 以便于 ASP 应用程序认知您的对象 (注意在 IIS 中 前两项与 Server CreateObject 相比 已经没有性能优势
<OBJECT> 标记仅在调用第一个方法时才会创建组件 因此能够节省资源 Server CreateObject 使用 ASP 技术内置的 Server 对象创建组件 实质上 它只是执行了 CoCreateInstance 但是 ASP 却能够认知这一对象 同时 还将调用 ASP 技术的传统的 OnStartPage 和 OnEndPage (注意最好在 IIS 或者更高版本中使用 ObjectContext) 如果您只是使用 CreateObject 您将越过 ASP 技术而直接使用 Scripting 引擎
以下是一个可能出现的例外情况 当您通过防火墙进行调用时 您可能需要调用 CreateObject 而不是 Server CreateObject 详细信息 请参阅 Q PRB: Server CreateObject Fails when Object is Behind Firewall (英文)
原则 提供丰富的疑难解答信息
确保在您所有的 ASP 应用程序中都包含了错误处理过程 而且 确保您提供了有用的诊断信息 我还没有碰到有哪个人抱怨错误信息太具有说明性了 请确保在错误日志中包含以下信息
用户上下文(如果您正在使用组件 您可以调用 GetUserName)
线程 ID(在组件中 可以调用 GetCurrentThreadId)<
时间
参数值
因为将在 ASP 下运行 您可能希望将这些信息写到文件或 NT 的事件日志 您还可以创建记录关键的应用程序事件的应用程序事件日志 以备诊断应用程序错误时使用
以下文章提供了有关错误处理技术的详细信息
Bulletproofing Your ASP Components (英文) Charles Alexander 著
Fitch & Mather Stocks: Web Application Design (英文)
Handling and Avoiding Web Page Errors Part : The Basics (英文)
Handling and Avoiding Web Page Errors Part : Run Time Errors (英文)
Handling and Avoiding Web Page Errors Part : An Ounce of Prevention (英文)
原则 测试性能 可伸缩性和可靠性
浏览器并不是准确的测试方式 它只能向您展示应用程序可能的用途 请针对您的应用程序设置特定的性能目标 并使用 Web Application Stress Tool 等负载工具进行压力测试 您需要自己决定您的环境所能接受的条件 以下是一些帮助您启动测试过程的通用指导方针
通过测试 ASP 每秒钟的请求数对性能进行测试 并建立一个最小的阈值 一般情况下 不执行数据库访问的简单 ASP 页每秒钟至少应返回 页 调用组件或访问数据库的页每秒钟至少返回 页
向应用程序不停地追加用户 直到每秒钟的请求数低于预先设置的阈值 用这种方式测试可伸缩性
从 Web 集群中移去机器 并检查错误和故障情况 以便测试可靠性
将测试环境与实际运行的环境相匹配 甚至防火墙也不例外 这听起来代价很高 但我曾经听说过开发人员因为没有考虑到防火墙 而丢失了工作
有关使用 Web Application Stress Tool 测试 ASP 应用程序的详细信息 请参阅 I Can t Stress It Enough Load Test Your ASP Application (英文)
原则 增加隔离性
使用隔离功能保护您的应用程序过程能够极大地增强服务器的稳定性 谈到 Internet 应用程序 是否使用隔离功能的后果可能会有巨大的差别 一个是应用程序崩溃 一个是服务器当机 保护主 IIS 进程 (InetInfo exe) 通常会排在优先级列表的较高位置 在您使用组件时 这一点尤为突出
通常所采用的保护主 ISS 进程的技术是使 Web 应用程序运行在各自的内存空间中 在 Internet Services Manager 中 您可以针对每一个 Web 设置这一选项 虽然因对进程进行编组而开销的系统资源会对性能有些微的影响 但对应用程序所起的保护作用值得付出这一代价 在 IIS 下 您可以采用进程内 (in process) 和进程外(out of process OOP)两种方式运行应用程序 OOP 应用程序会运行在新的 Mtx exe 实例中 在 IIS 下 您还能使用其他的隔离选项 可以将隔离级别设置为 低 (对 Inetinfo exe 来说是进程内应用程序) 中 (DllHost exe 共享实例)或 高 (Dllhost exe的非共享实例)
除了将 Web 应用程序隔离在它们自己的内存空间中之外 您可能还希望隔离不信任的组件 不信任的组件通常是在实际环境中没有通过测试时间的考验的组件 您可以在 Server 包中运行这些组件 这样它们会运行在新的 Dllhost exe 实例中
一般而言 如果要在性能和保护措施之间采取中庸之道 方式如下 在 高 隔离状态运行 Web 应用程序 在库包中运行组件 这种方式最大限度地减少了编组开支 同时在进程之间提供了最强的保护作用
详细信息 请参阅文章 Server Reliability Through Process Isolation (英文)
原则 不要滥用线程共用组
在 IIS 下 针对每个受 MTS 管理的处理器 ASP 的默认共用组是 个线程 在 IIS 中 默认值是 这就意味着每一线程都是一份潜在的宝贵资源 能够处理多个客户机请求 您同样需要避免调用会出现阻塞的方法 如进行大的数据库调用 如果您有要执行这种操作的工作 它将阻止 ASP 应用程序将响应快速返回到客户机 则请考虑使用队列功能 例如 在 NT 中 可以使用 MSMQ 在 Windows 中 可以使用 Q 在 Windows 中 可以使用 Queued Components(排队组件)
lishixinzhi/Article/program/net//