X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Ftestbed-setup%2Fansible%2Froles%2Fperformance_tuning%2Ftasks%2Fmain.yaml;fp=resources%2Ftools%2Ftestbed-setup%2Fansible%2Froles%2Fperformance_tuning%2Ftasks%2Fmain.yaml;h=0000000000000000000000000000000000000000;hp=e9cdd0d819f7300074f533166437db46fb8d36f0;hb=df5672b3d9c29b51397f4770eb992c9f3f3955ce;hpb=8018da98e0f362bc69fc9600fac222a86fd46b5e diff --git a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml deleted file mode 100644 index e9cdd0d819..0000000000 --- a/resources/tools/testbed-setup/ansible/roles/performance_tuning/tasks/main.yaml +++ /dev/null @@ -1,189 +0,0 @@ ---- -# file: roles/performance_tuning/tasks/main.yaml - -- name: Inst - Update Package Cache (APT) - apt: - update_cache: yes - cache_valid_time: 3600 - when: - - ansible_distribution|lower == 'ubuntu' - tags: - - perf-inst-prerequisites - -- name: Inst - Machine Prerequisites - package: - name: "{{ packages | flatten(levels=1) }}" - state: latest - tags: - - perf-inst-prerequisites - -- name: Conf - Turbo Boost - import_tasks: turbo_boost.yaml - when: > - cpu_microarchitecture == "skylake" or - cpu_microarchitecture == "cascadelake" - 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 - # malloc, directly by mmap and mprotect, and also when loading shared - # libraries. - # - # while most applications need less than a thousand maps, certain - # 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: - name: "vm.max_map_count" - value: "{{ sysctl.vm.nr_hugepages * 4 }}" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- 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: - name: "vm.hugetlb_shm_group" - value: "1000" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- name: Conf - Adjust swappiness - # this control is used to define how aggressive the kernel will swap - # memory pages. higher values will increase agressiveness, lower values - # 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: - name: "vm.swappiness" - value: "0" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- name: Conf - Adjust shmmax - # shared memory max must be greator or equal to the total size of hugepages. - # for 2mb pages, totalhugepagesize = vm.nr_hugepages * 2 * 1024 * 1024 - # 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: - name: "kernel.shmmax" - value: "{{ sysctl.vm.nr_hugepages * 2 * 1024 * 1024 }}" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- name: Conf - Adjust watchdog_cpumask - # this value can be used to control on which cpus the watchdog may run. - # the default cpumask is all possible cores, but if no_hz_full is - # enabled in the kernel config, and cores are specified with the - # nohz_full= boot argument, those cores are excluded by default. - # offline cores can be included in this mask, and if the core is later - # brought online, the watchdog will be started based on the mask value. - # - # 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: - name: "kernel.watchdog_cpumask" - value: "{{ sysctl.kernel.watchdog_cpumask }}" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- name: Conf - Adjust randomize_va_space - # this option can be used to select the type of process address - # space randomization that is used in the system, for architectures - # that support this feature. - # 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: - name: "kernel.randomize_va_space" - value: "0" - state: "present" - sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" - tags: - - perf-conf-sysctl - -- name: Conf - Cpufrequtils - copy: - src: "files/cpufrequtils" - dest: "/etc/default/cpufrequtils" - owner: "root" - group: "root" - mode: 0644 - tags: - - perf-conf-cpufrequtils - -- name: Conf - Irqbalance - template: - src: "files/irqbalance" - dest: "/etc/default/irqbalance" - owner: "root" - group: "root" - mode: 0644 - 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: - path: "/etc/default/grub" - state: "present" - regexp: "^GRUB_CMDLINE_LINUX=" - line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value is sameas true %}{{key}} {% else %}{{key}}={{value}} {% endif %}{% endfor %}\"" - notify: - - "Update GRUB" - tags: - - perf-conf-grub - -- meta: flush_handlers - -- name: Conf - Load Kernel Modules By Default - lineinfile: - path: "/etc/modules" - state: "present" - line: "{{ item }}" - with_items: - - "vfio-pci" - notify: - - "Reboot Server" - tags: - - perf-conf-load-kernel-modules - -- meta: flush_handlers \ No newline at end of file