前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux ulimit 性能调优

Linux ulimit 性能调优

作者头像
阳光岛主
发布2019-02-19 11:39:14
2.5K0
发布2019-02-19 11:39:14
举报
文章被收录于专栏:米扑专栏米扑专栏

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年03月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档