Newer solid-state drives (SSDs) offer significant performance improvements over traditional hard disk drives (HDDs) and should be considered as an option for your CygNet services.
This post (also posted as a Technical Note on the CygNet Support portal) describes both types of data storage devices, the most useful performance benchmark for comparing HDDs and SSDs, and recommendations for configuring SSDs in a CygNet system.
Data Storage Device Types
A traditional hard disk drive (HDD) is a metal disk with a thin magnetic coating. The coating stores data represented by binary data bits. A read/write head converts electrical signals to magnetic signals and back again while the disk is spinning at high speed. The faster the disk spins, the faster the drive operates. Because of its rotary recording surface, a HDD works best with larger files, for example, 128 KB or more, which are laid down in contiguous blocks, as process known as sequential operations. An HDD uses a read/write algorithm to position its head over the exact position to read from and write to the magnetized disk. As the disk begins to fill up, data can become scattered around the disk, or fragmented, thus adversely affecting performance.
A solid-state drive (SSD) consists of a series of interconnected NAND flash memory chips, each containing a number of non-volatile memory cells used to store data. These memory cells have a finite number of program-erase (PE) cycles. Drive manufacturers use a technique called wear leveling to dynamically arrange data so that erasures and re-writes are evenly distributed across the flash blocks in the SSD. The goal of wear leveling is to ensure that all of the drive’s cells are used before the first cell is written to again, thereby prolonging the life of the flash memory. This process can lead to file fragmentation, but fragmentation on an SSD does not affect performance in the same way it does on an HDD, as there is no read/write head searching the disk for highly fragmented data.
Because of the way data storage on an SSD is divided into blocks and pages, SSDs are well-suited for random operations. Random operations access locations on the storage device in a non-contiguous manner and are generally associated with small data transfer sizes, for example, 4 KB or less. For those familiar with the basic tenets of CygNet architecture, recall that the maximum size of a CygNet message is 4 KB. Thus, an SSD is well-suited for the retrieval and storage of data in CygNet applications.
There are many benchmarks with which to measure performance when comparing computer storage devices such as HDDs and SSDs. One that is very applicable to drives on which CygNet services are installed is input/output operations per second (IOPS).
IOPS measures how many times per second the drive is able to read and write. This is an important parameter for drives that handle lots of requests, such as a CygNet server that reads and writes large numbers of small packets in a very short time. Tests have shown that IOPS on SSDs are significantly higher than on HDDs. This is because an SSD controller needs little time to locate a memory address in the block, while an HDD read/write head needs time to fly over the disk to find the exact position.
CygNet Software and SSDs
With its reliability, lower latency, faster read/writes, and significantly greater IOPS, we recommend the use of an SSD with CygNet software. Consider the following when configuring your drives, CygNet services, and databases:
The CygNet databases will benefit from the fast read/writes on a SSD. Load the operating system and executables on a HDD and your CygNet databases (APPS, DDS, FAC, GRP, PNT, VHS, etc.) on an SSD.
If you have room for only one CygNet service on your SSD, move the Device Definition Service (DDS). The DDS’s response processing time will improve greatly on an SSD.
If you don’t think all of your CygNet databases will fit on the SSD but you want to take advantage of the superior drive performance, configure your services to write their transaction log files (stored in the txlogs directory) to the SSD drive. Please review the Data Storage section in the CygNet help before making this change.
Be aware of CygNet services that have large databases. Depending upon the size of your SSD you may want to leave them on a HDD so that they don’t singularly consume the whole drive. This includes the VHS, AUD, ELS services, and the GMR and FMS databases.
GMR and FMS SQL database access is faster on an SSD, but you have to monitor the size of these databases on a lower-capacity SSD.
Don’t defragment your SSD. It uses up valuable PE cycles, reducing the life of the drive without improving performance.
Don’t partition your SSD. SSDs have the same read/write rates for all sectors, so partitioning offers no performance gain.
Format your SSD at 80-90% of full capacity, a practice known as over-provisioning. The SSD controller needs some free blocks for wear leveling and garbage collection. Each SSD manufacturer has its own wear-leveling algorithm, and not all algorithms are created equal. If the drive uses 100% of its storage capacity the wear-leveling logic may break down and the drive may fail. While over-provisioning does reduce user capacity, it also improves drive performance and endurance.
CygNet installations will involve frequent writes to the storage device. On an SSD, this can result in decreased write performance over time as there is insufficient time for the drive to complete internal garbage collection. This write-performance degradation will plateau and writes to an SSD will always be faster than to a standard HDD. Some SSDs are more efficient at garbage collection in a busy environment that others. Follow the SSD manufacturer’s recommendations for ensuring optimal performance on the drive.
Use CygNet Service Monitoring points to monitor your drives (whether SSD or HDD). I/O Global Pending Reqs (DISK_QUEUE_LENGTH) is a key statistic (note that this metric can be confusing to monitor if you have your CygNet files, databases, and/or transaction log files split across multiple drives).
Use Microsoft Performance Monitor or other operating system tools to monitor your disks as well.
For more information about monitoring CygNet services and computer hardware, refer to the Service Monitoring sections in the CygNet Help.