如何解决将ansible异步与fio / iperf结合
使用异步异步功能,我试图同时在multipls机器上运行fio和iperf。 用法是执行两个剧本的python子进程。
问题是fio剧本无法识别出fio命令实际上已经完成运行(因此,在超时时使剧本失败),该剧本的实际任务如下:
- name: Execute the fio tests according to vm roles
shell: "fio --output-format=json --output out_{{ vnf_name }}_{{inventory_hostname}}.json --section {{
vm_role }} {{ vnf_name }}.fio"
args:
chdir: "{{ fio_dir }}"
become: true
async: '{{final_time}}'
poll: 0
register: fio_status
- name: poll fio status
async_status:
jid: "{{ fio_status.ansible_job_id }}"
register: fio_job_result
until: fio_job_result.finished
retries: 30
delay: "{{((final_time| int) / 30) | int}}"
可配置:
[defaults]
forks = 200
host_key_checking = False
log_path = /var/log/ansible.log
解决方法
将 fio 命令设置为 time_based 和 runtime。
-
--time_based
-
--runtime=120
sudo fio --filename=设备名称 --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based - -group_reporting --name=iops-test-job --eta-newline=1 --readonly
有关详细信息,请参阅https://fio.readthedocs.io/en/latest/fio_doc.html#time-related-parameters
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。