首页 > 系统相关 >正确配置Linux系统ulimit值的方法

正确配置Linux系统ulimit值的方法

时间:2022-09-03 20:56:42浏览次数:97  
标签:限制 正确 ulimit 句柄 修改 Linux size

正确配置Linux系统ulimit值的方法 - 爱开卷360 - 博客园  https://www.cnblogs.com/ibook360/archive/2012/05/11/2495405.html

在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进nginx+apache篇。

查看方法

我们可以用ulimit -a来查看所有限制值
[root@centos5 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 4096
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited||<

其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目)。这个值可用ulimit命令来修改,但ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效(在布署Nginx+FastCGI我就遇到这个问题,将ulimit -SHn 65535放到/etc/rc.d/rc.local也没起什么作用)

系统总限制是在这里,/proc/sys/fs/file-max。可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制。

另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量。

查找文件句柄问题的时候,还有一个很实用的程序lsof。可以很方便看到某个进程开了那些句柄,也可以看到某个文件/目录被什么进程占用了。

修改方法
若要令修改ulimits的数值永久生效,则必须修改配置文档,可以给ulimit修改命令放入/etc/profile里面,这个方法实在是不方便,还有一个方法是修改/etc/sysctl.conf。我修改了,测试过,但对用户的ulimits -a 是不会改变的,只是/proc/sys/fs/file-max的值变了。

我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如
* soft   nofile   32768
* hard nofile 65536
就可以将文件句柄限制统一改成软32768,硬65536。配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制。

注意:这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning;其实ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软
默认显示的是软限制,如果运行ulimit命令修改的时候没有加上的话,就是两个参数一起改变。

生效
因为我平时工作最多的是部署web环境(Nginx+FastCGI外网生产环境和内网开发环境),重新登陆即可(reboot其实也行)我分别用root和www用户登陆,用ulimit -a分别查看确认,做这之前最好是重启下ssh服务,service sshd restart。

标签:限制,正确,ulimit,句柄,修改,Linux,size
From: https://www.cnblogs.com/jmbt/p/16653618.html

相关文章

  • ulimit限制之nproc问题
    ulimit限制之nproc问题|系统技术非业余研究 http://blog.yufeng.info/archives/2568前两天微博上的@王关胜同学问了个问题:#ulimit问题#关于nproc设置:centos6,内核版......
  • 正确配置Linux系统ulimit/nproc值的方法
    正确配置Linux系统ulimit/nproc值的方法_wkwanglei的博客-CSDN博客_linuxnproc https://blog.csdn.net/wkwanglei/article/details/44199891在Linux下面部署应用的时候......
  • Linux top命令的用法详细详解
    Linuxtop命令的用法详细详解_xiaoL_clo的博客-CSDN博客_linuxtop命令的用法详细详解 https://blog.csdn.net/dxl342/article/details/53507673查看多核CPU命令mpstat......
  • linux市场常用的防火墙区别
    nftables新的包过滤工具目的是代替iptablesNetfilter是引入的一个子系统,作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制iptables是Linux应用......
  • linux挂载硬盘
    1查看硬盘fdisk-l 2查看目前硬盘挂载情况df-h 3格式化硬盘 mkfs.ext4/dev/xxx 4创建挂载点mkdir/data_dir1 5挂载硬盘mount/dev/xxx......
  • linux常用命令详解
    一、常用linux命令的基本使用命令对应英文作用lslist查看当前文件夹下的内容pwdprintworjdirectory查看当前所在文件夹cd[目录名]changedirectory......
  • [ Linux ] column 简明用法
    https://www.cnblogs.com/yeungchie/选项-c指定每一行输出的宽度。-t判断列来输出,对齐所有列。主要用到的就是这个选项。-s指定分隔符,默认为空白符。-o指定用于......
  • linux 下安装openjdk后,jps -ml 不启作用
    [root@node1jvm]#jps-bash:jps:commandnotfound其实安装这个命令也很简单,yum安装即可。先安装jdk,我安装的jdk8yuminstalljava-1.8.0-openjdk.x86_64安装完jdk8......
  • Linux 文件属性概说
    linux文件属性详细说明-张曼-博客园 https://www.cnblogs.com/Theladyflower/archive/2011/07/26/2117102.html1、Linux文件属性概说;Linux文件或目录的属性主......
  • linux grep命令详解
    linuxgrep命令详解-ggjucheng-博客园 https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html简介grep(globalsearchregularexpression(RE)and......