Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 如何在ssh连接方面优化Ansible playbook的性能_Performance_Time_Ssh_Ansible_Performance Testing - Fatal编程技术网

Performance 如何在ssh连接方面优化Ansible playbook的性能

Performance 如何在ssh连接方面优化Ansible playbook的性能,performance,time,ssh,ansible,performance-testing,Performance,Time,Ssh,Ansible,Performance Testing,我有下面的playbook test1.yml,它获取此目录下26个子文件夹的数据 任务: - name: List directories raw: "ls -d "/var/myfile/pdf/*/" register: subdir - name: List pid files raw: "istat {{ item }}" with_items: "{{ subdir.stdout_lines }}"

我有下面的playbook test1.yml,它获取此目录下26个子文件夹的数据

任务:

- name: List directories
  raw: "ls -d "/var/myfile/pdf/*/"
  register: subdir

- name: List pid files
  raw: "istat {{ item }}"
  with_items: "{{ subdir.stdout_lines }}"
- name: List directories
  raw: "ls -d "/var/myfile/pdf/*/"
  register: subdir

- name: List pid files
  include_tasks: "innertest.yml"
  with_items: "{{ subdir.stdout_lines }}"
我运行剧本,需要29秒才能完成

time ANSIBLE_SSH_PIPELINING=True ansible-playbook -i=10.9.9.12, -f 30 test1.yml -vvv
playbook完成后,以下是所用时间的详细信息输出:

输出:

real    0m29.144s
user    0m6.206s
sys     0m5.618s
real    0m59.044s
user    0m18.203s
sys     0m10.118s
我现在将与
istat
task相同的代码放在include_tasks`文件中,如下所示

剧本测试2.yml

任务:

- name: List directories
  raw: "ls -d "/var/myfile/pdf/*/"
  register: subdir

- name: List pid files
  raw: "istat {{ item }}"
  with_items: "{{ subdir.stdout_lines }}"
- name: List directories
  raw: "ls -d "/var/myfile/pdf/*/"
  register: subdir

- name: List pid files
  include_tasks: "innertest.yml"
  with_items: "{{ subdir.stdout_lines }}"
cat innertest.yml

  - raw: "istat {{ item }}"

time ANSIBLE_SSH_PIPELINING=True ansible-playbook -i=10.9.9.12, -f 30 test2.yml -vvv
输出:

real    0m29.144s
user    0m6.206s
sys     0m5.618s
real    0m59.044s
user    0m18.203s
sys     0m10.118s
正如您所看到的,由于
include\u tasks

在调试中,我还看到有26个ssh连接被触发,用于同一目标主机的26个子目录
和\u项
10.9.9.12

我不确定这在内部是如何工作的,但出于性能原因,最好为同一主机上的26个子目录的
istat
提供一个ssh连接

有没有办法提高include_任务的性能并减少到同一主机的ssh连接数