X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=fdio.infra.ansible%2Froles%2Fperformance_tuning%2Ftasks%2Fmain.yaml;h=256cd27eaf7c2adf56a230c58b984e44e78e93cb;hb=0b947247146f27936e986c262fc9f1d641b5ac4f;hp=e9cdd0d819f7300074f533166437db46fb8d36f0;hpb=df5672b3d9c29b51397f4770eb992c9f3f3955ce;p=csit.git diff --git a/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml index e9cdd0d819..256cd27eaf 100644 --- a/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml +++ b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml @@ -2,8 +2,8 @@ # file: roles/performance_tuning/tasks/main.yaml - name: Inst - Update Package Cache (APT) - apt: - update_cache: yes + ansible.builtin.apt: + update_cache: true cache_valid_time: 3600 when: - ansible_distribution|lower == 'ubuntu' @@ -11,7 +11,7 @@ - perf-inst-prerequisites - name: Inst - Machine Prerequisites - package: + ansible.builtin.package: name: "{{ packages | flatten(levels=1) }}" state: latest tags: @@ -21,22 +21,11 @@ import_tasks: turbo_boost.yaml when: > cpu_microarchitecture == "skylake" or - cpu_microarchitecture == "cascadelake" + cpu_microarchitecture == "cascadelake" or + cpu_microarchitecture == "icelake" tags: - perf-conf-turbo-boost -- name: Conf - Adjust nr_hugepages - # change the minimum size of the hugepage pool. - # 2G VPP, 4GB per VNF/CNF, 2G reserve - sysctl: - name: "vm.nr_hugepages" - value: "{{ sysctl.vm.nr_hugepages }}" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - - name: Conf - Adjust max_map_count # this file contains the maximum number of memory map areas a process # may have. memory map areas are used as a side-effect of calling @@ -47,7 +36,7 @@ # programs, particularly malloc debuggers, may consume lots of them, # e.g., up to one or two maps per allocation. # must be greater than or equal to (2 * vm.nr_hugepages). - sysctl: + ansible.builtin.sysctl: name: "vm.max_map_count" value: "{{ sysctl.vm.nr_hugepages * 4 }}" state: "present" @@ -59,7 +48,7 @@ - name: Conf - Adjust hugetlb_shm_group # hugetlb_shm_group contains group id that is allowed to create sysv # shared memory segment using hugetlb page. - sysctl: + ansible.builtin.sysctl: name: "vm.hugetlb_shm_group" value: "1000" state: "present" @@ -74,7 +63,7 @@ # decrease the amount of swap. a value of 0 instructs the kernel not to # initiate swap until the amount of free and file-backed pages is less # than the high water mark in a zone. - sysctl: + ansible.builtin.sysctl: name: "vm.swappiness" value: "0" state: "present" @@ -89,7 +78,7 @@ # if the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax) # is greater than the calculated totalhugepagesize then set this parameter # to current shmmax value. - sysctl: + ansible.builtin.sysctl: name: "kernel.shmmax" value: "{{ sysctl.vm.nr_hugepages * 2 * 1024 * 1024 }}" state: "present" @@ -109,7 +98,7 @@ # typically this value would only be touched in the nohz_full case # to re-enable cores that by default were not running the watchdog, # if a kernel lockup was suspected on those cores. - sysctl: + ansible.builtin.sysctl: name: "kernel.watchdog_cpumask" value: "{{ sysctl.kernel.watchdog_cpumask }}" state: "present" @@ -125,7 +114,7 @@ # 0 - turn the process address space randomization off. this is the # default for architectures that do not support this feature anyways, # and kernels that are booted with the "norandmaps" parameter. - sysctl: + ansible.builtin.sysctl: name: "kernel.randomize_va_space" value: "0" state: "present" @@ -135,7 +124,7 @@ - perf-conf-sysctl - name: Conf - Cpufrequtils - copy: + ansible.builtin.copy: src: "files/cpufrequtils" dest: "/etc/default/cpufrequtils" owner: "root" @@ -145,7 +134,7 @@ - perf-conf-cpufrequtils - name: Conf - Irqbalance - template: + ansible.builtin.template: src: "files/irqbalance" dest: "/etc/default/irqbalance" owner: "root" @@ -154,15 +143,8 @@ tags: - perf-conf-irqbalance -- name: Conf - Set Ondemand Service To Disable - service: - name: "ondemand" - enabled: "no" - tags: - - perf-conf-ondemand - - name: Conf - Kernel Parameters - lineinfile: + ansible.builtin.lineinfile: path: "/etc/default/grub" state: "present" regexp: "^GRUB_CMDLINE_LINUX=" @@ -175,7 +157,7 @@ - meta: flush_handlers - name: Conf - Load Kernel Modules By Default - lineinfile: + ansible.builtin.lineinfile: path: "/etc/modules" state: "present" line: "{{ item }}" @@ -186,4 +168,42 @@ tags: - perf-conf-load-kernel-modules -- meta: flush_handlers \ No newline at end of file +- name: Conf - Create a directory for 1G HugeTLBs hugepages + ansible.builtin.file: + path: "/dev/hugepages1G" + state: "directory" + mode: 0755 + tags: + - perf-conf-hugepages-1g + +- name: Conf - Mount 1G HugeTLBs hugepages + ansible.builtin.mount: + path: "/dev/hugepages1G" + src: "hugetlbfs" + opts: "pagesize=1G" + boot: false + state: "mounted" + fstype: "hugetlbfs" + tags: + - perf-conf-hugepages-1g + +- name: Create a directory if it does not exist + ansible.builtin.file: + path: "/dev/hugepages2M" + state: "directory" + mode: 0755 + tags: + - perf-conf-hugepages-2m + +- name: Conf - Create a directory for 2M HugeTLBs hugepages + ansible.builtin.mount: + path: "/dev/hugepages2M" + src: "hugetlbfs" + opts: "pagesize=2M" + boot: false + state: "mounted" + fstype: "hugetlbfs" + tags: + - perf-conf-hugepages-2m + +- meta: flush_handlers