调整服务器性能

本主题描述针对 IBNM Traveler 服务器性能的内存、线程、日志记录和其他注意事项。

内存

如果是在 32 位 Microsoft Windows 操作系统上运行 IBM Traveler 服务器,那么您可能需要执行一些步骤来减少核心 Domino® 服务器使用的内存。在此环境中,将服务器专用于运行 IBM Traveler,而不运行其他 Domino 应用程序。您应通过向 Domino 服务器程序目录中的 Notes®.ini 添加以下行来减少 Domino 预先分配给共享内存缓冲池的内存量:

NSF_BUFFER_POOL_SIZE_MB=256

如果不存在此行,Domino 服务器将为缓冲区预先分配 512 MB 的共享内存,这样就没有足够的内存留给服务器上运行的其他应用程序。要确定 IBM Traveler 服务器当前的可用内存是否很少,请参阅资源使用情况主题的“内存显示”部分。

在 Windows 64 位服务器上,增加 HTTP Maximum Cached 用户参数以与预期的同步设备数匹配。该值显示在 Domino 服务器文档中,并且可以使用 Domino Administrator 客户端进行更改。

此外,对于 64 位服务器,可能需要增加为 IBM Traveler Java 堆分配的最大内存量。此参数称为最大内存大小,位于 Domino 服务器文档的 IBM Traveler 选项卡上。缺省情况下,此值为 1024 MB。使用 Tell Traveler MemTell Traveler Status 命令可确定您的系统是否已接近最大可用堆。Java 内存越高,IBM Traveler 任务的运行效率就越高,但请确保您的服务器有足够的物理内存来允许扩展此值。如果在 IBM Traveler 任务中遇到“内存不足”Java 错误,那么可能是相对于您所运行的用户数,“最大内存大小”设置得过低。

整理数据库碎片

本部分中的信息仅适用于 Derby/单服务器用例。

随着 IBM Traveler 安装变得越来越大,并且运行时间越来越长,内部数据库的大小也将随之增加。这可能会影响系统性能。您可以整理数据库碎片以压缩大小并优化其性能。

有关本主题的详细信息,请参阅对内部数据库进行碎片整理以提高性能

HTTP 线程

对于访问 IBM Traveler 服务的移动设备,Domino HTTP 服务器任务必须有足够的线程来处理来自这些设备的 HTTP 请求。您可以使用 IBM® Notes Administrator 客户端调整 HTTP 服务器线程数,并修改 IBM Traveler 服务器的服务器文档。在服务器文档中,单击因特网协议,然后单击 HTTP 并更改“活动的线程数”值。

要确定为 IBM Traveler 分配的最佳 HTTP 线程数,取设备数并乘以 1.2。例如,如果您有 250 个移动设备,那么 HTTP 活动的线程数值应至少为 300(250 的 1.2 倍)。HTTP 服务器任务在启动时分配所有这些线程,并在服务器启动期间让它们一直处于活动状态。请不要过多分配 HTTP 线程,否则会导致 Domino 服务器内存不足。
注: 与其他移动设备相比,BlackBerry 10 设备倾向于使用更多的连接。因此,将设备数乘以 1.2 的一般规则可能不足以计算出 HTTP 线程数,可能需要增加到 BlackBerry 设备数的 2 倍再加上非 BlackBerry 设备数的 1.2 倍。BlackBerry 10.3.1 和更高发行版包含了对所利用连接数的改进,这可减少 HTTP 线程数。有关特定 BlackBerry 10 发行版的连接利用率的其他信息,请与 BlackBerry 联系。

有关调整 HTTP 线程数的更多信息,请参阅调整 IBM Traveler 的活动 HTTP 线程数

IBM Traveler 线程

IBM Traveler 是多线程 Domino 任务。IBM Traveler 线程会动态进行调整。大多数情况下,管理员都不太可能需要更改这些值。如果调整这些线程值,在添加的线程数和处理额外线程所需的额外内存之间实现平衡非常重要。仅当需要时才分配 IBM Traveler 服务器任务内的线程,但在需要这些线程时,必须为它们分配足够的内存来启动。分配太多的线程会导致系统因内存不足错误而崩溃。

管理员仍可以手动调整以下线程池:

  • 主同步线程 - 确定对用户邮件文件的更改是否必须同步到用户设备(在 notes.ini 中指定为 NTS_THREADS_PRIMESYNC 的值)。
  • 设备同步线程数 - 在 Domino 邮件服务器与用户设备之间同步数据(缺省值是 5,000 个线程,且在 notes.ini 中指定为 NTS_THREADS_DEVICESYNC 的值)。
  • 工作程序设备线程 - 在内部用于处理设备请求,包括配置、推送和同步(在 notes.ini 中指定为 NTS_THREADS_WORKER_DEVICE 的值)。与同步数据相关联的大部分操作都将传递到设备同步线程。
  • 工作程序系统线程 - 在内部用于处理所有入局请求,包括服务器间进程间通信(在 notes.ini 中指定为 NTS_THREADS_WORKER_SYSTEM 的值)。与设备相关联的操作将传递到工作程序设备线程。其他操作将在工作程序系统线程本身上处理。
