Suse 12调整limit大小限制

SUSE(发音通常是 /suzi/,正确应为 /zuzə/) 是 Linux 操作系统其中一个发行版,也是德国的一个发行版。
SUSE 属于 Novell 旗下的业务,它同时亦是 Desktop Linux Consortium 的发起成员之一。

SUSE Linux Enterprise Server 官网
SUSE Linux 原是以 Slackware Linux 为基础,并提供完整德文使用界面的产品。1992 年 Peter McDonald 成立了 Softlanding Linux System (SLS) 这个发行版。这套发行版包含的软件非常多,更首次收录了 X Window 及 TCP/IP 等套件。Slackware 就是一个基于 SLS 的发行版。

SuSE 于 1992 年末创办,目的是成为 UNIX 技术公司,专门制为德国人推出量身订作的 SLS/Slackware 软件及 UNIX/Linux 说明文件。1994 年,他们首次推出了 SLS/Slackware 的安装光碟,命名为 S.u.S.E. Linux 1.0。其后它综合了 Florian La Roche 的 Jurix distribution (也是一个基于 Slackware 的发行版),于 1996 年推出一个完全自家打造的发行版 - S.u.S.E. Linux 4.2。其后 SUSE Linux 采用了不少 Red Hat Linux 的特质。(使用 RPM 及 /etc/sysconfig)

“S.u.S.E.” 后来改称 / 简短为 “SuSE”,意思为 “Software- und System-Entwicklung”,那是一句德文,英文为 “Software and system development”。现在这家公司的名字再度更改成 SUSE Linux,“SUSE” 一字已经不包含甚么意义了。有非官方的谣言说 “SUSE” 同时是指德国电脑先驱 Konrad Zuse 的一个双关语。

2003 年 11 月 4 日,Novell 表示将会对 SUSE 提出收购。收购的工作于 2004 年 1 月完成。Novell 也向大家保证 SUSE 的 开发工作仍会继续下去,Novell 更把公司内全线电脑的系统换成 SUSE LINUX,并同时表示将会把 SUSE 特有而优秀的系统管理程序 - YaST2 以 GPL 授权释出。

2005 年 8 月 4 日,Novell 公共关系科的领导及代言人 - Bruce Lowry 表示,SUSE Linux Professional 系列的开发将变得更开放以及让社群参与当中的工作。新的开发计划名为 openSUSE,目的是为了吸引更多的使用者及开发人员。 相比以往,现在所有的开发人员及使用者能够测试 SUSE 的产品并一起开发新版本的 SUSE。在以往,SUSE 的开发工作都是于内部进行的。SUSE 10.0 是第一个给予公众测试的版本。为了配合这个转变,用户除了能够购买盒装版本的 SUSE 外,也可以从网络上免费下载。一系列的改变让于 2005 年 10 月 6 日推出的 SUSE Linux 有三个版本 - “OSS 版” (完全地开放原始码)、“试用版”(同时包含开放原始码的程序及专属程序如 Adobe Reader、Real Player 等,其实就是盒装零售版,也可以免费下载,可以安装在硬盘上,并且没有使用限制或限期,但不含说明手册及 Novell 提供的技术支援) 及盒装 零售版。

SUSE 包含了一个安装及系统管理工具 YaST2。它能够进行磁盘分割、系统安装、在线更新、网络及防火墙组态设定、用户管理和其他更多的工作。它为原来复杂的设定工作提供了方便的组合界面。

SUSE 支持在安装的时候调效 NTFS 硬盘的大小,令把 Linux 安装到一台已经安装了 Windows 2000 或 XP 的电脑的工作进行得更顺利。此外,SUSE 亦会自动侦测很多常见的 Windows 调制解调器并为它们安装驱动程序。

SUSE 也收录了 Linux 下的多个桌面环境如 KDE 和 GNOME 及一些视窗管理员,比如是 Window Maker、Blackbox 等。YaST2 安装程序也会让使用者选择使用 GNOME、KDE 或者不安装图形界面。SUSE 已经为使用者提供了一系列多媒 体程序如 K3B (CD/DVD 烧录)、amaroK (音乐播放器) 和 Kaffeine (影片播放器)。它也收录了 OpenOffice.org,以及其他 的文字阅读 / 处理软件,如 PDF 格式文件阅读软件等。

