• 关于RHEL6中ulimit的nproc限制 枯木


    当前shell下更改用户可打开进程数

    修改limits.conf配置文件生效

    1. [root@kumu ~]# ulimit -a            //查看当前配置文件ulimit全局系数 
    2. core file size          (blocks, -c) 0 
    3. data seg size           (kbytes, -d) unlimited 
    4. scheduling priority             (-e) 0 
    5. file size               (blocks, -f) unlimited 
    6. pending signals                 (-i) 1829 
    7. max locked memory       (kbytes, -l) 64 
    8. max memory size         (kbytes, -m) unlimited 
    9. open files                      (-n) 1024 
    10. pipe size            (512 bytes, -p) 8 
    11. POSIX message queues     (bytes, -q) 819200 
    12. real-time priority              (-r) 0 
    13. stack size              (kbytes, -s) 10240 
    14. cpu time               (seconds, -t) unlimited 
    15. max user processes              (-u) 1024 
    16. virtual memory          (kbytes, -v) unlimited 
    17. file locks                      (-x) unlimited 
    18. [root@kumu ~]# vim /etc/security/limits.conf  
    19. [root@kumu ~]# grep '^*' /etc/security/limits.conf 
    20. *       soft    nproc       10240 
    21. *       hard    nproc       10240 
    22. *       soft    nofile      10240 
    23. *       hard    nofile      10240 
    24. [root@kumu ~]# 

    退出当前用户,重新登录即可让之前修改的limits生效

    1. [root@kumu ~]# ulimit -n 
    2. 10240 
    3. [root@kumu ~]# ulimit -u            //发现nproc并没有像nofile一样而改变 
    4. 1024 
    5. [root@kumu ~]# 

    经google搜索获知,RHEL6下引入了配置文件/etc/security/limits.d/90-nproc.conf

    (参见了@杨德华Devin 文章redhat5 和redhat6 root用户不同的ulimits

    1. [root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf  
    2. # Default limit for number of user's processes to prevent 
    3. # accidental fork bombs. 
    4. # See rhbz #432903 for reasoning. 
    5.  
    6. *          soft    nproc     1024 
    7. [root@kumu ~]# 

    我们修改这个文件尝试是否因为该文件影响,修改如下

    1. [root@kumu ~]# vim /etc/security/limits.d/90-nproc.conf  
    2. [root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf  
    3. # Default limit for number of user's processes to prevent 
    4. # accidental fork bombs. 
    5. # See rhbz #432903 for reasoning. 
    6.  
    7. #*          soft    nproc     1024 
    8. *          soft    nproc    65535  
    9. [root@kumu ~]# 

    退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功

    1. [root@kumu ~]# ulimit -u   
    2. 10240   
    3. [root@kumu ~]# ulimit -n   
    4. 10240   
    5. [root@kumu ~]#  

    由此可知,如果要修改配置文件limits.conf中的nproc限制上限是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制约的,但是shell终端下是不受制约的

    另外笔者猜想,如果使用*号让全局用户生效是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制约的,而如果仅仅是针对某个用户,那么就不受该文件nproc值大小的影响

    1. [root@kumu ~]# vim /etc/security/limits.d/90-nproc.conf   //恢复系统默认设置 
    2. [root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf  
    3. # Default limit for number of user's processes to prevent 
    4. # accidental fork bombs. 
    5. # See rhbz #432903 for reasoning. 
    6.  
    7. *          soft    nproc     1024 
    8. #*          soft    nproc    65535  
    9. [root@kumu ~]# vim /etc/security/limits.conf        //只针对某个用户测试(这里使用root) 
    10. [root@kumu ~]# grep '^root' /etc/security/limits.conf  
    11. root        soft    nproc       10240 
    12. root        hard    nproc       10240 
    13. [root@kumu ~]# 

    退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功

    1. [root@kumu ~]# ulimit -u 
    2. 10240 
    3. [root@kumu ~]# ulimit -n 
    4. 10240 
    5. [root@kumu ~]# 

    笔者之前猜想正确,即只有当使用*号让全局用户生效的时候,生效的nproc的值大小是受文件/etc/security/limits.d/90-nproc.confnproc值大小制约的,而如果仅仅是针对某个用户,那么就不受该文件nproc值大小的影响。

  • 相关阅读:
    Vue项目style样式层下载less-loader时候遇到的坑
    用git上传项目到github遇到的问题和解决方法
    git命令大全
    npm run dev 报错:missing script:dev
    sessionStorage缓存数据
    RTL基本知识:编译命令指定隐性线网类型
    RTL基本知识:线网的隐性声明
    物理综合:关于UDSM后端设计总结
    RTL基本知识:task和function
    物理综合:Timing_budgeting
  • 原文地址:https://www.cnblogs.com/kumulinux/p/2820609.html
Copyright © 2020-2023  润新知