00. 目录

文章目录

  • 00. 目录
  • 01. 命令概述
  • 02. 命令格式
  • 03. 常用选项
  • 04. 参考示例
  • 05. 总结
  • 06. 附录

01. 命令概述

ulimit命令用来限制系统用户对shell资源的访问。

假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。

而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大 小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联 系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。

作为临时限制,ulimit 可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他 shell 会话。而对于长期的固定限制,ulimit 命令语句又可以被添加到由登录 shell 读取的文件中,作用于特定的 shell 用户。

02. 命令格式

用法:ulimit [-SHacdefilmnpqrstuvx] [限制]

03. 常用选项

选项:-S        使用 `soft'(软)资源限制-H        使用 `hard'(硬)资源限制-a        所有当前限制都被报告-b        套接字缓存尺寸-c        创建的核文件的最大尺寸-d        一个进程的数据区的最大尺寸-e        最高的调度优先级(`nice')-f        有 shell 及其子进程可以写的最大文件尺寸-i        最多的可以挂起的信号数-l        一个进程可以锁定的最大内存尺寸-m        最大的内存进驻尺寸-n        最多的打开的文件描述符个数-p        管道缓冲区尺寸-q        POSIX 信息队列的最大字节数-r        实时调度的最大优先级-s        最大栈尺寸-t        最大的CPU时间,以秒为单位-u        最大用户进程数-v        虚拟内存尺寸-x        最大的锁数量

04. 参考示例

4.1 显示系统资源的限制

[deng@localhost ~]$ 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) 7806
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
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) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[deng@localhost ~]$
core file size          (blocks, -c) 0           #core文件的最大值为100 blocks。
data seg size           (kbytes, -d) unlimited   #进程的数据段可以任意大。
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited   #文件可以任意大。
pending signals                 (-i) 98304       #最多有98304个待处理的信号。
max locked memory       (kbytes, -l) 32          #一个任务锁住的物理内存的最大值为32KB。
max memory size         (kbytes, -m) unlimited   #一个任务的常驻物理内存的最大值。
open files                      (-n) 1024        #一个任务最多可以同时打开1024的文件。
pipe size            (512 bytes, -p) 8           #管道的最大空间为4096字节。
POSIX message queues     (bytes, -q) 819200      #POSIX的消息队列的最大值为819200字节。
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240       #进程的栈的最大值为10240字节。
cpu time               (seconds, -t) unlimited   #进程使用的CPU时间。
max user processes              (-u) 98304       #当前用户同时打开的进程(包括线程)的最大个数为98304。
virtual memory          (kbytes, -v) unlimited   #没有限制进程的最大地址空间。
file locks                      (-x) unlimited   #所能锁住的文件的最大个数没有限制。

4.2 设置单一用户程序数目上限

[deng@localhost ~]$ ulimit -u 500
[deng@localhost ~]$

4.3 将每个进程可以打开的文件数目加大到4096

[root@localhost ~]# ulimit -n 4096
[root@localhost ~]#

4.4 指定可使用的虚拟内存上限为12000KB

[root@localhost ~]# ulimit -v 12000
[root@localhost ~]#

4.5 指定CPU使用时间的上限为4s

[root@localhost ~]# ulimit -t 4

4.6 单独显示CPU使用事件上限值

[root@localhost ~]# ulimit  -t
4
[root@localhost ~]#

4.7 指定CPU使用的时间无限制

[root@localhost ~]# ulimit -t unlimited
[root@localhost ~]#

05. 总结

06. 附录

参考:【Linux】一步一步学Linux系列教程汇总

【Linux】一步一步学Linux——ulimit命令(218)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. linux下的软硬资源限制,关于ulimit命令修改软硬资源大小说明及正确修改软硬资源限制数配置...

    近来,同事做了一些CentOS的优化,用于部署线上服务,问我修改了软硬资源进程数限制,为什么重启后没生效.我说配置写到配置文件里,是可以生效的啊.于是,检查了下他系统的优化配置,发现他修改进程数限制配 ...

  6. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  7. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  8. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  9. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

最新文章

  1. Ajax——从服务器获取各种文件
  2. 解决修改“文件夹选项”后仍不能显示隐藏文件一例
  3. JS表格分页(封装版)
  4. Tomcat startup.bat 原理分析
  5. url能访问但new file()找不到文件_Go Web编程给自己写的服务器添加错误和访问日志...
  6. java二叉树 最大值_leetcode刷题笔记-654. 最大二叉树(java实现)
  7. websockets_使用Java WebSockets,JSR 356和JSON映射到POJO的
  8. echart 饼图每一块间隙_排队3h?为了火遍tou音的芝士水果饼,值得吗?!
  9. Windwos命令工作笔记002---windows下tree命令列出文件目录打印到文件中_过滤文件不知道怎么做啊
  10. Gradle2.0用户指南翻译——第二章. 概述
  11. 去除移动端alert/confirm的网址(url)
  12. 日常中的迅捷PDF转换器
  13. environment-modules安装配置
  14. 电脑主板线路连接图解_台式机电源线接法图解(电脑主板接线图解高清
  15. 如何全面欣赏一场时装秀?
  16. [七夕节]——一款基于canvas绘制五颜六色线条合成一个爱心发光动画特效
  17. java零项目经验,找工作前该如何准备项目?面试时又该怎么说?
  18. 【LeetCode每日一题】——1042.不邻接植花
  19. 用二叉树表示家谱关系并实现各种查找功能
  20. PHP中mq是什么,MQ是什么

热门文章

  1. 风影ASP.NET基础教学 3 web服务器控件(二)
  2. 用CSS的 filter 来轻松实现图层半透明
  3. 华为升级鸿蒙体验,华为鸿蒙 HarmonyOS 2.0 发布,教你如何升级体验
  4. 6-3 两个有序链表序列的合并
  5. 7-4 递增序列 (15 分)
  6. Java黑皮书课后题第4章:4.22(检测子串)编写一个程序,提示用户输入两个字符串,检测第二个字符串是否是第一个字符串的子串
  7. 洛谷P3195 [HNOI2008]玩具装箱TOY
  8. 名称空间与作用域、闭包函数、 装饰器
  9. hdu 2586(LCA的离线做法)
  10. HTML5 Placeholder实现input背景文字提示效果