问题

docker-compose启动服务时报

runtime: failed to create new OS thread (have 7 already;  errno=11) 
runtime: may need to increase max user processes (ulimit -u)

操作系统

master:~ # lsb_release -a
LSB Version:	n/a
Distributor ID:	SUSE
Description:	SUSE Linux Enterprise Server 12 SP5
Release:		12.5
Codename:		n/a

解决

官网地址
原因:
从Redhat 7.5和Suse 12开始,在Systemd里提供了新的任务数限制 “(TasksMax)”,覆盖了limit.conf里的参数值。本文介绍该功能在全局默认任务数DefaultTasksMax,单元和服务级的任务数TasksMax,所有用户的任务数UserTasksMax以及单个用户任务数TasksMax的配置方法。
TasksMax
对于任一 systemd 服务来说,在其服务文件中,设置 TasksMax 值来限制最大进程数。
官方术语是说设置最大任务数,落实到 cgroup 中就是 pids.max 值,所以我认为说是进程数应该是可以的。

[Service]
Type=forking
User=%I
Restart=always
TasksMax=infinity # infinity 是指不限制
ExecStart=/usr/bin/tmux new-session -s %I -n %I -c /home/%I/ -d
ExecStop=/usr/bin/tmux kill-server

查看相应服务的 TasksMax 值,只需使用 systemctl status 命令即可在”Tasks: ” 一栏中看到服务当前拥有的任务数以及其上限。

master:~ # systemctl status docker | grep Tasks
    Tasks: 903

DefaultTasksMax
TasksMax 的默认值由 DefaultTasksMax 指定。该值默认为 512。
在文件 /etc/systemd/system.conf 或者 /etc/systemd/user.conf 都可以设置,分别掌管系统级服务与用户级服务的默认值。

UserTasksMax
除了以上两个值之外,还有 UserTasksMax 值,该值限定了从一个 login-shell中可以运行的任务数的限制。在 /etc/systemd/logind.conf 的 [login] 段下设置。默认为 4096。

全局默认值DefaultTaskMax

不限制是infinity
▶ 查看

systemctl show --property DefaultTasksMax

样例,如下不限制是long正数的最大值了

master:~ # systemctl show --property DefaultTasksMax
DefaultTasksMax=18446744073709551615

▶ 修改
配置文件为/etc/systemd/system.conf,默认是512。

master:~ #  grep TasksMax /etc/systemd/system.conf
#DefaultTasksMax=512
修改成如下设置:
master:~ # sed -i 's/#DefaultTasksMax=512/DefaultTasksMax=infinity/g' /etc/systemd/system.conf 
master:~ # grep TasksMax /etc/systemd/system.conf
DefaultTasksMax=infinity

单元或服务级(systemctl)

▶ 查看
比如 sshd服务, 如果没有则不是在这个级别做的限制。

master:~ # systemctl status sshd.service |grep -e Tasks
    Tasks: 13
           └─22180 grep --color=auto -e Tasks

▶ 修改
比如 sshd服务

master:~ # cat /usr/lib/systemd/system/sshd.service 
[Unit]
Description=OpenSSH Daemon
After=network.target

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/ssh
ExecStartPre=/usr/sbin/sshd-gen-keys-start
ExecStartPre=/usr/sbin/sshd -t $SSHD_OPTS
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
TasksMax=infinity

[Install]
WantedBy=multi-user.target

所有用户级的最大任务数限制

▶ 查看
通过配置文件查看

master:~ #  grep UserTasksMax /etc/systemd/logind.conf
#UserTasksMax=12288

▶ 修改
修改配置文件 /etc/systemd/logind.conf ,默认是注释掉的或者其它值。

[Login]
UserTasksMax = 12288

单个用户级最大任务数限制

如果没有为单个用户配置,则默认使用所有用户的参数。

▶ 查看

master:~ # cat /run/systemd/system/user-484.slice.d/50-TasksMax.conf 
[Slice]
TasksMax=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

Life is “realm determines pattern, pattern determines layout, layout determines outcome.”

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光落入你灰蒙蒙的眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值