• 在线动态修改ulimit


    前言

    系统中有些地方会进行资源的限制,其中的一个就是open file的限制,操作系统默认限制的是1024,这个值可以通过各种方式修改,本篇主要讲的是如何在线修改,生产上是不可能随便重启进程的

    实践

    查看系统默认的限制

    [root@lab8106 ~]# ulimit -a|grep open
    open files                      (-n) 1024
    

    默认的打开文件是1024

    [root@lab8106 ~]# ps -ef|grep ceph-osd
    ceph     28176     1  0 18:08 ?        00:00:00 /usr/bin/ceph-osd -f --cluster ceph --id 0 --setuser ceph --setgroup ceph
    root     28619 26901  0 18:10 pts/3    00:00:00 grep --color=auto ceph-osd
    [root@lab8106 ~]# cat /proc/28176/limits |grep open
    Max open files            1048576              1048576              files
    

    ceph osd的进程的这个参数是1048576

    通过配置文件修改

    这个参数控制是放在:

    [root@lab8106 ~]# cat  /usr/lib/systemd/system/ceph-osd@.service |grep LimitNOFILE -B 1
    [Service]
    LimitNOFILE=1048576
    

    这个地方设置的,如果我们有需要修改,那么可以修改这里,这不是本篇的重点,对于运行中的进程如何修改呢

    在线修改进程的limit

    这里调用的是prlimit进行的在线修改
    查询指定进程的限制

    [root@lab8106 ~]# prlimit --pid 28176
    RESOURCE   DESCRIPTION                             SOFT      HARD UNITS
    AS         address space limit                unlimited unlimited bytes
    CORE       max core file size                         0 unlimited blocks
    CPU        CPU time                           unlimited unlimited seconds
    DATA       max data size                      unlimited unlimited bytes
    FSIZE      max file size                      unlimited unlimited blocks
    LOCKS      max number of file locks held      unlimited unlimited 
    MEMLOCK    max locked-in-memory address space     65536     65536 bytes
    MSGQUEUE   max bytes in POSIX mqueues            819200    819200 bytes
    NICE       max nice prio allowed to raise             0         0 
    NOFILE     max number of open files             1048576   1048576 
    NPROC      max number of processes              1048576   1048576 
    RSS        max resident set size              unlimited unlimited pages
    RTPRIO     max real-time priority                     0         0 
    RTTIME     timeout for real-time tasks        unlimited unlimited microsecs
    SIGPENDING max number of pending signals         192853    192853 
    STACK      max stack size                       8388608 unlimited bytes
    

    修改指定运行进程的限制

    [root@lab8106 ~]# prlimit --pid 28176 --nofile=104857
    [root@lab8106 ~]# prlimit --pid 28176 |grep NOFILE
    NOFILE     max number of open files              104857    104857 
    

    可以看到修改成功了

    总结

    一般来说ulimit这个限制都是在终端上修改对下次生效,本篇用来记录如何在线修改,如果碰到了,可以这样处理

    变更记录

    Why Who When
    创建 武汉-运维-磨渣 2017-03-06
  • 相关阅读:
    No.1
    JS二叉树的操作
    JS实现快排
    BOM中的各种height
    innerHTML outerHTML innerText value 区别
    【转载】JS中DOM操作汇总
    【转载】轻松理解JS闭包
    【转载】JavaScript模块入门
    【转载】JavaScript模块简介
    【转载】浏览器缓存详解:expires cache-control last-modified
  • 原文地址:https://www.cnblogs.com/zphj1987/p/13575411.html
Copyright © 2020-2023  润新知