某些特定的应用程序或者进程可能需要比 systemd 默认分配的值更高的资源值。
可以覆盖 systemd 分配的默认资源限制。
基本上,systemd 会在启动时为任何进程设置默认限制。
例如:
# cat /proc/1696/limits | grep "Max locked memory" Max locked memory 65536 65536 bytes
从上面的例子来看,PID 1696 的 Max Locked memory 是 64K,对于某些进程或者应用程序,这可能还不够。
有几种方法可以改变这种情况。
方法 1 - 全局更改
全局更改默认值,这将对所有进程生效。
编辑文件 /etc/systemd/system.conf 并更改那里的值。
- 如果选中,默认情况下该值将被注释掉,因此默认 64K 有效。
# cat /etc/systemd/system.conf | grep DefaultLimitMEMLOCK #DefaultLimitMEMLOCK=
- 要更改此设置,请编辑文件并取消注释所需资源行并添加所需值。
例如。
# vi /etc/systemd/system.conf DefaultLimitMEMLOCK=128000
这将在启动时将“所有”进程的最大锁定内存更改为 128K。
更多: zhilu jiaocheng
方法 2 - 更改特定服务或者流程
如果需要更改任何特定进程或者应用程序的资源限制,则以下方法将有所帮助。
- 更改任何特定进程/服务的资源值。
这可以通过编辑服务单元文件并在服务部分添加限制细节来完成。
服务“test”的示例如下
# vi test.service [Unit] Description=TEST SERVICE Wants=network.target network-online.target autofs.service After=network.target network-online.target autofs.service [Service] Type=simple User=farmer ExecStart=/path/to/service/executable <<Options>> LimitMEMLOCK=128000 PIDFile=/var/run/test.pid [Install] WantedBy=multi-user.target
有了上面的服务单元文件,新的一行“LimitMEMLOCK=128000”会在启动时为特定进程分配128K Max Locked Memory。
所有其他进程将具有根据 systemd 的默认值。
日期:2020-09-17 00:12:39 来源:oir作者:oir