Linux ulimit 性能调优

标签: linux ulimit 性能调优 | 发表时间:2013-03-20 23:13 | 作者:sunboy_2050
出处:http://blog.csdn.net

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改善系统性能


作者:sunboy_2050 发表于2013-3-20 23:13:52 原文链接
阅读:106 评论:0 查看评论

相关 [linux ulimit 性能调优] 推荐:

Linux ulimit 性能调优

- - CSDN博客编程语言推荐文章
ulimit 用于shell启动进程所占用的资源,是shell内建命令. 功能说明: 控制shell程序的资源. 补充说明: ulimit为shell内建指令,可用来控制shell执行程序的资源. 语法格式:  ulimit  [-acdfHlmnpsStvw]  [size]. -a   显示目前资源限制的设定.

Linux常用性能调优工具索引

- - 系统技术非业余研究
原创文章,转载请注明: 转载自 系统技术非业余研究. Linux常用性能调优工具索引. 前段时间看到brendangregg的 Linux Performance Analysis and Tools PPT里面提到Linux常用性能调优工具, 见下图:. 其中提到了的工具,大部分我之前有推荐过或者在实践的案例里面使用过,这里方便大家索引下:.

(转)针对MySQL的Linux性能调优技巧[翻译]

- - jackyrong
原文作者: Alexander Rubin,Percona 工程师. 原文连接:Linux performance tuning tips for MySQL. 为了方面阅读,我没依照原文按行逐句的进行翻译. 另外,我自己的扩充了一下基础知识点,很多知识点也是我第一次去学习,翻阅了一些资料. 原文中对Linux系统参数的优化主要分为文件系统、内存与swap、CPU三方面.

有效修改ulimit设置

- - 素包子
有时候默认的系统最大文件打开数量不够大,需要设置下,如果希望永久生效,就修改/etc/security/limits.conf,然后加入以下内容,退出再重新登陆即可. 另外在/etc/rc.sysinit里加入ulimit -n 65535也可以,需要重启系统. 还可以在/etc/sysconfig/init里写入HARD_LIMIT_NOFILE=65535,我猜也要重启.

HBase性能调优

- - 学着站在巨人的肩膀上
我们经常看到一些文章吹嘘某产品如何如何快,如何如何强,而自己测试时却不如描述的一些数据. 其实原因可能在于你还不是真正理解其内部结构,对于其性能调优方法不够了解. 本文转自TaoBao的Ken Wu同学的博客,是目前看到比较完整的HBase调优文章. 原文链接:HBase性能调优. 因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.

hbase性能调优

- - 数据库 - ITeye博客
   1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好.

Hadoop性能调优

- - 开源软件 - ITeye博客
是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息. 对几个map或reduce进行profiling. 非常影响速度,建议在小数据量上尝试. 1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数. reuse的时候,map结束时不会释放内存.

MapReduce - 性能调优

- - CSDN博客云计算推荐文章
        Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优.         对于一大批MapReduce程序,如果可以设置一个Combiner,那么对于提高作业性能是十分有帮助的. Combiner可减少Map Task中间输出的结果,从而减少各个Reduce Task的远程拷贝数据量,最终表现为Map Task和Reduce Task执行时间缩短.

Java 性能调优

- - 编程语言 - ITeye博客
1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.

Spark性能调优

- - zzm
通常我们对一个系统进行性能优化无怪乎两个步骤——性能监控和参数调整,本文主要分享的也是这两方面内容. Spark提供了一些基本的Web监控页面,对于日常监控十分有用. http://master:4040(默认端口是4040,可以通过spark.ui.port修改)可获得这些信息:(1)stages和tasks调度情况;(2)RDD大小及内存使用;(3)系统环境信息;(4)正在执行的executor信息.