Linux资源管理命令ulimit详解

在Linux中,ulimit为shell内建指令,可用来控制shell执行程序的资源。Linux系统打开文件描述符的最大值默认为1024,对一台繁忙的服务器来说偏小,所以有必要重新设置。

语法

参数说明

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

系统调优

  1. Linux针对每个用户有限制其最大进程数,为提高性能,可以根据设备资源情况,设置用户的最大进程数。
  2. 对于需要做许多socket连接并使它们处于打开状态的Java应用程序而言,建议修改每个进程可打开的文件数。

临时调整

平时最常见的优化调整是(根据实际情况调整数值):

  • 最大进程数:ulimit -u 8192
  • 最大文件数:ulimit -n 4096

其他建议设置成无限制(unlimited)的一些重要设置是:

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

永久生效

以上都只是临时设置会话期间的资源限制,若要使设置永久生效,须修改用户资源文件。

修改/etc/security/limits.conf设置Linux系统的最大进程数和最大文件打开数限制:

修改/etc/profile设置用户环境变量:

修改/etc/sysctl.conf设置系统资源限制(执行“sysctl -p”使生效):

原创文章禁止转载:技术学堂 » Linux资源管理命令ulimit详解

精彩评论

3+7=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