question

Upvotes
Accepted
33 3 6 12

RTO: How to know the network bandwidth from an EMA app running env to an ADS server?

[Performance Debugging and Tuning]
How to know the network bandwidth from an EMA app running env to an ADS server?

Any tools may facilitate this purpose? to identify if the 'slow consumer' issue is due to the network bandwidth.

Take this as example, the EMA application is directly (without LPC or RTC/ADSPOP) connecting to ap-southeast RTO (in the region RTO endpoint) and experiencing the 'channel down' issue possibly due to the 'slow consumer' issue.
There will be ongoing debugging with the tools like 'testclient' of which the logs will be compared with the logs of that EMA application.

However, if any tool may facilitate the checking on the network bandwidth? (not just watching the inbound and outbound throughput of that server running EMA application, need to know the maximum bandwidth it may reach to that endpoint/ADS server in AWS)

ema-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

The background:


1. to identify the current bottleneck, which makes the 'slow consumer' problem (since even use an empty UpdateMsg handle implementation, still met the 'channel down' problem due to stale UpdateMessage over 120s in the server cache)

2. How many RIC updates per second that EMA application and runtime environment may handle at maximum? So for a single RTO machine id, maybe that EMA application instance only may subscribe that number of RIC of that exchange at maximum.

1 Answer

Upvotes
Accepted
45.2k 103 43 60

@Frederic

Users can use package analysis tools, such as tcpdump or Wireshark to verify the network bandwidth or the TCP receive window size of consuming applications.

For example, if the application is a slow consumer, the size of the TCP receive window will drop nearly or equal to zero. The below line graph represents the size of TCP received changed over time. There are some periods that the TCP receive window size drops to zero. This indicates that the application could be a slow consumer.

1655980920651.pngOtherwise, if the clients have a list of subscribed items, they can use that list with the testclient to measure the update rate per second of the subscribed items. Then, they need to measure the number of updates that the application can handle per second.

If the number of updates that the application can handle per second is too small compared to the number of updates per second reported by testclient, there is a chance that the connection of the application can be cut due to the slow consumer problem.



1655980920651.png (71.2 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Many thanks, curious about what the testclient does in the onUpdateMsg? or it's written on top of the ETA?

@Frederic

testclient is written on top of ETA.