Opened 3 years ago

Last modified 3 years ago

#2327 infoneeded_new enhancement

Warn of insufficient network buffers

Reported by: jogger Owned by:
Priority: minor Milestone: undecided
Component: router/general Version: 0.9.37
Keywords: Cc:
Parent Tickets: Sensitive: no


Java garbage collectors have a default pause time goal of 200ms which will from time to time be exceeded by a factor of approx. 3. During a STW GC network buffers may easily overrun. A performance warning should be logged if

network_buffer_size < configured_bandwidth * MaxGCPauseMillis * safety_factor / 1000

where safety_factor = 3


Change History (3)

comment:1 Changed 3 years ago by zzz

Status: newinfoneeded_new

what are you asking? what's the bug of ours? we don't control the JVM.

comment:2 Changed 3 years ago by jogger

Of course we control the JVM via wrapper.config. I can not understand why there is a warning of unsufficient heap memory but not in case of unsufficient network buffers. Then the user has the chance either to tune MaxGCPauseMillis in wrapper.config or to fiddle with the kernel which is different for every platform.

Take 128KB Linux default for TCP and 2 MBps bandwidth then we have MaxGCPauseMillis ⇐ 128 * 1000 / 3 / 2000 ~ 21ms. Way off the 200ms default.

comment:3 Changed 3 years ago by zzz

What I meant was, we don't control _which_ JVM is there. There's very few JVM arguments that work across all versions and vendors of JVMs. And a JVM will usually fail to start if it sees an unknown argument. So we can't add Oracle-specific arguments to wrapper.config.

I still don't understand if this is a bug report for us, or if you're asking us to change something, or what? Whatever the JVM is doing is what it does. We aren't JVM experts. If you're just asking what the JVM does with network buffers, that's a question not a bug, and is best asked in some other place.

Note: See TracTickets for help on using tickets.