专栏首页运维经验分享/etc/security/limits.conf的相关说明

/etc/security/limits.conf的相关说明

通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?

最正确的做法是在/etc/security/limits.conf里设置:

[root@localhost security]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30518
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost security]# ulimit -n 10240
[root@localhost security]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 30518
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost security]1. 命令用法

命   令:ulimit 功   能:控制shell程序的资源 语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大 小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆栈大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]      补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。      参  数:  -a  显示目前资源限制的设定。       -c <core文件上限>  设定core文件的最大值,单位为区块。       -d <数据节区大小>  程序数据节区的最大值,单位为KB。       -f <文件大小>  shell所能建立的最大文件,单位为区块。       -H  设定资源的硬性限制,也就是管理员所设下的限制。       -m <内存大小>  指定可使用内存的上限,单位为KB。       -n <文件数目>  指定同一时间最多可打开的文件数。       -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。       -s <堆栈大小>  指定堆叠的上限,单位为KB。       -S  设定资源的弹性限制。       -t <CPU时间>  指定CPU使用时间的上限,单位为秒。       -u <进程数目>  用户最多可启动的进程数目。      -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。 2. 系统调优

    如前所述, ulimit -a 用来显示当前的各种用户进程限制。      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       暂时地,适用于通过 ulimit 命令登录 shell 会话期间。      永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:  1) 解除 Linux 系统的最大进程数和最大文件打开数限制:         vi /etc/security/limits.conf         # 添加如下的行         * soft noproc 11000         * hard noproc 11000         * soft nofile 4100         * hard nofile 4100         说明:* 代表针对所有用户             noproc 是代表最大进程数             nofile 是代表最大文件打开数  2) 让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:         a、vi /etc/ssh/sshd_config               把 UserLogin 的值改为 yes,并把 # 注释去掉         b、重启 sshd 服务:               /etc/init.d/sshd restart 3) 修改所有 linux 用户的环境变量文件: vi /etc/profile  ulimit -u 10000 ulimit -n 4096 ulimit -d unlimited  ulimit -m unlimited  ulimit -s unlimited  ulimit -t unlimited  ulimit -v unlimited  /************************************** 有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。 修改2个文件。 1) /etc/security/limits.conf vi /etc/security/limits.conf 加上: * soft nofile 8192 * hard nofile 20480 2) /etc/pam.d/login session required /lib/security/pam_limits.so ********** 另外确保/etc/pam.d/system-auth文件有下面内容 session required /lib/security/$ISA/pam_limits.so 这一行确保系统会执行这个限制。 *********** 3) 一般用户的.bash_profile #ulimit -n 1024 重新登陆ok 3. /proc目录: 1)/proc目录里面包括很多系统当前状态的参数,例如:引用 /proc/sys/fs/file-max /proc/sys/fs/inode-max

是对整个系统的限制,并不是针对用户的; 2)proc目录中的值可以进行动态的设置,若希望永久生效,可以修改/etc/sysctl.conf文件,并使用下面的命令确认:

# sysctl -p

例如增加:

引用 fs.file-max=xxx fs.inode-max=xxx

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mongodb报错:connection refused because too many open connections: 819

    如果调大了maxConns,还是出现 too many open connections 的报错,也可能跟系统的ulimit限制有关。

    拓荒者
  • [Warning] Changed limits: max_open_files: 5000 (requested 20480)

    摘要: 提出出现在 CentOS 7 ulimit 配置没有问题的情况下mysql日志提示 Warning # ulimit -Sa | grep "open ...

    拓荒者
  • 解决Zabbix 4.2 图表字体显示为方块的方法

    因Zabbix使用的DejaVuSan.ttf字体,不支持中文,导致中文出现乱码,它的位置为:/etc/alternatives/zabbix-web-font...

    拓荒者
  • ulimit命令详解

    ulimit用来限制每个用户可使用的资源,如CPU、内存、句柄等。下面以CentOS 6.5为例进行总结。

    用户5807183
  • 算法之路----排序算法(上)

    排序算法在各种语言中都有已经封装好的API可使用了。但是排序算法内部怎么实现的?有哪些常用的排序算法我们还是需要了解一下的。

    Haley_Wong
  • 触摸屏工作原理

    类似可变电阻,当可变电阻的两端接一个正电压V+,另一端接地,当调整电阻值后,测量调整点与接地端的电压值,然后根据欧姆定律,计算出调整点与接地点的电压值。

    morixinguan
  • 浅谈 Linux下的零拷贝机制

    tomas家的小拨浪鼓
  • 熊市应该干什么?

    大熊市,币价跌跌不休。很多人已经懒的看价格了,更懒的聊币圈投资了,很多微信群也成了死群,更多的人就该干啥干啥了,等牛市来了再说。

    凌帅出口
  • 对于"矩阵连乘问题"的一点想法

    在算法设计的学习中,每到“动态规划”一节,一般都会涉及到“矩阵连乘”问题(例如《Algorithms》,中文译名《算法概论》),可想而知该题的经典程度 :)

    用户2615200
  • 自选股 : 微信小程序深度漫游指南

    微信最近又发布了一些小程序的新能力 ,同时向个人开发者开放注册。预期又会有一些开发者开始投入小程序的怀抱。本文分享的是较早加入小程序阵营的自选股团队的经验分享,...

    窦宁

扫码关注云+社区

领取腾讯云代金券