IBM i (OS/400) 和临时端口

IBM i (OS/400) 和临时端口

我们内部有一个自定义应用程序,其中大量 Windows 客户端正在访问运行 V5R4 的 IBM i (AS/400) 上的成像服务。有时,在 CPU 负载过重的情况下,客户端无法建立 TCP/IP 连接。由于 IBM i 对我来说有点陌生,我别无选择,只能开始将其与其他操作系统(主要是 *NIX 和 Windows)进行比较。它们都具有临时端口的概念和使用,通过这些端口建立与客户端的连接。在其他操作系统中,连接池的大小各不相同,从大约四千到六万四千不等。在阅读本手册,IBM i 是否也支持临时端口范围配置,或者它是否默认使用从 1024 到 65535 的整个 IP 池?

答案1

据我所知,IBM i 及其前代产品使用从 1024 到 65535 的整个端口范围。

图像服务也是内部编写的吗?还是供应商应用程序?

许多本机 IBM i 应用程序使用单独的进程(称为作业)而不是多线程单个进程来处理客户端服务器活动。由于启动新进程的成本相对较高,因此标准做法是让一组可用的“预启动”作业等待处理请求。但是,如果大量连接请求同时进入,则在启动新作业时连接可能会延迟。还可以限制一次使用的连接总数。

例如,让我们看一下处理 ODBC/JDBC/OLEDB 请求的 QZDASOINIT 作业。

此命令:
DSPACTPJ SBS(QUSRWRK) PGM(QZDASOINIT)

将显示正在运行和使用的 QZDASOINIT 作业的当前、平均和峰值数量:

 Prestart jobs:         
   Current number . . . 
   Average number . . . 
   Peak number  . . . . 

 Prestart jobs in use:  
   Current number . . . 
   Average number . . . 
   Peak number  . . . . 

向下翻页将显示第二页信息:

Program start requests:                 
  Current number waiting . . . . . . . .
  Average number waiting . . . . . . . .
  Peak number waiting  . . . . . . . . .
  Average wait time  . . . . . . . . . .
  Number accepted  . . . . . . . . . . .
  Number rejected  . . . . . . . . . . .

预启动作业通过分配给给定子系统的“预启动作业条目”进行控制。以下顺序将带您进入“”:
dspsbsd qusrwrk
10. Prestart job entries
5=Display details

对于我的 QZDASOINIT 条目,我有以下内容

Initial number of jobs . . . . . . . . . . . . . :   1       
Threshold  . . . . . . . . . . . . . . . . . . . :   1       
Additional number of jobs  . . . . . . . . . . . :   2       
Maximum number of jobs . . . . . . . . . . . . . :   *NOMAX  
Maximum number of uses . . . . . . . . . . . . . :   200     
Wait for job . . . . . . . . . . . . . . . . . . :   *YES

有关更多详细信息,请参阅调整预启动作业条目

答案2

使用临时端口的不是操作系统,而是应用程序。操作系统并不是真正的决定因素。话虽如此,@Charles 有一个很好的答案,可以尝试在尝试安排新的传入请求时避免服务器不堪重负。

相关内容