zoukankan      html  css  js  c++  java
  • 修改 Linux VM 中单个用户最大进程数的限制

    在部署有并发任务执行的虚机上, 会遇到 SSH 无法访问的问题. 本文将帮助你找出其中一种比较特殊的原因, 并提供解决方案。

    Note

    以下案例分析基于 CentOS 7, 对于其他版本的 Linux 操作系统, 会略有不同, 请注意。

    症状描述

    虚机在正常运行过程中,突然发现 SSH 连接失败。重启虚机以后,SSH 连接恢复正常。再运行一段时间之后,又发生同样的问题。

    问题分析

    • 经过日志分析,azure 平台和虚机运行均无异常。但是从 /var/log/secure.log 里发现如下信息 “sshd[23106]: error: do_exec_pty: fork: Resource temporarily unavailable”
    • 根据了解,该虚机上运行的应用程序属于并发,在同一时间段,同一用户的进程数会超过 10000.已经超过了默认的 4096 最大值。这是导致本次 SSH 登陆失败的原因

    解决方案

    • 重启虚拟机并以管理员登陆虚拟机,切换成 root 用户
    • 查看文件 /etc/security/limits.d/20-nproc.conf, 默认应该为如下内容

      # Default limit for number of user's processes to prevent
      # accidental fork bombs.
      # See rhbz #432903 for reasoning.   
      *          soft    nproc     4096
      root       soft    nproc     unlimited
      
    • 编辑文件 /etc/security/limits.d/20-nproc.conf,将高亮显示行内的 4096,调整为相应的值,或者改成 unlimited.

    更多详细介绍, 请参考这篇文档

    立即访问http://market.azure.cn

  • 相关阅读:
    python day1
    Vue与react的择决
    CommonJS规范
    js面向对象的程序设计
    正则匹配所有的a标签
    js-静态、原型、实例属性
    js中参数不对应问题
    sublime常用快捷键
    JSON.parse()和JSON.stringify()
    setAttribute()
  • 原文地址:https://www.cnblogs.com/zangdalei/p/7693518.html
Copyright © 2011-2022 走看看