从 XPages 的角度来说:
1 - 了解工作集和硬件的动态
也就是说,了解应用程序代码、服务器运行时和硬件配置文件在处理给定工作集(即:服务器内的 XPages 应用程序)时正在做什么。应用程序在生命周期执行和内存使用方面是否以非最佳方式编码?应用程序是否使用内存或磁盘持久性进行组件树序列化?服务器是否分配了足够数量的 JVM 内存?硬件是否提供足够的 CPU 和内存?
2 - 配置和监控具有上限负载的工作集
要完全回答 #1 中的一些问题,必须使用 XPages Toolbox 和 Eclipse Memory Analyzer 等工具进行详细的性能和可伸缩性分析。此外,使用 Rational Performance Tester(或其他一些性能测试工具)测试工作集,以模拟测试环境中的真实并发工作负载。这允许您设置一个测试环境,您可以在其中使用 (n) 个使用自动化的并发用户来访问您的应用程序,并收集所有关于健康等的宝贵数据。
3 - 分析配置文件信息以识别工作集中的瓶颈
请记住,您的工作集可以是一个或多个应用程序。每个人都在做不同的事情,并且有不同的负载要求。请具体说明手头的任务 - 您是希望针对所有应用程序(针对平均规模)更普遍地调整系统,还是希望针对特定应用程序(针对目标规模)全面优化服务器?
4 - 在适用的情况下优化工作集
在适用的情况下进入并更改 XSP / Java / ServerSide JavaScript 代码 - 使用您对 XPages 请求处理生命周期的了解,并注意在高端负载场景下那些饥饿的 JVM 内存使用者。始终支持磁盘持久性(磁盘存储比 RAM 便宜!)并相应地编写自定义 Java 对象和托管 Bean 以应对序列化和恢复。并在这些场景中在功能和速度之间进行权衡,在这些场景中,高可扩展性最终会消耗 CPU……具有目标功能/操作等的更智能的 UX。
5 - 在适用的情况下扩展硬件
准备好根据工作集的需要增加内核、时钟速度、RAM、磁盘存储 - 分析、监控和优化工作集的循环方法将越来越多地阐明硬件的适用性,因为这个过程进化。
5 - 从 #2 开始重复,直到工作集和硬件执行并扩展到系统的预期要求/负载预期