openstack-ansible-os_swift/templates/swift-systemd-init.j2
Jesse Pretorius 22a4a72afb Reduce init restart/kill times
The systemd unit 'TimeoutSec' value which controls the time
between sending a SIGTERM signal and a SIGKILL signal when
stopping or restarting the service has been reduced from 300
seconds to 120 seconds. This provides 2 minutes for long-lived
sessions to drain while preventing new ones from starting
before a restart or a stop.

The 'RestartSec' value which controls the time between the
service stop and start when restarting has been reduced from
150 seconds to 2 seconds to make the restart happen faster.

These values can be adjusted by using the *_init_config_overrides
variables which use the config_template task to change template
defaults.

Change-Id: I048b877e859ad744dc54f19a93afdd89f8ef1661
2017-04-26 17:04:04 +00:00

43 lines
1.2 KiB
Django/Jinja

# {{ ansible_managed }}
[Unit]
Description=swift openstack service
After=syslog.target
After=network.target
[Service]
Type=simple
User={{ swift_system_user_name }}
Group={{ swift_system_group_name }}
LimitNOFILE={{ swift_soft_open_file_limits }}:{{ swift_hard_open_file_limits }}
{% if swift_pypy_enabled %}
{% if swift_pypy_gc_min is defined %}
Environment=PYPY_GC_MIN={{ swift_pypy_gc_min }}
{% endif %}
{% if swift_pypy_gc_max is defined %}
Environment=PYPY_GC_MAX={{ swift_pypy_gc_max }}
{% endif %}
{% endif %}
{% if item.value.program_override is defined %}
ExecStart={{ item.value.program_override }} {{ item.value.program_config_options|default('') }}
{% else %}
ExecStart={{ swift_bin }}/{{ item.value.program_binary | default(item.value.program_name) }} {{ item.value.program_config_options|default('') }}
{% endif %}
# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=120
Restart=on-failure
RestartSec=2
# This creates a specific slice which all services will operate from
# The accounting options give us the ability to see resource usage through
# the `systemd-cgtop` command.
Slice=swift.slice
CPUAccounting=true
BlockIOAccounting=true
MemoryAccounting=false
TasksAccounting=true
[Install]
WantedBy=multi-user.target