ulimit命令用来限制系统用户对shell资源的访问(设置Linux文件打开数)

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

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

语法:

ulimit (选项)

选项:

-a:显示目前资源限制的设定;
-c :设定core文件的最大值,单位为区块; 
-d <数据节区大小>:程序数据节区的最大值,单位为KB; 
-f <文件大小>:shell所能建立的最大文件,单位为区块; 
-H:设定资源的硬性限制,也就是管理员所设下的限制; 
-m <内存大小>:指定可使用内存的上限,单位为KB; 
-n <文件数目>:指定同一时间最多可开启的文件数; 
-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节; 
-s <堆叠大小>:指定堆叠的上限,单位为KB; 
-S:设定资源的弹性限制; 
-t :指定CPU使用时间的上限,单位为秒; 
-u <程序数目>:用户最多可开启的程序数目; 
-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。

实例:

[[email protected] ~]# ulimit -a
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) 3794         #最多有98304个待处理的信号。
max locked memory         (kbytes, -l) 64           #一个任务锁住的物理内存的最大值为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) 1024         #当前用户同时打开的进程(包括线程)的最大个数为98304。
virtual memory          (kbytes, -v) unlimited    #没有限制进程的最大地址空间。
file locks                  (-x) unlimited    #所能锁住的文件的最大个数没有限制。

Linux默认的文件打开数是1024,现在设置打开数为2048.

[[email protected] ~]# ulimit -n        --查看打开数为1024
1024
[[email protected] ~]# ulimit -n 2048   --设置打开数为2048
[[email protected] ~]# ulimit -n        --再次查看
2048

时间: 2024-10-15 23:04:24

ulimit命令用来限制系统用户对shell资源的访问(设置Linux文件打开数)的相关文章

解除 Linux 系统的最大进程数和最大文件打开数限制

ulimit用于shell启动进程所占用的资源 1.类别: shell内建命令 2.语法格式: ulimit [-acdfHlmnpsStvw] [size] 3.参数介绍: -H 设置硬件资源限制. -S 设置软件资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创建文件的最大值.单位:blocks -l size:设置在内存中锁定进程的最大值.单位:kbytes

普通用户之间的ssh无密码访问设置方法

两台CentOS6.2服务器,客户端是node1,服务器是node2,先都用root用户配置,方法如下: 第一步:在客户端Node1:生成密匙对,我用的是rsa的密钥.使用命令 "ssh-keygen -t rsa" 生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了.接着会提示输入一个不同于你的password的密码,直接回车,让它空着. 其中公共密钥保存在 ~/.ssh/id_rsa.pub私有密钥保存在 ~/.ssh/id_rsa 之后把这个密钥对中的公共密钥复制到你

ulimit命令学习

通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值.那么应该在哪里设置呢? 最正确的做法是在/etc/security/limits.conf里设置: [[email protected] security]# ulimit -a core file size          (blocks, -c) 0 data seg size           (k

从ulimit命令看socket的限制

在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页. 其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量. 查看方法 我们可以用ulimit -a来查看所有限制值 [[email protected] ~]# ulimit -acore file size        

ulimit 命令详解

Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制. 下面我把某linux用户的最大进程数设为10000个: ulimit -u 10240 对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言, 最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024. ulimit -n 4096 将每个进程可以打开的文件数目加大到

Linux 调优方案, 修改最大连接数(ulimit命令)【转】

转自:http://blog.csdn.net/liangxiaozhang/article/details/8363435 Linux对于每个用户,系统限制其最大进程数.为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制.下面我把某linux用户的最大进程数设为10000个:ulimit -u 10240对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,最好通过使用 ulimit -n x

Linux ulimit 命令

该命令用来限制系统用户对系统资源的使用,常见用法如下: 命令参数: -a # 显示当前所有的资源限制 -b -c # 限制core文件的大小,以 blocks 为单位,当程序崩溃时便会产生core文件,core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主要用于对程序进行调试.如 ulimit -c 4194304 表示限制core文件最大为2G -d # 限制进程的数据段的大小,以 Kbytes 为单位,也就是存放进程中已初始化的全局变量的一块内存区域的大小.如 ulimit -

Linux文件服务器实战(系统用户)

ftp匿名用户设置完成之后任何人都可以访问服务器端文件,目录,甚至可以修改删除文件和目录,,那如何存放私密文件并保证文件或者目录专属于拥有者呢,就需要使用vsftp系统用户来实现了. 1.在linux系统创建多个用户(useradd)并给用户设置密码 [[email protected] ~]# useradd xj1 [[email protected] ~]# useradd xj2 [[email protected] ~]# echo 123456|passwd --stdin xj1

linux系统如何更改字符集的支持,解决Linux中文显示乱码使centos显示中文

linux系统如何更改字符集的支持 怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的.咗嚛本经验以centos为例,操作Linux怎么查看语言,设置修改语言 主要是更改/etc/locale.conf文件.centos7之前的版本的配置文件为:/etc/sysconfig/i18n 查看当前系统语言 登陆linux系统打开操作终端之后,输入