Performance Monitoring in CAVERNsoft

Starting from version G2 1.1, CAVERNsoft provides its own performance monitoring inbuilt in most of the networking classes. The performance calculations are done automatically when the network is used and the statistics can be extracted as and when the user wants.
The performance monitoring output conforms to the netlogger format, which is a list of <label,value> pairs as given below.

Performance Monitoring has been so far incorporated in the following lower/middle level classes of CAVERNsoft:

CAVERNdb_client_c
CAVERNdb_server_c
CAVERNnet_http_c
CAVERNnet_remoteFileIOClient32_c
CAVERNnet_remoteFileIOClient64_c
CAVERNnet_remoteParallelFileIOClient32_c
CAVERNnet_remoteParallelFileIOClient64_c
CAVERNnet_rpcCaller_c
CAVERNnet_rpcManager_c
CAVERNnet_tcpClient_c
CAVERNnet_tcpReflector_c
CAVERNnet_tcpReflectorClient_c
CAVERNnet_udp_c
CAVERNnet_udpReflector_c

A sample output of performance monitoring:

TIME=957394715.541224 SELF_IP=131.193.48.164 REMOTE_IP=131.193.76.38 SELF_PORT=4173
REMOTE_PORT=7879 STREAM_INFO=laurel.evl.uic.edu_AVATAR COMMENT=TRACKER_UDP
MIN_LAT=0.022356 AVG_LAT=0.180702 MAX_LAT=0.450861 INST_LAT=0.022356 STAL=0.180702
JITTER=0.119149 MIN_IMD=0.592920 AVG_IMD=0.963514 MAX_IMD=1.359665 INST_IMD=0.592920 AVG_RBW=93.234949 INST_RBW=129.865108 AVG_SBW=188.231633 INST_SBW=64.317703
STAB=88.706944 BURSTINESS=26.266559 TOTAL_READ=539 TOTAL_SENT=3696
PACKETS_READ=7 PACKETS_SENT=48



Monitored Parameters:

The parameters measured (represented by symbols in the above log entry) along with the units of measurement are listed below:

1. Time Stamp (TIME)
       Unit:                Seconds
       Description:    Time Stamp recorded at the time of logging

Note on the calculations:
The time recorded has a microsecond level of accuracy in all platforms, but for the Windows version, this function gives a millisecond level accuracy only for a 486XT or older machines (since they do not have a high performance counter). So, for a microsecond level accuracy in Windows, Pentiums or higher machines should be used.

2. Self IP (SELF_IP)
        Description:   IP address of the machine on which logging is done

3. Remote IP (REMOTE_IP)
        Description:   IP address of the remote machine on the other end of the network flow

2. Self Port (SELF_PORT)
        Description:   Port number of the machine on which logging is done

3. Remote Port (REMOTE_PORT)
        Description:   Port number of the remote machine on the other end of the network flow

4. Stream Information (STREAM_INFO)
        Description:   Label giving information about the stream being monitored

5. Comment (COMMENT)
        Description:    Comment field to be used by the user typically to indicate events or any other extra information required

6. Minimum Latency (MIN_LAT)
        Unit:               Seconds
        Description:   Minimum of the instantaneous latencies recorded

7. Average Latency (AVG_LAT)
        Unit:               Seconds
        Description:   Average of the instantaneous latencies recorded

8. Maximum Latency (MAX_LAT)
        Unit:               Seconds
        Description:   Maximum of the instantaneous latencies recorded

9.  Instantaneous Latency (INST_LAT)
        Unit:               Seconds
        Description:   Latest instantaneous value of the latency measured

10. Short Term Average Latency (STAL)
        Unit:               Seconds
        Description:   Moving Average of a fixed number of instantaneous latencies recorded (in CAVERNsoft STAL is calculated over 100 packets)

11. Jitter (JITTER)
         Unit:                Seconds
         Description:    Jitter - calculated as the average deviation of instantaneous latencies from the respective Short Term Average Latencies recorded each time

Note on the calculations: All latencies are one way, measured as the time taken for a packet to be transmitted from one machine to another

12. Minimum Inter-Message Delay (MIN_IMD)
        Unit:               Seconds
        Description:   Minimum of the instantaneous inter-message delays recorded

13. Average Inter-Message Delay  (AVG_IMD)
        Unit:               Seconds
        Description:   Average of the instantaneous inter-message delays  recorded

14. Maximum Inter-Message Delay  (MAX_IMD)
        Unit:               Seconds
        Description:   Maximum of the instantaneous inter-message delays  recorded

15.  Instantaneous Inter-Message Delay  (INST_IMD)
        Unit:               Seconds
        Description:   Latest instantaneous value of the inter-message delay  measured

Note on the calculations: Inter-Message delay is calculated as the time interval between two packets received

16. Average Read Bandwidth (AVG_RBW)
        Unit:                Bytes per second
        Description:    Overall average read bandwidth measured (calculated as the overall rate at which data was read till the instance of logging)

17.  Instantaneous Read Bandwidth (INST_RBW)
        Unit:                Bytes per second
        Description:    Instantaneous value of the read bandwidth recorded

18. Average Send Bandwidth (AVG_SBW)
        Unit:                Bytes per second
        Description:    Overall average send bandwidth measured (calculated as the overall rate at which data was sent till the instance of logging)

19.  Instantaneous Send Bandwidth (INST_SBW)
        Unit:                Bytes per second
        Description:    Instantaneous value of the send bandwidth recorded

20. Short Term Average Bandwidth (STAB)
        Unit:               Bytes per second
        Description:   Moving Average of a fixed number of instantaneous bandwidths recorded (in CAVERNsoft STAB is calculated over 100 packets)

21. Burstiness (BURSTINESS)
        Unit:                Bytes per second
        Description:    Burstiness - calculated as the average deviation of instantaneous bandwidths from the respective Short Term Average bandwidths recorded each time

22. Total Data Read (TOTAL_READ)
        Unit:                Bytes
        Description:    Throughput - the total number of bytes read so far

23. Total Data Sent (TOTAL_SENT)
        Unit:                Bytes
        Description:    Throughput - the total number of bytes sent so far

24. Number of Packets Read (PACKETS_READ)
        Description:    Packet Count - giving the number of packets read so far

25. Number of Packets Sent (PACKETS_SENT)
        Description:    Packet Count - giving the number of packets sent so far