Submitting your feedback...
Knowledge Base Article
2774OSI8 - How much buffering space and network bandwidth is required on a PI Interface node
Product: API Buffer Server / PI Buffer Subsystem / PI Interfaces
Version(s): All

Question

How much disk space needs to be made available for buffering data on a PI Interface node?

How much network bandwidth needs to be made available for sending data from a PI Interface node?

Answer

Methods for Calculating Bandwidth Usage

The OSIsoft Buffer and Bandwidth Calculation Spreadsheet is available from the Technical Support website in the Download Center under the "Extras" category. Download this spreadsheet and follow one of the methods below to fill in the spreadsheet, using the average scan rate or a known IO rate.
 

Using approximate scan rate

This method calculates network throughput using an approximation for the rate at which an interface node collects data.

I. Provide information about your interfaces.
  1. Determine the average rate your interfaces collect data from the data source (scan class) and enter that value into cell "E9" as a whole number greater than 0 in seconds.
  2. Determine your interfaces' tag count by data type.
    • Enter the number of Int16 tags into cell "E13" as a whole number greater than 0.
    • Enter the number of Int32 tags into cell "E15" as a whole number greater than 0.
    • Enter the number of Float16 tags into cell "E17" as a whole number greater than 0.
    • Enter the number of Float32 tags into cell "E19" as a whole number greater than 0.
    • Enter the number of Float64 tags into cell "E21" as a whole number greater than 0.
    • Enter the number of Digital State tags into cell "E23" as a whole number greater than 0 .
    • Enter the number of string tags into cell "E25" as a whole number greater than 0.
    • Enter the average string size into cell “E27” as a whole number greater than 0 in bytes.
       
  3. Determine the exception ratio for your interfaces.
    • This is the percentage of all tag data collected from the data source that passes the exception test and will be sent to the PI Server (for example, 100% indicates all values are sent to the PI Server, 25% indicates only a quarter of the values collected are sent to the PI Server).
    • Enter the ratio into cell "E31" as a whole number between 0 and 100.
II. Provide information about your Buffering configuration.
  1. Select the buffering option that you currently use.
  2. Enter the quantity of PI Servers that you fan data to into cell "E41" as a whole number greater than 0.
  3. If using PI Buffer Subsystem, enter the amount of free disk space available for buffering into cell "E45" as a whole number greater than 0 in MB.
  4. If you have a custom buffering configuration then you can enter an alternate MAXTRANSFEROBJS value into cell “E49” as a whole number between 1 and 2,000,000.
  5. If you have a custom buffering configuration then you can enter an alternate SENDRATE value into cell “E51” as a whole number between 1 and 2,000,000.
III. Provide information about your versions of the OSIsoft software.
  1. "PINS" refers to the components installed on an interface node (PI Network Manager, PI Message Subsystem, etc.). See KB00588 for more information.
  2. Select the option which best describes the software versions in use.
IV. Provide information about your network link.
  1. Select the option which best describes your network speed.
  2. If you selected "other," please enter the network speed into cell "L35" as a whole number greater than 0 in Mbits/s.
  3. Enter the latency of your network link into cell "L37" as a whole number greater than 0 in milliseconds.
  4. If you would like an estimate of your network throughput in MBaud/second, enter a value for bits/baud into cell "L39" as a whole number greater than 0.
Once all information is filled in, click the "Calculate!" button to determine your theoretical bandwidth and buffer usage.
 

Using a known IO rate

If available you can use an interface's IOrate tag instead of using average scan rate and exception ratio. The IOrate tags should be accurate as to quantity of events being sent to the PI Server, however it does not indicate data type distribution.

There are two IOrate tags and they each have different units.
  • UniInt IOrate (sy.st."PIServer"."Interface".IO Rate) in events/sec
  • Input IOrate tag (sy.io."PIServer"."Interface" in events/min 
If using the Input IOrate tag, make sure to convert the value from events/min to events/sec. Add the IOrates for all interface instances on the interface node, as this should give an indication of the overall IOrate coming from the node.

Provide information about your interfaces.
  1. Set average scan rate in cell "E9" to "1."
  2. Using the overall IOrate from the interface node, fill in the interface node's tag count by data type.
    • For the purposes of this step, the IOrate should be considered the total tag count. All fields in total should be equal to the overall IOrate.
    • Each data type should be filled in to represent a given percentage of the IOrate (for example, if float32 is estimated to be 60% of data from the node and overall IOrate of 5,000 is measured, the float32 count would be 3,000).
    • Enter values with the restrictions mentioned in the previous section, Using approximate scan rate.
  3. Set exception ratio in cell "E31" to "100."
The other fields should be entered using the same instructions listed under Using approximate scan rate.
 

Notes

Network latency has a significant impact on throughput for PINet protocol. This is especially important for the PI to PI Interface since it typically is connected over low quality links. Due to latency it typically requires multiple instances of the interface to saturate available bandwidth.

Estimated Network Throughput

Bandwidth usage calculations in the Actual column are based on a steady state event rate which is determined from the interface node's average scan rate, tag data type distributions and values which pass interface exception.  The Peak column estimates bandwidth usage when draining a full buffer.

A key factor in maximizing the throughput is the version of PI Network Manager that is in use on both the PINS and PI Server. For maximum performance use PINS 3.4.380 or later components and PI Server 3.4.380 or later wherever possible.
 

Estimated Buffer Capacity

The Fill time estimates how long the buffer will take to reach capacity in the event that buffering is not able to send events to the PI Server.  Assuming a full buffer, the Drain time estimates the time it would take to offload all buffered data to the PI Server while still collective live data. This can be useful for determining how long it would take a reconnected buffer node to reach steady state.

For API Buffering, the Fill and Drain calculations are based on the Windows OS only; the maximum API buffer lifetime on non-Windows platform is much higher. UNIX /Linux platforms allow for a variable number of files, which essentially limits buffer lifetime to free disk space instead of the previous 2GB limit. A better solution for buffering on Windows is the PI Buffer Subsystem, which is also disk bound in terms of buffer lifetime.

To determine disk space required for a given Buffer capacity, adjust buffer file size / free disk space field above until a desired Estimated Buffer Capacity is reached. Keep in mind that fanning to additional servers will reduce buffer lifetime.


 
Article ID: 2774OSI8 Created: 2001-08-30
Article Type: Troubleshooting Last Updated: 2015-02-02