问题:运行应用程序所需 CPU的最小数量和最大数量是多少?
答:
现代操作系统通常在进程调度方面表现得很出色,从而最大程度减少了上下文切换。上下文切换是在操作系统调度程序用另一个进程替换 CPU 上正在运行的一个进程时发生的,而且是各种因素作用的结果,例如作业(或进程)优先级、是否等待其他资源(如I/O)、进程是否将用完所有分配给它的 CPU 周期(时间片)等。但是,在执行上下文切换时,虽然现代操作系统表现很“出色”,却并非“完美无缺”,因为进程在每次进行上下文切换时,它都将停止运行——这将导致吞吐量出现延迟(和性能下降)。如果我们确实不希望出现任何上下文切换,则系统中的 CPU 数要大于该系统中运行的进程数。而这完全不切合实际,因为在一个系统中安装这么多的 CPU,几乎没有任何组织能负担得起,而且也没有必要,因为大多数进程都不要求对 CPU 进行持续访问。因此,我们应该转而研究一些最重要的进程,这些进程在本文中即指系统中应用服务器运行时所使用的JVM。
起初,我们假定每个应用服务器 JVM 应该采用至少一个 CPU;这样就有可能最大程度减少发生上下文切换的次数——至少就将用完时间片这一因素而言是如此(如上所述,导致上下文切换还有其他因素)。但是除非您在运行所有服务器时占用了全部 CPU 资源,否则,在应用程序请求(该请求随即被转换为对操作系统资源的请求)到达应用服务器时,很可能存在可用的 CPU 周期。因此,运行的应用服务器数量有可能大于 CPU 数量。
不过,如果要获得可以在环境中运行的服务器的准确数量,则还得采用视情况而定之类的方式进行回答。这是因为该数量实际上取决于负荷、应用程序、吞吐量和响应时间要求等,确定这个准确数量的唯一方法是在环境中运行测试。
在开发环境(其中负荷可能是每个应用服务器只有一个用户)中,您会期望每个 CPU 运行的应用服务器实例数量是生产环境中的应用服务器数量的数倍,这种想法很合理。尽管如此,也很难确定具体的应用服务器数量,虽然为所有应用服务器添加足够的内存也是个相当重要的因素。根据经验,所有 WebSphere Application Server JVM 进程加在一起的大小不应超过服务器上未使用物理内存的 80%。在计算该数字可以达到的最大数目时,您必须考虑的不仅有最大堆大小,而且还有除最大堆大小之外的 Java? 字节码解释器的进程大小(这个大小在操作系统进程表中列出)。字节码解释器向进程表大约添加 65MB(除了最大堆大小 128MB 之外),并随最大堆大小的增加而增加。
在解决了 CPU 的最小数量后,您可能要问,最大 CPU 数量是多少?如果您了解到回答也是视情况而定,那不必感到惊讶。一个非常高效且经过精心编写的应用程序只通过一个应用服务器进程即可使用多个 CPU。事实上,WebSphere Performance Lab 在运行涉及 Trade 性能基准时,使用了 12 个CPU(有时更多)。而期望大多数应用程序具有这种伸缩性可能是不合理的,但大多数经过精心编写的应用程序都应能通过应用服务器使用多个 CPU(实际上,只使用一个 CPU 通常表示存在应用程序瓶颈)。在任何情况下,由Tom Alcott 在WebSphere Scalability 一书讲述的确定最佳克隆(或应用服务器实例)数的指导原则仍然适用:
一般情况下,您应调整一个应用服务器的实例来观察吞吐量和性能,然后逐步增加克隆数量,在添加每个克隆时,对性能和吞吐量进行测试。通过这种方式,可以确定为环境提供最佳吞吐量和性能所需的克隆数。通常,在CPU 利用率达到稍微低于 75% 时,可以通过另添加克隆来提高吞吐量。
⒐ 问题:WebSphere Application Server V6.1 在安全方面有哪些增强功能?
答:
A,缺省安全设置
在WAS V6.1 中,很多基本安全配置步骤现在已设置为缺省设置--这样做是为了符合缺省安全 原则。其中的一些例子包括:
· 在安装期间自动启用管理安全性。
· 缺省情况下,会对所有内部传输进行身份验证。
· 缺省情况下,会对大部分内部传输进行加密。缺省情况下,DCS(通常在计算单元内运行)保持未加密状态,但可以为其启用加密。
· 不使用缺省加密密钥,会自动创建计算单元特定的密钥集。
· 缺省情况下,JNDI 对所有人都是只读的(而不是读/写)。
· 缺省情况下,消息传递将连接仅限制于授予了总线连接角色的经过身份验证的用户。缺省情况下,AllAuthenticated 不再具有此角色。
B,证书、私钥和加密密钥管理
信任存储区和密钥存储区的管理现在作为第一类构造进行处理。这包括管理密钥存储区中的证书和密钥,以及管理整个计算单元内这些密钥的复制。提供了大量小增强功能,这些功能在易用性方面得到了很大的提高。
C,更为复杂的注册中心配置支持
包括支持文件注册中心、可以将多个 LDAP 目录组合为一个逻辑注册中心、直接支持 LDAP 故障转移等。
D,隔离各个管理员
在V6.1 前,管理授权是在整个计算单元范围内进行的。如果针对个体授予了管理权限,则对计算单元中的每个节点、服务器和应用程序都有管理权限。而通过使用 V6.1,现在可以更精细地对管理权限作用范围进行划分。
E,提供从 Windows 桌面到内部网应用程序的单点登录
WebSphere Application Server V6.1 支持 SPNEGO 信任管理解释器(Trust Association Interceptor,TAI),该解释器允许将 Windows 桌面的 Kerberos 凭据从浏览器发送到 WebSphere Application Server,然后将其作为标识访问 WebSphere 资源。以前发布的 IBM Software Services for WebSphere 提供了一个稍有些不同的 SPNEGO TAI 版本,但现在通过使用 V6.1,我们可获得受到全面支持的产品解决方案。