Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux查看资源限制信息

Linux查看进程的资源限制信息的常见方法

作者:唐青枫

这篇文章主要介绍了Linux中通过`cat /proc/$pid/limits`查看进程资源限制的方法,包括软硬限制、资源类型(如文件数、内存、CPU时间)及修改方式(ulimit/prlimit/limits.conf),用于诊断资源不足问题并优化系统配置,需要的朋友可以参考下

简介

Linux 上的 cat /proc/$pid/limits 命令提供有关特定进程的资源限制的信息,其中 $pid 是相关进程的进程 ID (pid)。该文件是 `/proc 文件系统的一部分,该文件系统是一个虚拟文件系统,提供有关进程和系统资源的信息。

基本用法

cat /proc/1234/limits

# 其中 1234 是目标进程的 PID。

输出示例:

Limit                     Soft Limit           Hard Limit           Units
Max cpu time               unlimited            unlimited             seconds
Max file size              unlimited            unlimited             bytes
Max data size              unlimited            unlimited             bytes
Max stack size             8388608              8388608               bytes
Max core file size        0                    unlimited             bytes
Max resident set          unlimited            unlimited             bytes
Max processes             6348                 6348                  processes
Max open files            1024                 1024                  files
Max locked memory         65536                65536                 bytes
Max address space         unlimited            unlimited             bytes
Max file locks            unlimited            unlimited             locks
Max pending signals       6348                 6348                  signals
Max msgqueue size         819200               819200                bytes
Max nice priority         20                   20                    priority
Max realtime priority     99                   99                    priority
Max realtime timeout      unlimited            unlimited             us

关键字段解释

修改限制

资源限制

这些是应用于进程的各种限制和约束,以控制其可以使用的资源,例如内存、CPU 和文件描述符。

此文件中列出的常见资源包括:

常见的限制类型

软限制与硬限制

常见用法

检查进程资源限制

用于诊断进程是否因资源限制(如文件描述符不足)而失败:

cat /proc/$(pidof bash)/limits

查看当前 bash 进程的限制

查找文件描述符限制

检查进程的最大文件描述符数:

cat /proc/1234/limits | grep "Max open files"

输出示例:

Max open files            1024                 1048576              files

结合 ulimit 调整限制

ulimit 命令可修改当前 shell 的软限制(需要硬限制允许)。例如,增加文件描述符限制

ulimit -n 2048
cat /proc/$$/limits | grep "Max open files"

监控系统限制

检查所有进程的限制模式

for pid in /proc/[0-9]*; do echo "PID: $(basename $pid)"; cat $pid/limits; done

诊断文件描述符不足

假设某个服务(PID 1234)报错 Too many open files

cat /proc/1234/limits | grep "Max open files"
lsof -p 1234 | wc -l

如果打开的文件数接近软限制,临时增加限制:

prlimit --pid 1234 --nofile=2048:1048576

或修改服务配置文件(如 systemd 的 LimitNOFILE

检查核心转储

确保进程可以生成核心转储:

cat /proc/1234/limits | grep "Max core file size"

如果软限制为 0,启用核心转储:

ulimit -c unlimited

相关配置文件

/proc/$pid/limits 的值通常来自以下来源:

# 格式:<domain> <type> <item> <value>
* soft nofile 1024
* hard nofile 1048576

* 表示所有用户,nofile 对应 Max open files

以上就是Linux查看进程的资源限制信息的常见方法的详细内容,更多关于Linux查看资源限制信息的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文