文档章节

ulimit命令详解

Rhys_Lee
 Rhys_Lee
发布于 04/16 09:00
字数 809
阅读 247
收藏 7

ulimit用来限制每个用户可使用的资源,如CPU、内存、句柄等。下面以CentOS 6.5为例进行总结。

1 查看ulimit

命令格式:

ulimit [-SHacdefilmnpqrstuvx]
  • 参数S:表示软限制,当超过限制值会报警
  • 参数H:表示硬限制,必定不能超过限制值
  • 参数a:将列出所有资源限制,如:

输入图片说明

  • 参数c:当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用),这种文件就被称为核心文件(core file)。此为限制每个核心文件的最大容量
  • 参数d:每个进程数据段的最大值
  • 参数f:当前shell可创建的最大文件容量
  • 参数l:可以锁定的物理内存的最大值
  • 参数m:可以使用的常驻内存的最大值
  • 参数n:每个进程可以同时打开的最大文件句柄数
  • 参数p:管道的最大值
  • 参数s:堆栈的最大值
  • 参数t:每个进程可以使用CPU的最大时间
  • 参数u:每个用户运行的最大进程并发数
  • 参数v:当前shell可使用的最大虚拟内存

2 修改ulimit

命令格式:

ulimit [-SHcdefilmnpqrstuvx] [limit]

在查看的命令后面加上限制值,就可以调整某一项限制,但只对当前登录shell有效。

参数S表示设置软限制;参数H表示设置硬限制;当都不指定时,表示设置软限制和硬限制均为指定值。

3 永久修改ulimit

所谓永久,是指每次登陆shell时,都会按配置重新设定ulimit,以达到永久生效的效果。

  • 步骤一:修改/etc/security/limits.conf

添加如下内容:

关于该文件的配置方式请参考后文

[root@CentOS646506 ~]# vim /etc/security/limits.conf
* hard nproc 64000
* soft nproc 64000
* hard nofile 64000
* soft nofile 64000

以上内容表示,将-u-n的软限制和硬限制同时修改为64000。

  • 步骤二:修改/etc/pam.d/login

添加如下内容:

[root@CentOS646506 ~]# vim /etc/pam.d/login
session required pam_limits.so

以上内容表示,在登录时使用pam管理limit

  • 步骤三:修改/etc/profile

添加如下内容

[root@CentOS646506 ~]# vim /etc/profile
ulimit -u 64000
ulimit -n 64000

每次登陆shell后,会初始执行这两条ulimit命令,并使其生效。

  • 使配置生效

重新登录或使用source /etc/profile立即生效。

source使当前shell对指定文件内容生效。

3.1 /etc/security/limits.conf配置详解

格式:

<domain> <type> <item> <value>
  • domain 是指生效实体
    • 用户名
    • 也可以通过@group指定用户组
    • 使用*表示默认值
  • type指限制类型
    • soft软限制
    • hard硬限制
  • item限制资源
    • coreulimit -c
    • dataulimit -d
    • fsizeulimit -f
    • memloculimit -l
    • nofileulimit -n
    • stackulimit -s
    • cpuulimit -t
    • nproculimit -u
    • maxlogins指定用户可以同时登陆的数量
    • maxsyslogins系统可以同时登陆的用户数
    • priority用户进程运行的优先级
    • locks用户可以锁定的文件最大值
    • sigpengdingulimit -i
    • msgqueueulimit -q

© 著作权归作者所有

共有 人打赏支持
Rhys_Lee

Rhys_Lee

粉丝 8
博文 7
码字总数 7815
作品 0
西城
高级程序员
私信 提问
Linux用户资源限制-ulimit

如果你的linux用户跑了很多程序,java进程等等,就有可能出现如下问题: There is insufficient memory for the Java Runtime Environment to continue. Cannot create GC thread. Out of s...

cjun1990
2016/10/20
40
0
Linux命令详解:ulimit命令,limits.conf文件

一、概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。...

翻船全靠浪
2016/05/31
6
0
LNMP 运维味道

购买域名,备案(可选),域名绑定DNS地址,DNS地址解析域名,指定IP地址,购买VPS,获取IP地址,部署WEB网站到VPS,这里用的WEB网站使用lnmpWEB环境! 具体步骤详解不诉说,这里之讲解运维部...

slagga
2016/07/29
31
0
[linux]fork、source、exec、ulimit

exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。 bash shell的命令分为两类:外部命令和内部命令【type -a command 查...

SibylY
2016/04/15
33
0
Segment fault及LINUX core dump详解

C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况: (1)数组越界。 (2)修改了只读内存。 (3)scanf("%d",n),n不是指针。 …… 1. 前言:...

Sean-x
2016/03/21
110
0

没有更多内容

加载失败,请刷新页面

加载更多

Caffe(二)-Python-自定义网络

这里我们用一个例子先来体验一下 首先定义一下我们的环境变量 $PYTHONPATH,我这儿是Windows开发环境,至于Windows Caffe怎么编译由读者自己下去搞定 我使用的控制台是 Windows PowerShell 添...

Pulsar-V
27分钟前
2
0
ActiveMQ从入门到精通(二)之可靠性机制

ActiveMQ的可靠性机制 缘由( 确认JMS消息) 只要消息被确认之后,才认为消息被成功消费了。消息的成功消费包括三个阶段:客户端接收消息、客户端处理消息以及客户端确认消息。在事务性会话中...

一看就喷亏的小猿
35分钟前
0
0
源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
59分钟前
7
0
IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
今天
5
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部