-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAOS-15801 test: Add aio ioengine to pil4dfs_fio.py functional test #14375
Conversation
Ticket title is 'Add functional test with aio to pil4dfs_fio.py functional test' |
4460e72
to
44d9f1e
Compare
Run FIO with the libaio ioengine and the PIL4DFS interception library. Compare the bandwidth of the previous FIO run with one using the dfs ioengine. Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
44d9f1e
to
2dc5e0a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if i understand correctly this will just use the same parameters for psync but also add a libaio variation?
For libaio we want to also vary the io_depth as we should be doing for the dfs engine (if we don't do that already).
At this time the iopdepth is fixed for fair comparison between the different ioengine.
We have also to take into account, that this test already takes some time. |
For DFS and libaio it would be good to try io_depth of 16, 32 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ftest LGTM
src/tests/ftest/dfuse/pil4dfs_fio.py
Outdated
delta = abs(dfuse_bws[ioengine][rw] - dfs_bws[rw]) * 100 | ||
delta /= max(dfuse_bws[ioengine][rw], dfs_bws[rw]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI - slightly different implementation
daos/src/tests/ftest/util/general_utils.py
Lines 1175 to 1193 in 1fe4718
def percent_change(val1, val2): | |
"""Calculate percent change between two values as a decimal. | |
Args: | |
val1 (float): first value. | |
val2 (float): second value. | |
Raises: | |
ValueError: if either val is not a number | |
Returns: | |
float: decimal percent change. | |
math.nan: if val1 is 0 | |
""" | |
try: | |
return (float(val2) - float(val1)) / float(val1) | |
except ZeroDivisionError: | |
return math.nan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Use
percent_change()
function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Use
percent_change()
function
Fixed with commit 3734edd
Integrate reviewers comments: - Use percent_change() function Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
Integrate reviewers comments: - Add test with iodepth=16 Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
|
Fixed with commit f0a70af |
Fix pylint warning spelling message. Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
I am looking at the result here: |
The CI have not yet run the the functional hardware test of the last PR push. Regarding the test with libaio and iodepth=1, this part has not changed. This the different configuration which are tested: Please keep me inform if some configurations are useless or missing |
we can exclude all runs with engine=libaio and iodepth==1. they are just repetitive IMO. |
@mchaarawi , my apologies, but I do not understand your last sentence. |
|
Integrate reviewers comments: - Remove useless test with libaio Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
I just meant that in your table i see you added a lot of libaio tests with ts=256b,1m ; thread=1,0. IF you want you can change those test to do iodepth = 16 instead of 1 (for both libaio and dfs). but that is not in scope of this PR. the existing tests you have with iodepth==16 should cover the functional testing needed for now. |
Fixed with commit 62c2745 |
…/daos-15801 Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
…/daos-15801 Required-githooks: true
Fix invalid test case. Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
Latest version of the functional test have been validated by the CI. |
@mchaarawi , are the test configurations OK for you ? |
yes. thanks! |
@daos-stack/daos-gatekeeper , please could you lend this PR with the following message:
|
please backport to 2.6. tia |
Asked for backport in the Jira ticket. |
…14375) Add functional tests running FIO using the libaio ioengine and the PIL4DFS interception library. Compare the bandwidth of these runs with one using the dfs ioengine. Skip-func-hw-test-medium-md-on-ssd: false Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
…14375) Add functional tests running FIO using the libaio ioengine and the PIL4DFS interception library. Compare the bandwidth of these runs with one using the dfs ioengine. Skip-func-hw-test-medium-md-on-ssd: false Allow-unstable-test: true Test-tag: Pil4dfsFio,test_pil4dfs_vs_dfs Required-githooks: true Signed-off-by: Cedric Koch-Hofer <cedric.koch-hofer@intel.com>
Description
Run FIO with the libaio ioengine and the PIL4DFS interception library. Compare the bandwidth of the previous FIO run with one using the dfs ioengine.
Before requesting gatekeeper:
Features:
(orTest-tag*
) commit pragma was used or there is a reason documented that there are no appropriate tags for this PR.Gatekeeper: