- 浏览: 4754379 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
bzhao:
你也应该可以这样:(not tested)./rbtunnel ...
在Bash脚本中怎么关闭文件描述符? -
bzhao:
如果有A进程原代码情况下,通过如下调用,把他的子进程继承关闭则 ...
在Bash脚本中怎么关闭文件描述符? -
Master-Gao:
楼主咋没分析下源码呢?
我使用过的Linux命令之dirname - 截取给定路径的目录部分 -
jiedushi:
tail -F 就可以吧
Linux下实时跟踪log4j日志文件的bash脚本 - 增强了tail -f的功能 -
java_is_new:
新手学习了,就是不明白为一个网卡配多个ip有什么用
我使用过的Linux命令之ifconfig - 网络配置命令
我使用过的Linux命令之ulimit - 在shell进程中限制系统资源
本文链接:http://codingstandards.iteye.com/blog/967718 (转载请注明出处)
用途说明
ulimit是一个shell内建命令,用于控制由shell启动的进程的可用资源(Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.)。对资源的限制分为两种,一种是硬性限制,一种是软性限制。硬性限制一旦设定就不能增加(A hard limit cannot be increased once it is set),而软性限制可以增加到硬性控制为止(a soft limit may be increased up to the value of the hard limit)。Linux系统可以对多种资源的使用进行限制,比如允许创建的文件数、允许打开的文件数、是否允许生成core等。要注意的是,该设置只对当前shell进程的子进程产生作用,并不会影响其他shell进程。
最初接触到这个命令,是在从事C/C++开发时经常会出现段错误、断言错误之类的,但是Linux操作系统中默认是不生成core文件的,所以无法确切的知道问题出现的位置。因此,通常的做法就是修改/etc/profile中的那个ulimit设置,如下所示:
ulimit -S -c 0 > /dev/null 2>&1
通常把允许生成的core文件的大小改成100M之类的,比如:
ulimit -S -c 100000000 > /dev/null 2>&1
PS: 由于本人理解的错误,-c的数值单位其实是blocks,一般是1K。具体block size是多少,与具体的文件系统有关,大伙可以参考本文后面列出的参考资料。
常用参数
使用示例
示例一 与ulimit有关的帮助信息
[root@node34 root]# type -a ulimit
ulimit is a shell builtin
[root@node34 root]# help ulimit
ulimit: ulimit [-SHacdflmnpstuv] [limit]
Ulimit provides control over the resources available to processes
started by the shell, on systems that allow such control. If an
option is given, it is interpreted as follows:
-S use the `soft' resource limit
-H use the `hard' resource limit
-a all current limits are reported
-c the maximum size of core files created
-d the maximum size of a process's data segment
-f the maximum size of files created by the shell
-l the maximum size a process may lock into memory
-m the maximum resident set size
-n the maximum number of open file descriptors
-p the pipe buffer size
-s the maximum stack size
-t the maximum amount of cpu time in seconds
-u the maximum number of user processes
-v the size of virtual memory
If LIMIT is given, it is the new value of the specified resource;
the special LIMIT values `soft', `hard', and `unlimited' stand for
the current soft limit, the current hard limit, and no limit, respectively.
Otherwise, the current value of the specified resource is printed.
If no option is given, then -f is assumed. Values are in 1024-byte
increments, except for -t, which is in seconds, -p, which is in
increments of 512 bytes, and -u, which is an unscaled number of
processes.
[root@node34 root]# cat /etc/security/limits.conf
# /etc/security/limits.conf
#
#Each line describes a limit for a user in the form:
#
#<domain> <type> <item> <value>
#
#Where:
#<domain> can be:
# - an user name
# - a group name, with @group syntax
# - the wildcard *, for default entry
#
#<type> can have the two values:
# - "soft" for enforcing the soft limits
# - "hard" for enforcing hard limits
#
#<item> can be one of the following:
# - core - limits the core file size (KB)
# - data - max data size (KB)
# - fsize - maximum filesize (KB)
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
# - cpu - max CPU time (MIN)
# - nproc - max number of processes
# - as - address space limit
# - maxlogins - max number of logins for this user
# - priority - the priority to run user process with
# - locks - max number of file locks the user can hold
#
#<domain> <type> <item> <value>
#
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4
# End of file
[root@node34 root]#
示例二 打印当前的资源限制
[root@node34 root]# ulimit -H -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 4
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 2048
virtual memory (kbytes, -v) unlimited
[root@node34 root]# ulimit -S -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 4
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 2048
virtual memory (kbytes, -v) unlimited
[root@node34 root]#
示例三 修改允许打开的文件数
[root@node34 root]# ulimit -n
1024
[root@node34 root]# ulimit -n 4096
[root@node34 root]# ulimit -n
4096
[root@node34 root]#
要永久修改,请参见后面的资料。
问题思考
相关资料
【1】developerWorks 中国 通过 ulimit 改善系统性能
http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/
【2】有意没思的专栏 linux修改ulimit应该注意的
http://blog.csdn.net/noizz/archive/2008/03/13/2177503.aspx
【3】走在路上的你。。。 查看linux blocksize 大小
http://blogold.chinaunix.net/u/11765/showart_235505.html
【4】好好学习,天天向上 解决linux打开文件数1024限制的解决办法
http://www.51testing.com/?uid-13956-action-viewspace-itemid-209988
【5】我家空间 Linux 用户进程可打开文件数 TCP连接数 限制修改
http://www.myhomespace.net/p/2010/11/528
发表评论
-
在Linux用tar归档压缩文件时忽略某些文件和目录
2013-02-01 10:19 17053在Linux下,常用tar对文 ... -
使用nmap扫描服务器端口的一次操作
2012-11-01 17:00 15139使用nmap扫描服务器端口的一次操作 本文来自:http ... -
我使用过的Linux命令之wget - ooo
2011-09-14 13:10 0我使用过的Linux命令之wg ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:53 9150简明 Vim 练级攻略 http://coolshell.c ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:49 1简明 Vim 练级攻略 http://coolshell.c ... -
我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
2011-08-29 13:18 12101我使用过的Linux命令之: ... -
我使用过的Linux命令之date - 显示、修改系统日期时间
2011-08-25 09:21 41985我使用过的Linux命令之da ... -
我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
2011-08-16 09:22 21831我使用过的Linux命令之declare - 声明shell变 ... -
我使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
2011-08-11 09:31 28829我使用过的Linux命令之alias - 设置命令的别名,让 ... -
我使用过的Linux命令之ar - 创建静态库.a文件
2011-08-08 10:40 51934我使用过的Linux命令之ar - 创建静态库.a文件 本 ... -
我使用过的Linux命令之crontab - 设置例行任务(类似于Windows中的任务计划)
2011-08-04 22:26 9752我使用过的Linux命令之crontab - 设置例行任务(类 ... -
我使用过的Linux命令之chmod - 改变文件/目录的访问权限
2011-08-03 21:33 10706我使用过的Linux命令之chmod - 改变文件/目录的访问 ... -
我使用过的Linux命令之export - 设置或显示环境变量
2011-08-02 19:55 25441我使用过的Linux命令之export - 设置或显示环境变量 ... -
我使用过的Linux命令之wc - 统计文件行数、单词数或字节数
2011-07-26 10:50 29019我使用过的Linux命令之wc - 统计文件行数、单词数或字节 ... -
我使用过的Linux命令之groupdel - 删除群组
2011-07-22 22:13 9693我使用过的Linux命令之gr ... -
我使用过的Linux命令之ifconfig - 网络配置命令
2011-07-21 20:43 60555我使用过的Linux命令之ifconfig - 网络配置命令 ... -
我使用过的Linux命令之ll - 列出文件/目录的详细信息
2011-07-20 21:22 7209我使用过的Linux命令之ll ... -
我使用过的Linux命令之mkdir - 创建目录
2011-07-20 20:58 13686我使用过的Linux命令之mkdir - 创建目录 本文链 ... -
我使用过的Linux命令之perror - 解释错误代码
2011-07-18 20:29 25081我使用过的Linux命令之perror - 解释错误代码 ... -
我使用过的Linux命令之ping - 测试与目标主机的连通性
2011-07-16 10:46 26615我使用过的Linux命令之ping - 测试与目标主机的连通性 ...
相关推荐
`ulimit` 是一个在 Linux 和其他类 Unix 操作系统中常用的命令行工具,用于设置或显示对当前 shell 进程及其子进程的资源限制。这些限制可以包括最大文件大小、最大核心文件大小、最大数据段大小、最大堆栈大小、...
例如,在图1中,通过`ulimit -f 20K`命令,当前shell进程被限制创建的最大文件大小为20KB。随后,尝试创建超过这个限制的文件(如`Yes`命令不断写入数据到`Test.txt`),系统会提示文件大小超出限制并终止写入操作。...
在Linux服务器管理中,确保系统资源的有效利用和稳定运行至关重要。有时,恶意或者无意的用户行为可能导致系统资源被过度消耗,比如通过创建大量子进程。这种情况可能会使服务器性能下降,甚至瘫痪。针对这一问题,...
- top命令显示当前系统中各个进程的资源占用情况; - useradd、userdel和usermod用于用户管理; - vlock锁定虚拟控制台; - w、who和whoami用于显示当前登录用户信息; - whois用于查询Whois数据库。 2. Linux系统...
为提高性能,可以根据设备资源情况,设置各linux用户的最大进程数,我们可以用ulimit来显示当前的各种用户进程限制。 ulimit为shell内建命令,可用来控制shell执行程序的资源。 语法格式:ulimit [参数] 常用参数...
此外,在 Solaris 系统中,ulimit 命令也可以用来调整用户进程的限制,例如使用 `ulimit -a` 命令可以显示当前的各种用户进程限制,并可以使用 `ulimit -n` 命令来修改每个进程可打开的文件数。 Linux 性能调优基本...
`ulimit` 是一个在 Linux 和 Unix 系统中常用的命令行工具,用于控制和限制 shell 的资源使用量。通过 `ulimit`,用户可以对进程进行一系列资源限制,如最大文件大小、最大内存使用量等。这对于优化系统性能、防止...
9. **用户资源限制**: `ulimit -a` - 列出当前用户所能使用的各种系统资源限制,如最大文件大小、打开文件数量等。 10. **已安装的模块(modules)**: `lsmod` - 显示当前Linux内核加载的所有模块。 11. **X Server...
若要增加这个限制,可以使用`ulimit -n <number>`命令,但需要注意,这只会改变当前shell会话的限制,不会持久化。 2. 软限制与硬限制: 用户可打开文件的限制分为软限制和硬限制。软限制是系统允许用户设置的上限...
在 Linux 操作系统中,Shell 命令是用户与操作系统交互的重要方式之一。掌握常用的 Shell 命令对于提高工作效率、解决实际问题至关重要。本文将详细介绍标题及描述中提及的一些关键知识点。 #### 一、目录与文件...
在Linux系统中,每个进程能够同时打开的文件数量是由系统设定的限制所控制的。文件句柄是操作系统为每一个打开的文件分配的唯一标识,它存储在主内存的一个特定区域,这个区域的大小决定了系统能同时处理多少个文件...
Shell是Linux和Unix系统中的一种命令解释器,它允许用户通过命令行接口与操作系统交互。在Shell中,内置命令是直接由Shell执行的,而无需启动新的进程,这使得它们比外部命令更快、更有效率。以下是主要的Shell内置...
《LINUX与UNIX SHELL编程指南》第24章主要探讨了SHELL的嵌入式命令,这些命令是直接在shell环境中内置的,而非存在于/bin或/usr/bin等系统目录下。由于它们直接由shell执行,因此执行速度相对较快。本章详细介绍了多...
这篇博文将主要探讨如何在Linux中限制文件大小,这对于管理和优化系统资源非常有用。在Linux环境中,我们经常会遇到需要控制文件大小的情况,例如为了防止日志文件过大、避免磁盘空间耗尽等问题。 首先,我们需要...
ulimit命令用于控制shell进程及其子进程可以使用的资源。其中,-c选项用于限制Core Dump文件的大小,比如ulimit -c 0表示禁止生成Core Dump文件。-c unlimited则允许无限大小的Core Dump文件生成。 /etc/profile 和...
6. **进程管理**:讲解如何在shell中启动、监控和控制进程,包括后台运行(&)、进程ID(PID)、父进程与子进程的关系,以及kill命令的使用。 7. **shell扩展**:介绍高级特性,如数组、brace expansion、process ...
5. ulimit 命令:ulimit 命令用于控制系统资源在 shell 和进程上的分配量,可以管理重度使用和存在性能问题的系统。 6. w 命令:w 命令提供当前登录的用户及其正在执行的进程的信息,显示信息头包含信息,如当前时间...
在Linux操作系统中,资源限制是管理和优化系统性能的关键部分,特别是在多用户和多任务环境中。资源限制可以帮助防止系统崩溃、避免资源耗尽以及确保服务的稳定性。本文将深入探讨Linux下的资源限制,尤其是用户层面...
- **top**/ **htop**:查看系统资源使用情况。 - **ps**:显示进程信息。 4. **文件和目录操作**: - **touch**:创建空文件或更新文件的时间戳。 - **ln**:创建硬链接或符号链接。 - **cat**/ **more**/ **...