From: Ross Brattain <ross.b.brattain@intel.com>
Date: Wed, 11 Oct 2017 08:40:56 +0000 (-0700)
Subject: increase number of open files for collectd
X-Git-Tag: opnfv-6.0.0~350^2
X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F35%2F44835%2F3;p=yardstick.git

increase number of open files for collectd

for collectd KPIs we need may need to open 10,000+ files

one file for each core * number of CPU counters we read.

Use the ansible pam_limits moules to increase the nofile
setting.  This should allow the VNF to boot with increased
number of files open

Change-Id: I46b75d5ca59e8e359c985a1e37daaee89897884c
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
---

diff --git a/ansible/install_collectd.yml b/ansible/install_collectd.yml
index 0824c1525..7b8291563 100644
--- a/ansible/install_collectd.yml
+++ b/ansible/install_collectd.yml
@@ -17,6 +17,8 @@
     clone_dir: /tmp/yardstick-clone
 
   roles:
+    # needed for collectd plugins
+    - increase_open_file_limits
     # build shared DPDK for collectd only, required DPDK downloaded already
     - role: download_dpdk
     - install_dpdk_shared
@@ -27,4 +29,3 @@
     - install_pmu_tools
     - download_collectd
     - install_collectd
-
diff --git a/ansible/roles/increase_open_file_limits/defaults/main.yml b/ansible/roles/increase_open_file_limits/defaults/main.yml
new file mode 100644
index 000000000..02cb12461
--- /dev/null
+++ b/ansible/roles/increase_open_file_limits/defaults/main.yml
@@ -0,0 +1,15 @@
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+open_file_limit: 500000
diff --git a/ansible/roles/increase_open_file_limits/tasks/main.yml b/ansible/roles/increase_open_file_limits/tasks/main.yml
new file mode 100644
index 000000000..4ef5e6f23
--- /dev/null
+++ b/ansible/roles/increase_open_file_limits/tasks/main.yml
@@ -0,0 +1,20 @@
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+---
+  - name: increase open file limits for control
+    pam_limits: "domain={{ item[0] }} limit_type={{ item[1] }} limit_item=nofile value={{ open_file_limit }}"
+    with_nested:
+      - [ '*', 'root' ]
+      - [ 'soft', 'hard' ]
+
diff --git a/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
index 891ccd1dc..42a7b2d08 100644
--- a/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
+++ b/ansible/ubuntu_server_baremetal_deploy_samplevnfs.yml
@@ -23,6 +23,8 @@
       when: proxy_env is defined and proxy_env
 #     can't update grub in chroot/docker
     - enable_hugepages_on_boot
+    # needed for collectd plugins
+    - increase_open_file_limits
     - install_image_dependencies
     - role: download_dpdk
 #      dpdk_version: "17.02"
diff --git a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
index 79249dd37..dff7f976a 100644
--- a/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
+++ b/ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml
@@ -31,6 +31,8 @@
       when: proxy_env is defined and proxy_env
 #     can't update grub in chroot/docker
     - enable_hugepages_on_boot
+    # needed for collectd plugins
+    - increase_open_file_limits
     - modify_cloud_config
     - install_image_dependencies
     - role: download_dpdk