Linux ulimit 性能调优

ulimit 用于shell启动进程所占用的资源,是shell内建命令。


功能说明: 控制shell程序的资源。 
补充说明: ulimit为shell内建指令,可用来控制shell执行程序的资源。 
语法格式:   ulimit  [-acdfHlmnpsStvw]  [size]

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


应用实例:

在Linux下写程序的时候,如果程序比较大,经常会遇到“段错误” (segmentation fault)这样的问题主要就是由于Linux系统初始的堆栈大小(stack size)太小的缘故,一般为10M。一般把stack size设置成256M,这样就没有段错误了!命令为:

ulimit   -s 262140

如果要系统自动记住这个配置,就编辑/etc/profile文件,在 “ulimit -S -c 0 > /dev/null 2>&1”行下,添加“ulimit   -s 262140”,保存重启系统就可以了

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:

ulimit -u 10000

对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
其他建议设置成无限制(unlimited)的一些重要设置是:

数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited

core - 限制内核文件的大小 
  何谓core文件,当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。 core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。 
 
nofile -打开文件的最大数目 
  对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用 ulimit –n,或者通过设置nofile 参数,为用户把文件描述符的数量设置得比默认值高一些



参考推荐:

linux ulimit调优

通过ulimit改善系统性能

poor man's profiler


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值