SSD itself is fast IOPs.

But depending on application, server architecte, and administrator tools that data center use, manager and developer doesn’t make a consideration of performance that consists of all flash array with NVMe.

let’s see what kind of feature can affect IOPs and speed of SSD in kernel.

Scheduler of Kernel

objective of kernel’s Scheduler is fair. So each process has priority.

Let’s see How to configure what type of features in linux.

If you test with fio to adapt process’s priority.

consider LINUX’s chrt command

First, CPU affinity

Processor affinity or CPU pinnig enable the binding and unbinding of a processor or a thread to a central processing unit(CPU) or a range of CPUs,

So that the process or thread will execute only on the designated CPU or CPUs rather than any cpu. This can be viewed as a modification of the native central queue scheduling algorithm in a symmetric multiprocessing operating system.

Each item in the queue has a tag indicating its kin processor.

At the time of resource allocation, each task is allocated to its kin processor in preference to others.

Processor affinity takes advantage of the fact that remnants of a process that was run on a given processor may remain in that processor’s state (for example, data in the cache memory) after another porcess was run on that processor.

Scheduling that process to execute on the same processor improves its performance by reducing performance-degrading events such as cache misses.

if you use this feature with fio tools

In other words, when you use fio tool, if you want to allocate each of specific CPU core on FIO workoad threads,

at this time, you have to be careful of cpus_allowed option of fio.

Second, Cpu isolation.

This meaning is the isolcpus boot parameter can be used to specify CPUs to be isolated from the general SMP balancing and schedular algorithms.

Isolating a CPU prevents tasks/processes from being assigned to or from The CPU by the scheduler and therefore assigning processes/tasks to ro from the CPU must be done manually via the taskset, cset commands, or other software utilizing the CPU affinity syscalls.

hyper-threading on the only phisical core

Hyper-Threading is a technology used by some intel microprocessors that allows as single microprocessor to act like two separate processors to the operating system and the application programs that use it.

With Hyper-Threading, a microprocessor’s “core” processor can execute two concurrent streams of instructions sent by the operating system. Having two streams of execution units to work on allows more work to be done by the processor during each clock cycle.

To the operating system, the hyper-Threading microprocessor appears to be two separate processors.

Reference

If you want how to install kernel tracing open source. just refer to these three sites.