NAS Configuration
NAS Configuration | |
---|---|
Internal Disks | 4x Force Series MP500 480GB |
External Disk | SSD OCZ Agility 2 60 GB in USB 3.0 enclosure |
Firmware | ADM 4.2.2.R161 |
Test Setup for Single-Client Tests
The test system (client PC) for single-client tests consists of the following components:
Test System Configuration | |
---|---|
Processor | Intel Core i5-7500 |
Mainboard | ASUS Prime B250-Pro |
Memory | 8 GB Crucial DDR4 2666 MHz (2x 4 GB) |
Storage | Corsair Force MP510 480 GB |
Networking | Intel X540-T2 10 GbE |
PSU | Super Flower Leadex III ARGB Gold 550 W |
OS | Windows 10 64-bitMethodology |
Ethernet Switch | ZyXEL XS1920 10 GbE Smart Managed Switch |
Test Setup for Multi-Client Tests
The test system used for multi-client tests consists of the following components
Multi-Client Test System Configuration | |
---|---|
Clients | 6x Shuttle DS81 Slim-PC |
Processor | Intel Pentium G3260 |
Chipset | Intel H81 Express Chipset |
Memory | 4 GB Corsair DDR3 1600 MHz (CMSO4GX3M1A1600C11) |
Storage | OCZ ARC 100 240 GB |
Networking | 2x Realtek 8111G |
OS | Windows 7 64-bit Service Pack 1 |
Ethernet Switch | QNAP QGD-1602P |
Ethernet Cabling | CAT 6e, 2 m |
UPS | CyberPower Systems PR2200ELCDSL |
I use six real clients instead of virtual machines for the multi-client tests to ensure these tests are conducted in a context that is very close to real life. Six real clients with my custom-made software are more than enough to figure out the capabilities of a NAS, even for extreme usage scenarios.
Methodology
I use two programs to evaluate the NAS server’s performance. The first is custom-made. It performs ten basic file transfer tests and measures the average MB/s speed for each. To extract results that are as accurate as possible, I run all selected tests ten times and use the average as the final result.
I also perform multi-client tests, where up to ten clients are supported by one server instance of the program through the same program. The server program runs on the main workstation, and the clients run the client version of the program. All are synchronized and operate in parallel; after all, tests are finished, the clients report their results to the server, which sums them up and transfers them to an Excel sheet to generate the corresponding graphs.
The second program I use in my test sessions is DiskSpd by Microsoft, a highly flexible storage test tool capable of very accurately simulating different workloads. I wrote two advanced scripts, one that simulates an On-line Transaction Processing (OLTP) system and another that simulates an On-line Analytical Processing (OLAP) system. The OLTP scenario consists of many short transactions, where IOPS (Input/Output Operations Per Second) play a key role. The number of transactions is low in my OLAP scenario, but the queries can be very complex. Response times are crucial for an OLAP system, and a NAS server’s maximum throughput speed is reached in this scenario because the block size is quite large.
OLTP systems generally serve the purpose of gathering input information and storing it in a database. This is done on an enormous scale, and the most common operations are INSERT, UPDATE, and DELETE. An OLTP database holds detailed, current data; an entity model, usually 3NF, is used as the schema to store transactional databases. An OLTP database also usually has high read-to-write ratios (typically 90/10 to 70/30).
OLAP systems are used to analyze the data stored in a database. OLAP systems mostly apply select operations in large data warehouses to collect information (data mining). An OLAP database consists of aggregated, historical data stored in multi-dimensional schemas (usually star schemas). Their read-to-write ratio is very high; sometimes, there might only be read operations.