AlinsRan opened a new issue, #1591:
URL: https://github.com/apache/apisix-ingress-controller/issues/1591

   ## Backgroup
   
   Under a large number of resources (Ingress >= 10000), retries and 
updatestatus cause a large amount of network IO consumption, which causes the 
Controller to block.
   
   
![image](https://user-images.githubusercontent.com/79972061/211250137-c1639320-5719-4a51-bfda-ec10ec25cc9d.png)
   
   ## Solution
   
   Changes and retries of both CRDs and Ingress resources result in IO requests 
(updateStatus). The more resources there are, the more network IO, and the 
api-server is bottlenecked by processing a large number of requests.
   - Asynchronous IO : When a large number of requests will cause the 
api-server to be busy, the way the Congroller synchronization IO, will cause 
the Controller to block in wait for a long time. 
   - Reduce network IO : Assuming that each resource initiates an updateStatus 
request to the api-server, including IO request for each retry, a large number 
of requests will increase the pressure on the api-server. Increase the compare 
of status, there is no need to initiate a request for the same status to be 
updated
   
   
   ### Implementation steps
   
   - [ ] Network IO
     - [ ] Select whether to enable status update through the configuration 
item.
     - [ ] Convert the updateStatus implementation to asynchronous IO
   - [ ] ~~retry~~
     - [ ] ~~Optimize the retry policy~~
     - [ ]  ~~and limit the number of retries~~
     - [ ] ...
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to