Weekly Technical Report for the Fourth Week of November 2022
This week, my main task was optimizing a Java service that exhibited abnormal timeout behavior. Even under low production traffic, the service experienced batch timeouts. At the same time, CPU usage remained consistently low and never increased under load. This strongly suggested that the system was not CPU-bound, but rather blocked on some operations. Most services I have worked on, including this one, are IO-intensive. They rely heavily on RPC calls, where worker threads often block while waiting for responses. To mitigate this, such systems typically use a large number of worker threads to ensure that new requests can still be processed even when many threads are blocked. ...