根据msdn webcast 整理
逻辑/物理设计实践
推荐 : 使用逻辑三层模型
页面(.aspx)和用户控件(.ascs)
可重用类型(组件)放在/bin目录下
数据放在sql数据库中
推荐 : 为web farm设计
不要假定访问者永远会回到同一服务器
注意静态变量和应用状态
web farm会话状态
推荐 : 用同一个进程
应避免(可能时):
对xml web服务的同步调用
通过dcom的远程调用
使用xml web 服务 :
因特网上应用之间的通讯
不要用于应用内通讯
推荐 : 使用isa服务器,当需要dmz安全域时 :
只允许通过isa访问
isa隧道通过dmz到达asp.net
减少进程转换
语言/代码建议
避免使用晚绑定
<%@ page language = "vb" explicit = "true" %>要求声明所有变量类型,依然允许晚绑定
<%@ page language = "vb" strict = "true" %>禁止使用任何晚绑定
com交互建议
尽量少使用com,而使用托管的组件
数据建议
将数据存储在sql server中
选择合适的数据访问方式 : oledb/sql client/odbc
合理选择dataset和datareader 进行数据访问
状态管理
选择合适的方式存放session : inproc/stateserver/database
使用简单数据类型
避免在session中保存sta的com对象
如果不需要session,则禁用它 : enablesessionstate = "false"
如果可能,可使用readonly特性 : enablesessionstate = "readonly"
哪果不需要viewstate则禁用它, enableviewstate = false
最小化viewstate中的数据
查看viewstate的大小查看html输出源码或者启用trace
使用缓存
页面缓存
部分页面缓存
cache对象
数据缓存
webservice缓存
量化web性能的方法: 机器吞吐率响应时间通过给服务器加负载来测试
使用多台客户端机器加载
免费microsoft web application stress
测试多种场景
模拟对站点的端对端场景遍历
测试单页性能
需要计算的数值
不同负载下的request/sex(100,250,500,750,1000等同时访问的客户)
辨明在可接受ttfb/ttlb响应时间内的最大客户负载
关键的性能计数器
处理器,cpu%使用率 || 低数值 = 受阴或者锁竞争
asp.net,入列请求数 || 线性增长意味着服务器已满负荷
asp.net应用,每秒请求数||动态吞吐量(应当一致)
asp.net应用,总错误数 || 指示功能错误(应当是0)
asp.net应用,工作进程重启 || 指示严重功能错误
新闻热点
疑难解答
图片精选