HTTP Server load balancing secrets
The HTTP Server plugin that ships with WAS is quite a nice little piece of router magic that ships for free, yet work load management through the HTTP Server seems like such black magic to most people. There are just a few things you should consider when tuning the plugin that might make your life a bit easier:
1) The ConnectTimeout parameter on each <Server> element only governs the HTTP Server's ability to open a socket to the WebSphere Portal HTTP endpoint. This is possible even if the entire Web Container thread pool is consumed. So, even if Portal is hung up and all threads are exhausted, the plugin can still connect to Portal's HTTP endpoint, and the plugin will continue to hammer Portal with more traffic until it is reduced to a bloody pulp. The ConnectTimeout parameter is only good for when the Portal's java process crashes and thus cannot respond to new socket requests.
The best way to defend against a hung Portal is to set the ServerIOTimeout attribute (missing by default, which is why most people miss it). This governs how long the plugin will wait after establishing a connection for data to be returned. Set this value to your pain threshold for waiting for a page to return. After this timeout, that server will be marked down.
2) Performance tests show that "Random" is a more efficient workload management policy than "Round Robin". There is evidence that shows when using Round Robin and a server gets marked down, a larger than normal allotment of that server's traffic is shifted to the very next server in line instead of being evenly redistributed across the cluster.
3) Consider using the <PrimaryServers> and <BackupServers> elements for active/passive configurations, where parts of a cluster can be targetted for normal traffic (PrimaryServer) and other servers in the cluster only get traffic if all of the primaries are marked down (BackupServer).
1) The ConnectTimeout parameter on each <Server> element only governs the HTTP Server's ability to open a socket to the WebSphere Portal HTTP endpoint. This is possible even if the entire Web Container thread pool is consumed. So, even if Portal is hung up and all threads are exhausted, the plugin can still connect to Portal's HTTP endpoint, and the plugin will continue to hammer Portal with more traffic until it is reduced to a bloody pulp. The ConnectTimeout parameter is only good for when the Portal's java process crashes and thus cannot respond to new socket requests.
The best way to defend against a hung Portal is to set the ServerIOTimeout attribute (missing by default, which is why most people miss it). This governs how long the plugin will wait after establishing a connection for data to be returned. Set this value to your pain threshold for waiting for a page to return. After this timeout, that server will be marked down.
2) Performance tests show that "Random" is a more efficient workload management policy than "Round Robin". There is evidence that shows when using Round Robin and a server gets marked down, a larger than normal allotment of that server's traffic is shifted to the very next server in line instead of being evenly redistributed across the cluster.
3) Consider using the <PrimaryServers> and <BackupServers> elements for active/passive configurations, where parts of a cluster can be targetted for normal traffic (PrimaryServer) and other servers in the cluster only get traffic if all of the primaries are marked down (BackupServer).
相關文章
- gRPC Load BalancingRPC
- [RIP-9]RocketMQ Load BalancingMQ
- How to Setup SCAN Listener and Client for TAF and Load Balancingclient
- Bug 6083037 - Server side load balancing does not work [ID 6083037.8]ServerIDE
- 我對Load Balancing Advisory的理解
- akka-typed(6) - cluster:group router, cluster-load-balancing
- Configuration of Load Balancing and Transparent Application FailoverAPPAI
- http_loadHTTP
- How to Configure TAF and Client Load Balancing in a Replicated Environment [ID 210596.1]client
- oracle10g rac(rhel4)_load balancing_taf(一)Oracle
- oracle10g rac(rhel4)_load balancing_taf(二)Oracle
- oracle10g rac(rhel4)_load balancing_taf(三)Oracle
- oracle10g rac(rhel4)_load balancing_taf(四)Oracle
- Oracle Appliactions 11i concepts(十) - Load Balancing(1)OracleAPP
- http_load操作指令HTTP
- http包serverHTTPServer
- The Secrets of Oracle Bitmap IndexesOracleIndex
- Secrets of Firefox 1.0Firefox
- 閱讀CSS Secrets(四)CSS
- Secrets of the Oracle Database筆記OracleDatabase筆記
- http server原始碼解析HTTPServer原始碼
- Perfect & swift-server/httpSwiftServerHTTP
- Beego run http server Running on http://:8080GoHTTPServer
- Server Data Synchronization Via Linux rsync、rsync+inotify Between Load Balance ServerServerLinux
- 拼多多版http-serverHTTPServer
- 實現自己的http serverHTTPServer
- Write a simple HTTP server in PythonHTTPServerPython
- Unable to start HTTP server after restoreHTTPServerREST
- 伺服器負載均衡(Server Load Balance,SLB)伺服器負載Server
- gslb(global server load balance)技術的一點理解Server
- Go標準包-http包serverGoHTTPServer
- HTTP/2 Server Push 詳解(下)HTTPServer
- HTTP2 Server Push的研究HTTPServer
- 連線Http Server的程式碼HTTPServer
- Jmeter除錯工具---HTTP Mirror ServerJMeter除錯HTTPServer
- ubuntu中使用機密資料SecretsUbuntu
- Kubernetes 中 Secrets 物件的使用物件
- 手寫 npm 裡的 http-serverNPMHTTPServer