注: 有关线程池设置的更多信息,请参阅 Notes.ini 设置

日志记录

在调试特定的问题时,IBM Traveler 服务器只应在“最详细”日志记录级别运行。对于影响所有用户的问题,整体级别应仍为“最详细”。但如果问题只针对少数几个用户,那么在“最详细”级别仅运行这些用户,而在系统级别运行其他用户。

缺省情况下,所有 Traveler 日志文件包含在 <Domino data dir>/IBM_TECHNICAL_SUPPORT/traveler/logs 中。如果要将日志文件移至其他位置,请修改 notes.ini 文件中找到的条目 NTS_LOG_ROOT_DIR。但要确保将文件放在 IBM_TECHNICAL_SUPPORT 目录下,或完全在 Domino 目录树之外的位置。不要将文件放在 Domino 目录树中(IBM_TECHNICAL_SUPPORT 目录树之下除外)。这是因为在启动或使用 NSD 时,Domino 会查看 Domino 目录树中的所有文件,但不会查看 IBM_TECHNICAL_SUPPORT 目录下的文件。因此,如果 Domino 目录中有大量文件,启动时间和 NSD 时间可能会很长。Traveler 日志可能包含大量文件(特别是使用“最详细”级别时)。

通过 Domino 控制台可以使用以下 tell 命令,并且允许用户以不同于系统的记录级别存在。例如,系统可以设置为“较详细”级别,而用户可以设置为“最详细”级别,直至您解决并消除了问题(这样会将它们重置为“较详细”系统级别)。
命令 结果

Log AddUser leveluser

此用户指定日志级别的日志记录。将此用户从列表中除去之前,此级别会覆盖系统日志级别。

Log RemoveUser user

从用户列表中除去用户(列表中的用户以不同于系统级别的级别进行记录)。此用户会恢复为以系统级别进行记录。通过指定 * 可除去所有用户。

定制地址高速缓存用户允许

如果要定制允许进入地址高速缓存的最大用户数,您可以通过修改 notes.ini 文件来实现。查找 NTS_ADDRESSCACHE_MAX_ENTRIES 条目,缺省值为 10,000。根据数据流量,您可能要增大最大条目数来避免大量查找。Systemdump 包含此数据,使您可以确定高速缓存是否已满,以及包含了哪些用户。

启用会话认证

通过为 Web 用户启用基于会话的单服务器或多服务器的名称和密码认证,可以增强性能。这允许 IBM Traveler 客户端针对每个会话登录一次,而无需在每次进行设备到服务器的通信时都登录。如果未使用因特网站点文档,那么可以通过在服务器文档中单击因特网协议 > Domino Web 引擎找到会话认证参数,如果使用因特网站点文档,那么可以通过单击 Web 协议的因特网站点文档的 Domino Web 引擎选项卡找到会话认证参数。

在启用会话认证之前,请确保查看此信息中心内 Domino Administrator 文档最新版本中的“会话认证”主题。复审会话认证详细信息,并确保选项适合您的环境。

服务器的物理位置

建议为服务器使用高速连接。此外,您应让 Traveler 服务器的物理位置尽量靠近邮件服务器。慢速连接可能会导致出现超时错误。

维护 Derby 数据库完整性

数据库管理员的一个最重要的职责是维护数据库的完整性并避免其损坏。

Derby 必须能够同步至磁盘。某些机器、磁盘或操作系统设置可能会阻止正常同步,并在发生电源故障、系统崩溃或软件崩溃时导致不可恢复的数据库损坏。为避免数据库损坏,您可以执行以下操作:
  • 请勿在保存数据库的硬盘驱动器上启用磁盘写入高速缓存。如果开启写入高速缓存,请禁用(在许多 Windows 系统上,缺省为启用)。磁盘写入高速缓存可能会提高操作系统性能。但是,在发生电源故障、设备故障或软件故障时,也可能导致丢失信息。请参阅操作系统支持文档以获取有关如何禁用磁盘写入高速缓存的信息。
  • 在未安装 NFS、SMB 或其他网络安装磁盘的本地驱动器上运行 Derby。IBM Traveler 将 Derby 信息存放在 Domino 数据目录中。
  • 在 Derby 写入其事务日志或其他数据时,禁用可能阻止正常同步至磁盘的任何其他设置或选项。