IBM i (OS/400) 和臨時埠
我們內部有一個自定義應用程序,其中大量 Windows 客戶端正在訪問執行 V5R4 的 IBM i (AS/400) 上的映像服務。有時,在 CPU 負載過重的情況下,客戶端無法建立 TCP/IP 連接。由於 IBM i 對我來說有點陌生,我別無選擇,只能開始與其他作業系統(主要是 *NIX 和 Windows)進行比較。它們都有臨時埠的概念和使用,在該埠上建立與客戶端的連接。在其他作業系統中,連接池的大小從大約四萬到六萬四千不等。我想知道,在閱讀了這本手冊之後,IBM i 是否也支持臨時埠範圍配置,或者它是否預設使用從 1024 到 65535 的整個 IP 池?
據我所知,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
有關更多詳細資訊,請查看用於調整預啟動作業條目的文件