HTTP failure with Error: Server is overloaded (Error code: 98)","error_code":"98","module_name":"common-service","error_data":{"status":503}}}.
st en
/var/log/gmanager/gmanager-ui.log shows log similar to following -INFO http-nio-127.0.0.1-64440-exec-42 UI_LOG #### - [nsx@6876 comp="global-manager" level="INFO" reqId="####-####-####-####-####" subcomp="global-manager" username="####@####"] {"user":"####@####","message":"Api Errors->","messageData":{"headers":{"normalizedNames":{},"lazyUpdate":null},"status":503,"statusText":"Service Unavailable","url":"https://<nsx-global-manager>/api/v1/upgrade/available-releases?source=notification","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://<nsx-global-manager>/api/v1/upgrade/available-releases?source=notification: 503 Service Unavailable","error":{"error_code":"98","module_name":"common-service","error_message":"Error: Server is overloaded (Error code: 98)","error_data":{"status":503}}},"level":"Error","browser":"####","time":"####","location":""}[info][filter] [nsx_envoy_filters/source/http/peruserpernodeapilimit/per_user_per_node_api_limit.cc:41] concurrency limit reached 40 for username_or_ip Qj####==
VMware NSX
The issue happens if per_user_per_node_api_limit has maximum limit.
nsx-mngr> get service httpService name: httpService state: runningLogging level: infoSession timeout: 1800Connection timeout: 30Client API rate limit: 100 requests/secClient API concurrency limit: 40 connectionsGlobal API concurrency limit: 199 connectionsRedirect host: (not configured)Basic authentication: enabledCookie-based authentication: enabledGET https://<nsx-mgr>/api/v1/cluster/api-service
or,
curl -k -u admin -X GET "https://<nsx-mgr>/api/v1/cluster/api-service"
503 Server Unavailable error to the client. By default, this limit is 40 concurrent requests.<nsx-manager> set service http client-api-concurrency-limit <http-client-api-concurrency-limit> HTTP API per-client concurrency limit value in the range of 0 - 9223372036854775807PUT https://<nsx-mgr>/api/v1/cluster/api-service{ "global_api_concurrency_limit": 199, "client_api_rate_limit": 100, "client_api_concurrency_limit": 40, <-- [Set required value here] "connection_timeout": 30, "redirect_host": "", "cipher_suites": [ {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_256_GCM_SHA384"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_128_GCM_SHA256"} {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384}", {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA256"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_256_CBC_SHA"}, {"enabled": true, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"}, {"enabled": true, "name": "TLS_RSA_WITH_AES_128_CBC_SHA256"}, {"enabled": false, "name": "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"}, {"enabled": false, "name": "TLS_RSA_WITH_AES_128_CBC_SHA"} ], "protocol_versions": [ {"enabled": true, "name": "TLSv1.1"}, {"enabled": false, "name": "TLSv1.2"} ]}
or, if you are using curl please use the following command -curl -k -u admin -H "Content-Type: application/json" -X PUT "https://<nsx-mgr>/api/v1/cluster/api-service" -d @api-service.json
Here api-service.json is the name of file containing body.
Please refer to following KBs for more information on API configuration and API access logs.
NSX-T API configuration for HTTP on NSX-T Manager
'Manager CPU usage very high' alarm is generated for NSX manager VIP node