【问题标题】:Ubuntu 16.04 systemd redis issues with ulimitulimit 的 Ubuntu 16.04 systemd redis 问题
【发布时间】:2017-01-23 04:29:28
【问题描述】:

从 Ubuntu 14.04 切换到 16.04 后,我的新 redis 服务器出现问题。使用所有指南的打开文件限制的配置说要使用以下设置更改 /etc/security/limits.conf

*    soft nofile 65535
*    hard nofile 65535
root soft nofile 65535
root hard nofile 65535

还要添加到 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive

session required pam_limits.so

我已经进行了所有这些更改,但 redis 仍然以 4096 的文件限制启动,在生产负载下我们很快达到最大连接数。

【问题讨论】:

    标签: ubuntu redis systemd ubuntu-16.04 ulimit


    【解决方案1】:

    经过大量搜索,我终于发现 systemd 的标准限制为 4096,无论您在系统级别设置什么,systemd 级别始终优先。解决此问题的方法是通过编辑 /etc/systemd/system.conf 并添加以下设置来更改 systemd 打开文件限制

    DefaultLimitNOFILE=65536
    

    似乎systemd中有很多默认设置覆盖了系统设置,所以必须在systemd中设置

    因此,如果它对人们有用,这些是我为运行生产 redis 的 Ubuntu 16.04 服务器的最终设置。

    编辑 /etc/systemd/system.conf (sudo nano /etc/systemd/system.conf) 并添加

    DefaultLimitNOFILE=65536
    

    编辑 /etc/security/limits.conf (sudo nano /etc/security/limits.conf) 并添加

    *    soft nofile 64000
    *    hard nofile 64000
    root soft nofile 64000
    root hard nofile 64000
    

    编辑 /etc/pam.d/common-session (sudo nano /etc/pam.d/common-session) 并添加

    session required pam_limits.so
    

    编辑 /etc/pam.d/common-session-noninteractive (sudo nano /etc/pam.d/common-session-noninteractive) 并添加

    session required pam_limits.so
    

    编辑 /etc/rc.local (sudo nano /etc/rc.local) 并添加

    sysctl -w net.core.somaxconn=65535
    

    编辑 /etc/sysctl.conf (sudo nano /etc/sysctl.conf) 并添加

    vm.overcommit_memory = 1
    

    编辑 /etc/rc.local (sudo nano /etc/rc.local) 并添加

    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    

    【讨论】:

    • 很好的答案! DefaultLimitNOFILE 是我所缺少的
    • 谢谢奥利。这解决了我面临的所有问题。完美。
    • 尽管这已经很老了:您能否详细说明您所做的设置以及它们的作用以及为什么需要它?我显然知道所有这些都可以有效地设置文件数量,但作为一个在系统管理方面不够深入的人,理解所有这些都很难。
    • 嗯,当我重新启动 Redis 时,我仍然收到投诉:/
    • @worp - 这是几年前大约 2 周的 Google 搜索,我不是 Linux 专家,所以当时我做了很多研究,但每个原因的原因我现在无法详细回答.
    【解决方案2】:

    sysctl 值net.core.somaxconnvm.overcommit_memory 与ulimit 或打开文件的数量有关。 它们与:

    如果您的问题在于打开文件的限制(ulimit -Sn/-Hn 处理的内容),那么我不建议您使用它,除非您确切知道自己在做什么。

    【讨论】:

      猜你喜欢
      • 2016-11-08
      • 2020-10-17
      • 2019-05-05
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多