X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=fdio.infra.ansible%2Froles%2Fperformance_tuning%2Ftasks%2Fmain.yaml;h=79fa03fcefb402d04b70a18e60f9475f0b64e660;hb=HEAD;hp=b123be0a3c19343931d6e704385993bcb3d3449f;hpb=d41a5490f30a161561c39c4f1b08add17b9cf6f7;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 b123be0a3c..cc904e23e9 100644 --- a/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml +++ b/fdio.infra.ansible/roles/performance_tuning/tasks/main.yaml @@ -2,7 +2,7 @@ # file: roles/performance_tuning/tasks/main.yaml - name: Inst - Update Package Cache (APT) - apt: + ansible.builtin.apt: update_cache: true cache_valid_time: 3600 when: @@ -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,12 @@ import_tasks: turbo_boost.yaml when: > cpu_microarchitecture == "skylake" or - cpu_microarchitecture == "cascadelake" + cpu_microarchitecture == "cascadelake" or + cpu_microarchitecture == "icelake" or + cpu_microarchitecture == "sapphirerapids" 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 +37,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 +49,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 +64,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 +79,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 +99,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 +115,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 +125,7 @@ - perf-conf-sysctl - name: Conf - Cpufrequtils - copy: + ansible.builtin.copy: src: "files/cpufrequtils" dest: "/etc/default/cpufrequtils" owner: "root" @@ -145,7 +135,7 @@ - perf-conf-cpufrequtils - name: Conf - Irqbalance - template: + ansible.builtin.template: src: "files/irqbalance" dest: "/etc/default/irqbalance" owner: "root" @@ -154,15 +144,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 +158,7 @@ - meta: flush_handlers - name: Conf - Load Kernel Modules By Default - lineinfile: + ansible.builtin.lineinfile: path: "/etc/modules" state: "present" line: "{{ item }}" @@ -186,4 +169,42 @@ tags: - perf-conf-load-kernel-modules +- 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