[转帖]使用prlimit命令不重启进程修改其limits等运行参数

使用,prlimit,命令,重启,进程,修改,limits,运行,参数 · 浏览次数 : 0

小编点评

**场景描述:** 数据库或中间件的运行时文件句柄等参数设置过低,导致服务不可用或间歇性不可用。重启服务的代价可能很大,因此我们可以不重启进程,做到修改某个进程的 limits范围。 **方法:** 1. 使用 `prlimit` 命令对进程 ID `1204` 设置文件句柄限制。 ``` $ prlimit --nofile=65535:65535 --pid 1204 ``` 2. 查看 `/proc/1204/limits` 文件中文件大小限制的值。 ``` Max file size unlimited unlimited bytes Max core file size 0 unlimited bytes Max open files 10240 10240 files Max file locks unlimited unlimited locks ``` **结果:** 文件大小限制已设置为 65535,即数据库或中间件可以处理的最大文件数量。 **其他参数:** * `-p`:指定进程 ID。 * `-o`:指定输出格式,默认是 `DESCRIPTION`。 * `-V`:输出版本信息,包括 PRLIMIT 版本号。 * `-h`:显示帮助信息。

正文

https://cloud.tencent.com/developer/article/2127606?areaSource=&traceId=

 

假设有个场景,数据库或者其它中间件的运行时文件句柄等参数设置过低,导致服务不可用或者间歇性不可用。

但是重启服务的代价可能很大,那么我们也可以不重启进程,做到修改某个进程的 limits范围。

这里可以使用 prlimit 命令来实现。

这里我以MySQL服务为例

  $ ps auxf | grep -v grep | grep mysqld 
  mysql      1204  1.3  3.4 7311604 1134388 ?     Sl   Aug31  68:40 ./bin/mysqld --defaults-file=/usr/local/mysql/my.cnf --user=mysql --log-error-verbosity=3




  $ cat /proc/1204/limits | grep file   # 看到文件句柄限制为10240了
  Max file size             unlimited            unlimited            bytes     
  Max core file size        0                    unlimited            bytes     
  Max open files            10240                10240                files     
  Max file locks            unlimited            unlimited            locks     

  # 用prlimit 搞一下
  $ prlimit --nofile=65535:65535 --pid 1204

  $ cat /proc/1204/limits | grep file        # 再次查看,可以看到已经变成 65535了 
  Max file size             unlimited            unlimited            bytes     
  Max core file size        0                    unlimited            bytes     
  Max open files            65535                65535                files     
  Max file locks            unlimited            unlimited            locks     


prlimit 还支持其它的参数修改,具体如下
  $ prlimit --help                                              

  Usage:
  prlimit [options] [-p PID]
  prlimit [options] COMMAND

  General Options:
  -p, --pid <pid>        process id
  -o, --output <list>    define which output columns to use
    --noheadings       don't print headings
    --raw              use the raw output format
    --verbose          verbose output
  -h, --help             display this help and exit
  -V, --version          output version information and exit

  Resources Options:
  -c, --core             maximum size of core files created
  -d, --data             maximum size of a process's data segment
  -e, --nice             maximum nice priority allowed to raise
  -f, --fsize            maximum size of files written by the process
  -i, --sigpending       maximum number of pending signals
  -l, --memlock          maximum size a process may lock into memory
  -m, --rss              maximum resident set size
  -n, --nofile           maximum number of open files        # 最常用
  -q, --msgqueue         maximum bytes in POSIX message queues
  -r, --rtprio           maximum real-time scheduling priority
  -s, --stack            maximum stack size
  -t, --cpu              maximum amount of CPU time in seconds
  -u, --nproc            maximum number of user processes        # 常用
  -v, --as               size of virtual memory
  -x, --locks            maximum number of file locks
  -y, --rttime           CPU time in microseconds a process scheduled
              under real-time scheduling

  Available columns (for --output):
  DESCRIPTION  resource description
    RESOURCE  resource name
      SOFT  soft limit
      HARD  hard limit (ceiling)
    UNITS  units

  For more details see prlimit(1).

与[转帖]使用prlimit命令不重启进程修改其limits等运行参数相似的内容:

[转帖]使用prlimit命令不重启进程修改其limits等运行参数

https://cloud.tencent.com/developer/article/2127606?areaSource=&traceId= 假设有个场景,数据库或者其它中间件的运行时文件句柄等参数设置过低,导致服务不可用或者间歇性不可用。 但是重启服务的代价可能很大,那么我们也可以不重启进程,

[转帖]使用JMX服务监控Java程序性能

https://www.jianshu.com/p/3c3c836c1c20?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 背景 单机收集服务器需要性能监控和测试。 JMX

[转帖]使用 tc netem 模拟网络异常

https://cizixs.com/2017/10/23/tc-netem-for-terrible-network/ 在某些情况下,我们需要模拟网络很差的状态来测试软件能够正常工作,比如网络延迟、丢包、乱序、重复等。linux 系统强大的流量控制工具 tc 能很轻松地完成,tc 命令行是 ipr

[转帖]使用 sysdig 进行监控和调试 linux 机器

https://cizixs.com/2017/04/27/sysdig-for-linux-system-monitor-and-analysis/ sysdig 简介 sysdig 官网 上对自己的介绍是: Open Source Universal System Visibility With

[转帖]使用MAT命令行工具生成堆dump分析文件

https://www.cnblogs.com/hellxz/p/use_mat_linux_command_line_generate_reports.html 写作目标 Java程序运行过程中,难免会出现 OOM,往往是在 JVM 启动参数中添加出现 OOM 时输出堆 dump(又名:堆转储、堆

[转帖]使用火焰图(FlameGraph)分析程序性能

火焰图概念 火焰图(FlameGraph)是 svg 格式的矢量图,是先通过 perf 等工具分析得到结果,并将该结果生成的具有不同层次且支持互动的图片,看起来就像是火焰,这也是它的名字的由来。表现形式如下所示: 需要注意以下几点: 纵向(Y 轴)高低不平,表示的是函数调用栈的深度。每一层都是一个函

[转帖]使用Prometheus和Grafana监控RabbitMQ集群 (使用RabbitMQ自带插件)

https://www.cnblogs.com/hahaha111122222/p/15683696.html 配置RabbitMQ集群 官方文档:https://www.rabbitmq.com/prometheus.html#quick-start 官方github地址:https://gith

[转帖]使用Flame Graph进行系统性能分析

http://t.zoukankan.com/arnoldlu-p-10148558.html 关键词:Flame Graph、perf、perl。 FlameGraph是由BrendanGregg开发的一款开源可视化性能分析工具,形象的成为火焰图。 从底向上像火苗一样逐渐变小,也反映了相互之间的包

[转帖]使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题

https://zhuanlan.zhihu.com/p/410217354 使用 nsenter、dig 和 tcpdump 调试 Kubernetes 网络问题 作为 Kubernetes 管理员,我经常发现自己需要调试应用程序和系统问题。我遇到的大多数问题都可以通过 Grafana 仪表板和

[转帖]使用ksar解析sar监控日志

http://t.zoukankan.com/mikeguan-p-6371278.html sar 是属于sysstat包中的一个工具 安装sysstat包后,默认创建一个/etc/cron.d/sysstat文件,其默认内容为: # run system activity accounting