How to Identify Disk Storage Performance Problems..

From the moment manual or semi-manual file processing was abandoned, the design of data storage structures has been a critical stage in the final requirement. This is nothing more than keeping customer databases working in an active, optimal and scalable way, in such a way that any type of failure tends to zero and, if possible, predicting them.

In practice, the situation in data storage developments is divided between the hardware available in the form of a disk array and its connectivity, and the software that manages that hardware, such as a data exchange monitor.

Hardware-level performance characteristics

According to MIT, a crucial stage for evaluation, data management and fault management is “the time it takes a disk unit to respond to a complete I / O request”, this is given by the following:

 

The electromechanical limitations of each disc:

In this section it is important to note that the general performance of the disk is given by the sum of the performance of each component of the physical device, however, the speed of the electronic parts will always be higher than the mechanical ones, so the latter will define the final performance of the disk.

Within these limitations are also the travel time between the disk interface, the time in which the read / write heads travel the areas of the platter, the rotational latency and the movement of the access arm; Adding all this up, we are already around 10 milliseconds, between standard or basic 5400rpm disks and high-performance 10,000 rpm disks.

The Input and Output (i / o) load supported by the system:

The set of disk performance and the capacity of the storage input and output (I / O) port pragmatically reflects the overall performance of the device and therefore affects the work of users.

This situation makes it necessary to have tools to diagnose problems and / or anticipate them permanently, based on the collection of critical data in real time in such a way that degradation of the application can be avoided.

Choice of storage type and performance.

 

Choosing the type of storage that our system will use is another crucial point in the overall performance of the system. A bad selection can upset any system that intends to scale and in the long run preventive and corrective maintenance of hardware and software will be a major headache.

At present the RAID arrays, (acronym in English for Redundant Array of Independent Disks) are the most used for systems of medium magnitude onwards. They are even used in complex nested systems with high redundancy and assured failure protection.

RAID arrays, of which there are about 20 at present, allow data to be safeguarded, putting into reality the theory of normalization of the same and fault tolerance is reduced to a minimum but at the same time the reading / writing of the data is magnified. data.

From RAID O to RADI 5 + 0 or RAID 50, it goes from just read / write acceleration to all the accumulated features and the security of maximum fault tolerance.

It is important to say here that RAIDs are arrays that protect the data storage system at the hardware level only, they do not represent a backup but the redundancy necessary to access the data, the latter must be ensured by specific software that allows managing these situations.

Evaluating the file system types, Fragmented vs Non-Fragmented:

Since its inception, file systems have wasted space when recording, reading and rewriting a file or parts of files in sectors that, since they cannot be fully occupied, are marked as used but in reality by the type of division that uses the system cannot be used or overlapped with another file because it would corrupt the data.

This is the basic idea about file fragmentation, which occurs on a daily basis in magnetic platter disk devices that affects storage performance, and that even though in some cases the software is responsible for automatically defragmenting when this option the algorithm is not often smart enough to step aside when required and does not interfere with the data flow.

This situation is not seen in solid state or SSD disks, that is, they do not require defragmenting the data, another situation occurs in them that we must take into account and that is that how we know the successive and extensive writes on an SSD degrade the disk, so partially filled pages (sectors) are also present and another strategy must be used to reclaim such valuable space.

Examples of RAID applications to optimize data performance.

A real life example of a system that allows data to be stored and its input and output optimized for better reading / writing is a Disk Array for MS Exchange Server, a widely used business mail server today.

According to the number of available disks and starting with 2 and 4 disks, we have RAID 1 with two partitions, one for the operating system and paging and the other for Exchange Server.

If we have 5 disks, the arrangement could be 3 disks for the files and the database, while we can obtain a RAID for the system logs.

If we scale to six disks then we can use 5 + 1 and a NO RAID, in an array of Files, logs and paging respectively.

These are just some situations and characteristics that we can mention regarding optimization, data protection and improvement of storage, there are other situations that I will mention later.

Roberto Alemán
B.S. in Computer Science