Replies: 5 comments 6 replies
|
We are still conducting tests. At this point, we are no longer testing the storage itself as much as we are testing how fio behaves in different test scenarios. It is now quite clear that the issue is neither caused by the storage nor the SAN. We have identified at least one pattern, confirmed through multiple tests (each lasting between 15 and 60 minutes). Specifically, we found that if numjobs=1 and rated_iops is relatively high (25k/25k), the issue occurs within 10–15 minutes after the test starts. However, if numjobs=2, we do not observe the issue, even if the rated_iops value remains unchanged. In other words, as long as at least two jobs are running, fio remains stable—even while generating twice the expected IOPS. We have varied the rated_iops value multiple times, but it seems that the key factor is the numjobs setting. Once it is greater than 1, fio operates stably, generating the expected I/O stream. Please note that we used two different bare-metal servers with different Linux distributions, as well as a virtual machine (CentOS 8 running on VMware ESXi). The results were consistent across all test environments. I am still awaiting any feedback on the issue we are encountering. Thanks! |
|
I can't (and don't) speak for Jens so the following is personal explanation as to why you haven't received a response thus far: @it800 You're "strongly requesting" the time of unpaid volunteer to investigate your issue but the nature of open source is that there is no obligation stating volunteers have to respond within a certain time frame (or at all). I understand that this unlikely to be the response you're looking for and I have no doubt the problem is important to you but I want you to be aware that not all issues are investigated and of those that are, not all issues are resolved. Unpaid time is limited and totally at the discretion of the owner... Please don't take the following as commitment that I will investigate the problem but here are some questions to get going with: does this issue happen when you run against a purely local disk on your bare metal machine? Does the problem happen when you remove the |
|
@sitsofe 's comment led me to think about the |
|
We conducted 12 tests of varying durations. All the tests can be divided into two groups:
Tests from group 1 lasted on average from 30 minutes to 3 hours. During these tests, we never observed the described issue of spontaneous and sudden I/O operation interruptions. The fact is that in the tests from the second group, the interruption was observed almost always (except for one case, when everything was fine for 30 minutes, and the test was stopped). We continue the tests, but at this point, it seems that the |
|
What’s more, it looks like |


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Checked on the following fio versions: 3.12, 3,36, 3,39. Test environment:
2 enterprise all-flash SAN storages (SSD), iSCSI connectivity. There are 2 LUNs created on both storages and mapped to the 2 test hosts independently.
1 host: bare metal Debian linux server, 8 paths discovered to the LUN, /dev/dm-0 multipathd device created to be tested with fio
2 host: Centos 9 virtual machine under Vmware ESXi, the LUN is presented to VM as a 2TB block device /dev/sdb
The fio test configuration is the same for both hosts, the configuration is shown below. Fio runs on the hosts along with “iostat -tx 1” to independently monitor latency and queue depth. The problem we observe is random unexpected pauses in fio's operation: it seems that at some point fio just stops generating IO for a while. The pause can last up to a minute (but usually takes less time), after which fio continues to generate IO operations with an initial spike in IOPS above a configured rated_iops value. I raised the issue of IO burst in another thread here, but in the end there was no clear answer about the nature of this effect, we accept it “as is”.
We thoroughly checked the storage, checked the iostat output, and came to the conclusion that the problem is most likely in the fio itself. According to the iostat output, the pause was not preceded by any I/O latency problems, the queue depth did not exceed half of the configured value. It was just fio stopping I/O. There are no entries in the fio logs during this period. At the operating system level at the moment of pause - no problems with block devices, no problems with paths, nothing in messages.
We assume that a single thread of fio cannot handle a certain load for a long time. We tried changing the configuration by halving rated_iops and running fio in two-job mode. This configuration variant showed more stable performance, but fio can still stop unexpectedly. Such stops do not allow us to perform a full-fledged testing of the storage, because we cannot distinguish between real problems on the storage and fio problems.
Right now we're stuck because at this point we still have no idea what else we can test to see what exactly is causing the problem. If 50K IOPS is indeed too much for a single fio process - we would really appreciate it if this could be confirmed. Any advice and help would be greatly appreciated
[global]
iodepth=64 (tried 128 as well, didn't help)
direct=1
buffered=0
ioengine=libaio
group_reporting=1
time_based=1
runtime=24h
numjobs=1
rw=randrw
rwmixread=50
write_lat_log=test1
log_avg_msec=1000
write_iops_log=test1
disable_slat=1
disable_clat=1
log_unix_epoch=1
[job-test01]
bs=32k,32k
rate_iops=25k,25k
filename=/dev/dm-0
All reactions