From: Ben Ford Date: Wed, 16 Apr 2025 18:45:03 +0000 (-0500) Subject: contrib: Add systemd service and timer files for malloc trim. X-Git-Tag: 21.9.0-rc1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af788aab5c4af70f3b68b49f080dd93a0f5e17d1;p=thirdparty%2Fasterisk.git contrib: Add systemd service and timer files for malloc trim. Adds two files to the contrib/systemd/ directory that can be installed to periodically run "malloc trim" on Asterisk. These files do nothing unless they are explicitly moved to the correct location on the system. Users who are experiencing Asterisk memory issues can use this service to potentially help combat the problem. These files can also be configured to change the start time and interval. See systemd.timer(5) and systemd.time(7) for more information. UserNote: Service and timer files for systemd have been added to the contrib/systemd/ directory. If you are experiencing memory issues, install these files to have "malloc trim" periodically run on the system. (cherry picked from commit bff3fd0fa8b35057e25fd56cb0070d5e80c118c1) --- diff --git a/contrib/systemd/asterisk-malloc-trim.service b/contrib/systemd/asterisk-malloc-trim.service new file mode 100644 index 0000000000..bdec7f9b90 --- /dev/null +++ b/contrib/systemd/asterisk-malloc-trim.service @@ -0,0 +1,9 @@ +# Run the `malloc trim` CLI command to return unused memory +# to the OS. Triggered automatically by asterisk-malloc-trim.timer. + +[Unit] +Description=Runs Asterisk "malloc trim" CLI command + +[Service] +Type=simple +ExecStart=/usr/sbin/asterisk -rx "malloc trim" diff --git a/contrib/systemd/asterisk-malloc-trim.timer b/contrib/systemd/asterisk-malloc-trim.timer new file mode 100644 index 0000000000..62ff9be935 --- /dev/null +++ b/contrib/systemd/asterisk-malloc-trim.timer @@ -0,0 +1,29 @@ +# Systemd.timer file to periodically run the +# `malloc trim` CLI command to return unused memory +# to the OS. +# +# Don't modify this file to customize the start time. Instead create file +# /etc/systemd/system/asterisk-malloc-trim.timer.d/10-oncalendar.conf +# with the following contents: +# +# [Timer] +# OnCalendar= +# +# Run `systemctl daemon-reload` after creating this file. +# +# OnCalendar isn't the only way to set when the unit runs. +# See systemd.timer(5) and systemd.time(7) for more info. +# + +[Unit] +Description=Asterisk malloc-trim timer +After=asterisk.service +Requisite=asterisk.service + +[Timer] +OnCalendar=00:15:00 +RandomizedDelaySec=3600 +Persistent=yes + +[Install] +WantedBy=timers.target