前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux命令(72)—— ulimit 命令(builtin)

Linux命令(72)—— ulimit 命令(builtin)

作者头像
恋喵大鲤鱼
发布2019-09-18 10:11:39
9670
发布2019-09-18 10:11:39
举报
文章被收录于专栏:C/C++基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/K346K346/article/details/100601956

1.命令简介

ulimit 属 Shell 内建命令,用于查看或设置 Shell 以及通过 Shell 启动的进程使用系统资源的上限。限制分为软限制(当前限制)和硬限制,其中硬限制是软限制的上限值。如果应用程序在运行过程中使用的系统资源超过相应的软限制,将导致进程的终止。

由于系统资源有限,比如开启文件描述符的数量,进程堆栈的大小,CPU 时间,虚拟内存大小,等等,操作系统对每一个进程都有严格的限制。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与进程性能密不可分。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。

2.命令格式

代码语言:javascript
复制
ulimit [-HSTabcdefilmnpqrstuvx [limit]]

其中,limit 是对指定类型资源的具体限制,参数 S 表示设置软限制,H 表示设置硬限制,当都不指定时,表示同时设置软限制和硬限制。

3.选项说明

代码语言:javascript
复制
-H
	设定资源的硬限制,只有 root 用户可以操作
-S
	设置资源的软限制
-a
	显示目前所有资源设定的限制
-b
	socket 缓冲的最大值,单位 
-c
	core 文件的最大值,单位 blocks
-d
	进程数据段的最大值,单位 KB
-e
	调度优先级上限,这里的优先级指 NICE 值。只针对普通用户进程有效
-f
	当前 Shell 可创建文件总大小的上限,单位 blocks
-i
	被挂起/阻塞的最大信号数量
-l
	可以锁住的物理内存的最大值,单位 KB
-m
	可以使用的常驻内存的最大值,单位 KB
-n
	每个进程可以同时打开的最大文件数
-p
	管道的最大值,单位 block,1 block = 512 bytes
-q
	POSIX 消息队列的最大值
-r
	限制程序实时优先级,只针对普通用户进程有效
-s
	进程栈最大值,单位 KB
-t
	最大 CPU 时间,单位 s
-u
	用户最多可启动的进程数目
-v
	当前 Shell 可使用的最大虚拟内存,单位 KB
-x
	文件锁的最大数量
-T
	线程的最大数量

4.常用示例

(1)查看现有系统资源限制。

代码语言:javascript
复制
ulimit -a

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 255112
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
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) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

(2)控制进程发生段错误(Segmentation Fault)时生成 coredump 文件。

代码语言:javascript
复制
ulimit -c unlimited

(3)设置进程的栈大小没有限制。

代码语言:javascript
复制
ulimit -s unlimited

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年09月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.常用示例
相关产品与服务
消息队列
腾讯云消息队列 TDMQ 是分布式架构中的重要组件,提供异步通信的基础能力,通过应用解耦降低系统复杂度,提升系统可用性和可扩展性。TDMQ 产品系列提供丰富的产品形态,包含 CKafka、RocketMQ、RabbitMQ、Pulsar、CMQ 五大产品,覆盖在线和离线场景,满足金融、互联网、教育、物流、能源等不同行业和场景的需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档