根据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应用,工作进程重启 || 指示严重功能错误
|