In one of our java application, we are seeing that some external calls to a particular DNS observe increasing network latency (99th percentile), while network latency for rest of the DNS are normal. To debug, we profiled the java process to get java flight recording (JFR).
In JFR, we see longer socket read time for the IP address of problematic DNS. On checking the event logs for those IP address, we are seeing that bytes read is 0B and 'Timeout value' is 1ms for the events, where socket read duration is longer than the rest (Refer screenshot). 1ms is definitely not the socket timeout we use for establishing the TCP connection. We tried checking documentation of JFR amd Java Mission Control to undertsand what this timeout value mean. However, we couldn't find anything to explain meaning of this value.
Can anyone explaing how can to interpret the 'Timeout Value' in Socket I/O event logs?
It's the timeout value in use by the Socket. See: https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/net/Socket.html#setSoTimeout(int)