使用一个灵活的异步,我试图在多台机器上同时运行fio和iperf。用法是执行这两个剧本的python子进程。
问题是,fio playbook没有识别出fio命令实际上已经运行完毕(因此playbook在超时时失败),playbook中的实际任务如下:
- 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}}"ansible config:
[defaults]
forks = 200
host_key_checking = False
log_path = /var/log/ansible.log发布于 2021-06-01 19:28:54
将fio命令设置为time_based和runtime。
sudo fio --filename=设备名称--direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --运行时=120--数值作业=4--基于时间--组报告--名称=iops测试作业--eta-newline=1 --readonly
有关更多信息,请参阅https://fio.readthedocs.io/en/latest/fio_doc.html#time-related-parameters
https://stackoverflow.com/questions/63558510
复制相似问题