How does FIO benchmark set IOdepth?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
1
down vote

favorite












NOTE: My question stems from this other U&L Q - What exactly is iodepth in fio?




I want to know how internally FIO sets I/O depth. I.e., one of the parameters we submit to FIO when we run it is "IOdepth" (--iodepth=). How does FIO internally control this parameter with the underlying operating system?



Here is an example of the command that we use to run FIO benchmark:



$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=randwrite --refill_buffers 
--norandommap --randrepeat=0 --ioengine=libaio --bs=8K --iodepth=72 --numjobs=256
--time_based --runtime=600 --allow_mounted_write=1 --group_reporting --name=benchtest
benchtest: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=libaio, iodepth=72


As in this example, the value of "iodepth" can be changed. Accordingly, fio is passing this value to the operating system. So how does FIO do this?



If you want an actual problem to be solved:
if I want to write a benchmark program like fio,
how would I control the IO queue depth?







share|improve this question





















  • Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
    – peterh
    yesterday










  • Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
    – slm♦
    yesterday










  • @slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
    – ahmadi
    yesterday










  • Thanks a lot @peterh :).
    – ahmadi
    yesterday










  • @ahmadi - I would ask your Q on that forum and report back here.
    – slm♦
    yesterday
















up vote
1
down vote

favorite












NOTE: My question stems from this other U&L Q - What exactly is iodepth in fio?




I want to know how internally FIO sets I/O depth. I.e., one of the parameters we submit to FIO when we run it is "IOdepth" (--iodepth=). How does FIO internally control this parameter with the underlying operating system?



Here is an example of the command that we use to run FIO benchmark:



$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=randwrite --refill_buffers 
--norandommap --randrepeat=0 --ioengine=libaio --bs=8K --iodepth=72 --numjobs=256
--time_based --runtime=600 --allow_mounted_write=1 --group_reporting --name=benchtest
benchtest: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=libaio, iodepth=72


As in this example, the value of "iodepth" can be changed. Accordingly, fio is passing this value to the operating system. So how does FIO do this?



If you want an actual problem to be solved:
if I want to write a benchmark program like fio,
how would I control the IO queue depth?







share|improve this question





















  • Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
    – peterh
    yesterday










  • Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
    – slm♦
    yesterday










  • @slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
    – ahmadi
    yesterday










  • Thanks a lot @peterh :).
    – ahmadi
    yesterday










  • @ahmadi - I would ask your Q on that forum and report back here.
    – slm♦
    yesterday












up vote
1
down vote

favorite









up vote
1
down vote

favorite











NOTE: My question stems from this other U&L Q - What exactly is iodepth in fio?




I want to know how internally FIO sets I/O depth. I.e., one of the parameters we submit to FIO when we run it is "IOdepth" (--iodepth=). How does FIO internally control this parameter with the underlying operating system?



Here is an example of the command that we use to run FIO benchmark:



$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=randwrite --refill_buffers 
--norandommap --randrepeat=0 --ioengine=libaio --bs=8K --iodepth=72 --numjobs=256
--time_based --runtime=600 --allow_mounted_write=1 --group_reporting --name=benchtest
benchtest: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=libaio, iodepth=72


As in this example, the value of "iodepth" can be changed. Accordingly, fio is passing this value to the operating system. So how does FIO do this?



If you want an actual problem to be solved:
if I want to write a benchmark program like fio,
how would I control the IO queue depth?







share|improve this question













NOTE: My question stems from this other U&L Q - What exactly is iodepth in fio?




I want to know how internally FIO sets I/O depth. I.e., one of the parameters we submit to FIO when we run it is "IOdepth" (--iodepth=). How does FIO internally control this parameter with the underlying operating system?



Here is an example of the command that we use to run FIO benchmark:



$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=randwrite --refill_buffers 
--norandommap --randrepeat=0 --ioengine=libaio --bs=8K --iodepth=72 --numjobs=256
--time_based --runtime=600 --allow_mounted_write=1 --group_reporting --name=benchtest
benchtest: (g=0): rw=randwrite, bs=8K-8K/8K-8K/8K-8K, ioengine=libaio, iodepth=72


As in this example, the value of "iodepth" can be changed. Accordingly, fio is passing this value to the operating system. So how does FIO do this?



If you want an actual problem to be solved:
if I want to write a benchmark program like fio,
how would I control the IO queue depth?









share|improve this question












share|improve this question




share|improve this question








edited yesterday









slm♦

232k65479648




232k65479648









asked 2 days ago









ahmadi

63




63











  • Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
    – peterh
    yesterday










  • Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
    – slm♦
    yesterday










  • @slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
    – ahmadi
    yesterday










  • Thanks a lot @peterh :).
    – ahmadi
    yesterday










  • @ahmadi - I would ask your Q on that forum and report back here.
    – slm♦
    yesterday
















  • Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
    – peterh
    yesterday










  • Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
    – slm♦
    yesterday










  • @slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
    – ahmadi
    yesterday










  • Thanks a lot @peterh :).
    – ahmadi
    yesterday










  • @ahmadi - I would ask your Q on that forum and report back here.
    – slm♦
    yesterday















Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
– peterh
yesterday




Welcome on the Unix SE! I tried to make your question more acceptable. Give more context, details. Explain, what you want to know what is not on the another question.
– peterh
yesterday












Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
– slm♦
yesterday




Please read the response that I've added to this linked Q - unix.stackexchange.com/questions/459045/…. That Q was posted to the Flexible I/O Testers forum and the response looks to cover your Q as well.
– slm♦
yesterday












@slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
– ahmadi
yesterday




@slm I have checked your comment there. However, I have the same question as one of the guys commented there. If it means number of ios at a given time, then doesn't the numjobs parameter do the same thing.
– ahmadi
yesterday












Thanks a lot @peterh :).
– ahmadi
yesterday




Thanks a lot @peterh :).
– ahmadi
yesterday












@ahmadi - I would ask your Q on that forum and report back here.
– slm♦
yesterday




@ahmadi - I would ask your Q on that forum and report back here.
– slm♦
yesterday















active

oldest

votes











Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f460491%2fhow-does-fio-benchmark-set-iodepth%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes










 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f460491%2fhow-does-fio-benchmark-set-iodepth%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?