从Redhat 7.5和Suse 12开始,在Systemd里提供了新的任务数限制,覆盖了limit.conf里的参数值。本文介绍该功能在全局默认任务数DefaultTasksMax,单元和服务级的任务数TasksMax,所有用户的任务数UserTasksMax以及单个用户任务数TasksMax的配置方法。
目录导航
参考
https://www.suse.com/support/kb/doc/?id=000015901
全局默认值DefaultTaskMax
不限制是infinity
查看
systemctl show --property DefaultTasksMax
样例,如下不限制是long正数的最大值了
[root@localhost systemd]# systemctl show --property DefaultTasksMax
DefaultTasksMax=18446744073709551615
[root@localhost systemd]#
修改
配置文件为/etc/systemd/system.conf,默认是不限制,或者512。
[root@localhost systemd]# grep TasksMax /etc/systemd/system.conf
#DefaultTasksMax=
[root@localhost systemd]#
单元或服务级(systemctl)
查看
比如 sshd服务, 如果没有则不是在这个级别做的限制。
systemctl status sshd.service |grep -e Tasks
Tasks: 1 (limit: 18100)
修改
比如 sshd服务/etc/systemd/system/sshd.service.d/override.conf
/etc/systemd/system/sshd.service.d/override.conf
增加
[Service]
TasksMax=18100
所有用户级的最大任务数限制
查看
通过配置文件查看
[root@localhost system]# grep UserTasksMax /etc/systemd/logind.conf
#UserTasksMax=
[root@localhost system]#
修改
修改配置文件 /etc/systemd/logind.conf,默认是注释掉的或者其它值。
[Login]
UserTasksMax = 12288
单个用户级最大任务数限制
如果没有为单个用户配置,则默认使用所有用户的参数。
查看
如下拿到所有的ID,其中带silence的是用户级的。如下gbase操作系统用户的id是6002, 对应的限制数是12288。
修改
根据操作系统的id,修改对应的配置参数,比如对应1001的。(id可通过 id 用户名获得)
/etc/systemd/system/user-1001.slice.d/50-tasksmax.conf
修改参数
[Slice]
TasksMax=18000
也可以通过如下方法立即生效
systemctl set-property user-1001.slice TasksMax=18000
备注GBase相关
GBase数据库默认没有修改服务参数,所以不单单要看全局默认参数DefaultTasksMax,还要看全局默认用户参数的值UserTasksMax。