Minimum Hardware Specs for the Canary System (version 24)
Understanding Resource Demand
Since every Canary Historian could be licensed to potentially scale beyond two million tags and handle a variety of data speeds, system requirements can vary.
Factors like scan class, change rate, data type, calculations, API queries, client activity, and additional variables can affect system resources. Below are minimum hardware recommendations for a typical enterprise solution consisting of multiple sites each logging data to a corporate Canary Historian.
Minimum Hardware/OS Recommendations
Canary is compatible with Windows Server 2019/Windows 10 (1903) and later.
Collector and Sender Machine
- Dual Core 2.0 GHz Processor
- 8 GB of RAM
- .NET 4.7.1 or greater
- 250 GB HDD @7200 RPM
Site Historian Server
- Quad Core 2.4 GHz Processor
- 16 GB of RAM
- .NET 4.7.1 or greater
- 500 HDD @7200 RPM
Corporate Historian Server
- Six Core 2.4 GHz Processor
- 32 GB of RAM
- .NET 4.7.1 or greater
- 4 TB HDD @7200 RPM
Storage Methodology and Considerations
The Canary Historian stores tags, organized into groups, referred to as DataSets. By default, each DataSet archives data into daily Historical Database Files, also referred to as HDB files. Each HDB file contains all of the tag names, properties, timestamps, values, and qualities for an entire day.
Of course, HDB files are optimized for storage, and at the end of each day, are validated and compressed automatically by the Historian using a loss-less compression algorithm. Because it is loss-less, all original data values are maintained without using any interpolation while still featuring a 3:1 compression ratio.
Several factors contribute to the overall size of each HDB file:
Number of tags
Rather obvious, but the higher the tag count the more data; however, this is usually the only component that is considered when someone asks the "how much storage is required" question!
Length of tag names
Canary only writes the tag name one-time for each HDB file, but unnecessarily long tag names mixed with high tag counts (100,000+) can increase the footprint.
Sample rate
How fast the Canary Data Collector is requesting data will contribute to the number of timestamps, values, and quality scores that are written to an HDB file. Although Canary is super efficient by ignoring unchanged values, choosing to update the timestamp rather than duplicate the entry, fast sample rates on some analog tags can create a lot of values. Imagine a temperature sensor with one hundredth of a degree accuracy. If polled every second, you would nearly always see a value change.
Using deadbanding features when setting up logging sessions with the Canary Data Collectors can help avoid this issue and provides balance for faster scan classes without having to worry about unnecessary data storage.
Date change rate
Just because tags are being scanned often does not mean they change often. As mentioned above, Canary writes by exception, ignoring unchanging values and updating the timestamp of the current value; however, understanding how often your tags typically change goes a long way to predicting what your storage footprint may look like. Some tags, like production values, alarms, or high/low set points, may only change a few times a minute, or only a couples times a day. In contrast, some tags like hydraulic pressures, might have data values that change a hundred times a second, all of which are valuable to record.
Data type
The type of data you collect will impact the overall storage requirements. These could range from single byte Booleans to 8 byte floats. Strings can also be stored.
Canary stores up to 100k unique strings a single time within an HDB file.
Timestamp resolution
If you don't need millisecond resolution in your timestamps, use the Timestamp Normalization feature of the Canary Data Collectors to reduce your timestamps to an appropriate length. Long timestamps written tens of thousands of times per day per tag can add up.
Tag metadata
Depending on the type of Data Collector being used, you have the ability to record metadata, or properties, along with your tag values and quality scores. Similar to tag names, lengths of strings used will impact overall DB file size.
Estimating Storage Requirements
To estimate the potential hard driving sizing for your project, consider the following potential scenarios, both representative of typical complex systems.
7 Year Archive - 664 GB
- 10,000 tags
- 30% boolean, 20% analog integer, 50% analog float
- Average sample rate - 5 seconds
- Average change rate - 30%
7 Year Archive - 1.30 TB
- 10,000 tags
- 30% boolean, 20% analog integer, 50% analog float
- Average sample rate - 3 seconds
- Average change rate - 35%
Here are additional details of storage needs, based solely on data type.
1,000 two byte boolean tags
Scan rate | Change rate | Daily file size | 7 years |
1 sec | 20% | 64 MB | 163.2 GB |
5 sec | 20% | 12.7 MB | 32.4 GB |
30 sec | 20% | 2.15 MB | 5.4 GB |
5 min | 20% | 0.21 MB | 0.5 GB |
1,000 four byte analog float tags
Scan rate | Change rate | Daily file size | 7 years |
1 sec | 70% | 33.8 MB | 863.48 GB |
5 sec | 70% | 6.7 MB | 172.7 GB |
30 sec | 70% | 1.1 MB | 28.7 GB |
5 min | 70% | 0.11 MB | 2.8 GB |
1,000 four byte analog integer tags
Scan rate | Change rate | Daily file size | 7 years |
1 sec | 40% | 19.3 MB | 493.4 GB |
5 sec | 40% | 3.8 MB | 98.7 GB |
30 sec | 40% | 0.64 MB | 16.4 GB |
5 min | 40% | 0.064 MB | 1.64 GB |
With so many potential factors, estimating necessary storage can be difficult. Ultimately, the best way to predict what your long term storage needs require is to find the average HDB file size over a course of a week or month. Using this value, you will be able to have a better understanding of how much space you will consume over the course of years.
Read Activity
The number of clients connecting to the Historian to consume and read data out is more resource intensive than the writing and storage of data. Clients may be asking for months or years worth of data through Axiom, ODBC, Excel Add-in, or the Read API. On top of that, the Publisher and Calculation services also request data for their processes. This is important to keep in mind when determining the resources a Canary server may need.