ulimit资源限制

本文介绍了如何使用ulimit命令查看和调整Linux系统的资源限制,包括核心转储、文件大小、进程数量等关键参数,并提供了实际操作案例,帮助解决程序在不同主机间运行时遇到的资源限制问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                           ulimit资源限制

有时候一个程序在一台主机上跑得好好的,拿到另一个主机上跑,却出问题了。或都内存不够,或都文件数不对,或报段错误等。

这时有可能是系统资源作了限制。

了解系统资的限制工具:

ulimit命令:

ulimit为shell内建指令,可用来控制shell执行程序的资源。

在我的fadora 里的资源限制情况:

[root@localhost long]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 3845
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 4096
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

下面是对应参数解析

-a     列出所有当前资源极限。
-c     以 512 字节块为单位,指定核心转储的大小。
-d     以 K 字节为单位指定数据区域的大小。
-f     使用 Limit 参数时设定文件大小极限(以块计),或者在未指定参数时报告文件大小极限。缺省值为 -f 标志。
-H     指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限。
-m     以 K 字节为单位指定物理存储器的大小。
-n     指定一个进程可以拥有的文件描述符的数量的极限。
-s     以 K 字节为单位指定堆栈的大小。
-S     指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者。
-t     指定每个进程所使用的秒数。

 

ulimit 命令是shell启动的,也就是只能修改当前的工作环境。

如果要系统自动记住这个配置,就编辑/etc/profile文件,

在 “ulimit -S -c 0 > /dev/null 2>&1”行下,添加“ulimit   -s 262140”,保存重启系统就可以了!

下面可以测试一下:

ulimit -f 1   //文件的最大块数是1. 而我的系统1块是1K. 即限制了文件最大1K。

[long@localhost less1]$ ulimit -f
1

用perl 写一个文件,结果报错。

[long@localhost less1]$ ./mkexc_id.pl  > file.txt
文件大小超出限制(吐核)

查看此时,file.txt 最的大小:

[long@localhost less1]$ ls -rlt aa
-rw-rw-r-- 1 long long 1024 7月  17 13:47 file.txt

可以看出是的1024k.

 

其他资源的限制类似

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值