前言

系统中有些地方会进行资源的限制,其中的一个就是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

在线动态修改ulimit的更多相关文章

  1. Linux ulimit和动态修改MySQL最大线程数限制

    ulimit是限制进程对资源的使用但软件资源限制变化不大,特别是process/file,分别对应nproc和nofilenproc可用 ulimit -u 查询:nofile可用 ulimit -n ...

  2. Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量

    Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量   Ubuntu 作为服务器系统使用的时候,系统盘的空间可能并不是很充裕,apt apt 着,根目录就满了.诚然, ...

  3. ReactNative 根据scrollView/listview滑动距离动态修改NavBar颜色

    我们常见某些APP上滑的时候,NavBar颜色会从透明渐变为某种颜色 原理非常简单,根据scrollView的回调动态修改NavBar的透明度即可. 在RN中,尤其是ListView中这个回调不是很好 ...

  4. thinkphp 3.2.3 动态修改conf配置文件

    thinkphp 3.2.3 的C()方法能修改配置文件,但是是动态修改的,没有真正的更改文件. 我查了网上网友分享的方法,都不怎么合适,我就自己摸索写了一个,配置写到text.php中,我的目录如下 ...

  5. 自己动手丰衣足食之轮播图一动态修改marginTop属性实现轮播图

    引言 学习jQuery有年头了,刚开始学习时自己动手写过轮播图,放的久了以至于忘了大致思路了.现在转而做前端,抽空把jquery轮播图拿出来写一写,把各种思路都自己练习练习,这里主要使用动态修改mar ...

  6. ASP.NET MVC程序中动态修改form的Action值

    在练习ASP.NET MVC时,为了实现一个小功能,POST数据至服务器执行时,需要动态修改form的action值. 下面Insus.NET列举一个例子来演示它.让它简单,明白易了解. 你可以在控制 ...

  7. Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句

    我们继续分析自毁程序密码这个app,我们发现该程序会用fopen ()打开/proc/[pid]/status这个文件,随后会用fgets()和strstr()来获取,于是我们在strstr()处下个 ...

  8. Java反射机制可以动态修改实例中final修饰的成员变量吗?

    问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. ...

  9. 动态布局--动态修改RelativeLayout宽高的方法

    本文实例讲述了Android编程动态修改RelativeLayout宽高的方法.分享给大家供大家参考,具体如下: 我们经常会动态修改RelativeLayout的宽高,这样的代码,比较简单,就是修改R ...

随机推荐

  1. 高度集成智能家居物联网网关WiFi通信应用的无线路由模块:模小块成长记

    大家好,我叫模小块,代号L107模块,出生在BOJINGnet大家庭里,我在物联网网关里不可或缺,或许业内专业人士和物联网工程师知道我的存在.别看我体积小(40mm25mm3mm),贴片式邮票孔接口( ...

  2. Spring Aop 详解一

    Aop 是一个编程思想,最初是一个理论,最后落地成了很多的技术实现. 我们写一个系统,都希望尽量少写点儿重复的东西.而很多时候呢,又不得不写一些重复的东西.比如访问某些方法的权限,执行某些方法性能的日 ...

  3. docker-compose编写示例

    docker-compose.yml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ...

  4. request-html 使用

    from requests_html import HTMLSessionsession = HTMLSession()resp = session.get('http://www.spbeen.co ...

  5. Linux命令行history

    概述 当执行命令后,系统默认会在内存记录执行过的命令 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history 登录shell时,会读取命令历史文件中记录下的命令加 ...

  6. MySQL数据库基础-1

    数据库原理 数据时代 信息创造价值 -结构化数据 关系完整,密切 -非结构化数据 数据散乱,相互关系不大 -半结构化数据 XML HTML 也不是完全没有结构,也不是特别规矩 MySQL适合管理结构化 ...

  7. CSS动画菜鸡记录板

    Transition 过渡属性: (background 1s linear 0s) 缓动函数 linear,在 easings.net 可找到相应的功能 若想要多次不同执行,用逗号隔开 Animat ...

  8. 没事学学KVM(四)虚拟机基础管理

    上次学完虚机的创建.开关机.备份配置文件等,今天学学其他几个常用的虚机管理命令: 1.重命名  方法一:virsh domrename old-name new-name virsh # list I ...

  9. 如何使用dos,以及一些简单的dos命令

    一. 如何打开dos窗口    1. 按下 windos键 alt  ctrl 之间的键        或者打开开始 菜单  输入 cmd 名令    2. win + r 键 输入 cmd 打开 d ...

  10. Git高级使用教程

    Git 与 SVN 区别 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...