From 04941492c38eb80826422980b16d5cabebd5cd3f Mon Sep 17 00:00:00 2001 From: Paulo Matias Date: Tue, 13 Sep 2016 19:52:13 -0300 Subject: [PATCH] Adjust file descriptor limit when systemd is used Change-Id: I29629ba3c78a55ebd63e4f9710ba71b85c488279 Related-Bug: #1623164 --- handlers/main.yml | 5 +++++ tasks/main.yml | 12 ++++++++++++ tasks/memcached_config.yml | 27 ++++++++++++++++++++++++++- templates/limits.conf.j2 | 4 ++++ 4 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 templates/limits.conf.j2 diff --git a/handlers/main.yml b/handlers/main.yml index 6fb7b94..68cc747 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -13,6 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +- name: Reload the systemd daemon + command: "systemctl daemon-reload" + when: + - pid1_name == "systemd" + - name: Restart memcached service: name: "memcached" diff --git a/tasks/main.yml b/tasks/main.yml index a384b97..ac32372 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -24,6 +24,18 @@ tags: - always +- name: Check init system + command: cat /proc/1/comm + register: _pid1_name + tags: + - always + +- name: Set the name of pid1 + set_fact: + pid1_name: "{{ _pid1_name.stdout }}" + tags: + - always + - include: memcached_install.yml tags: - memcached-install diff --git a/tasks/memcached_config.yml b/tasks/memcached_config.yml index de33d6e..67f489a 100644 --- a/tasks/memcached_config.yml +++ b/tasks/memcached_config.yml @@ -40,7 +40,17 @@ mode: "0644" notify: Restart memcached -- name: Apply resource limits +- name: Create memcached systemd service config dir + file: + path: "/etc/systemd/system/memcached.service.d" + state: "directory" + group: "root" + owner: "root" + mode: "0755" + when: + - pid1_name == "systemd" + +- name: Apply resource limits (upstart) template: src: "memcached.debian.j2" dest: "/etc/default/memcached" @@ -49,9 +59,24 @@ mode: "0644" when: - ansible_pkg_mgr == 'apt' + - pid1_name != "systemd" - memcached_connections > 1024 notify: Restart memcached +- name: Apply resource limits (systemd) + template: + src: "limits.conf.j2" + dest: "/etc/systemd/system/memcached.service.d/limits.conf" + owner: "root" + group: "root" + mode: "0644" + when: + - pid1_name == "systemd" + - memcached_connections > 1024 + notify: + - Reload the systemd daemon + - Restart memcached + - name: Configure soft file limits lineinfile: dest: "/etc/security/limits.conf" diff --git a/templates/limits.conf.j2 b/templates/limits.conf.j2 new file mode 100644 index 0000000..08936b6 --- /dev/null +++ b/templates/limits.conf.j2 @@ -0,0 +1,4 @@ +# {{ ansible_managed }} + +[Service] +LimitNOFILE={{ memcached_connections }}