我有一台主机(Ubuntu 14.04.4 LTS 64 位,内核 3.13.0-85-generic),有大量并发 SSH 连接。SSH 登录最近开始失败,日志显示:
sshd[26057]: pam_systemd(sshd:session): Failed to create session: Cannot allocate memory
我甚至无法弄清楚哪个子系统正在执行该限制。机器本身有 4 GB 可用 RAM 和 0 字节正在使用的交换空间(共 8GB):
我编写了一个小型 C 程序,它可以分配 1GB 的 RAM,并且没有任何问题,所以这不是系统 RAM 的问题。
我检查了ulimit
设置,并查看/proc/<pid>/limits
是否定义了操作系统限制,但一切都是无限制的。
我也调查过systemd 的资源限制,就像MemoryLimit
中的参数一样/etc/systemd/system/sshd.service
。
似乎没有任何效果。知道这个内存限制是从哪里来的吗?
编辑:
实际上,安装 systemd 很奇怪。这些是 systemd 软件包:
# aptitude 搜索 systemd|grep "^i" i libpam-systemd - 系统和服务管理器 - PAM 模块 i libsystemd-daemon0 - systemd 实用程序库 i A libsystemd-login0 - systemd 登录实用程序库 i A systemd-services - systemd 运行时服务 i systemd-shim - systemd 的垫片
它的版本是 204-5ubuntu20.19。
apt-cache rdepends
并没有真正让我清楚了解为什么要安装它。它也没有完全安装。systemctl
首先,命令不可用。
编辑2:由于 dbus,systemd 组件似乎被包含在内。如果我尝试在另一个 14.04 系统上安装 dbus,它确实想要引入 systemd。