存在的记忆 - php优化
type: channel
link: https://www.looaon.com/index.php/tag/php优化/
items: 修改linux 最大文件限制数 ulimit

修改linux 最大文件限制数 ulimit
type: item
date: 2019-10-23T11:43:00+08:00
description: php 近期总是会偶尔出现拒绝访问资源不够，测试参数 ulimit 1）修改当前交互终端的limit值 查询当前终端的文件句柄数： ulimit -n 回车，一般的系统默认的1024. 修改文件句柄数为65535，ulimit -n 65535.此时系统的文件句柄数为65535. 2）将ulimit 值添加到/etc/profile文件中（适用于有root权限登录的系统） 为了每次系统重新启动时，都可以获取更大的ulimit值，将ulimit 加入到/etc/profile 文件底部。echo ulimit -n 65535 >>/etc/profile source /etc/profile #加载修改后的profile ulimit -n #显示65535，修改完毕！ 3)OK，好多朋友都以为大功告成了，可以突然发现自己再次登录进来的时候，ulimit的值还是1024，这是为什么呢？ 关键的原因是你登录的用户是什么身份，是不是root用户，由于服务器的root用户权限很大，一般是不能用来登录的，都是通过自己本人的登录权限进行登录，并通过sudo方式切换到root用户下进行工作。 用户登录的时候执行sh脚本的顺序：/etc/profile.d/file /etc/profile /etc/bashrc /mingjie/.bashrc /mingjie/.bash_profile 由于ulimit -n的脚本命令加载在第二部分，用户登录时由于权限原因在第二步还不能完成ulimit的修改，所以ulimit的值还是系统默认的1024。 解决办法： 修改linux的软硬件限制文件/etc/security/limits.conf. 在文件尾部添加如下代码：* soft nofile 10240 * hard nofile 10240 4)经过以上修改，在有些系统中，用一般用户再登陆，仍然没有修改过来，那么需要检查是否有如下文件，如果没有，则要添加如下内容：# vim /etc/pam.d/sshd [Add the line] session required /lib/security/pam_limits.so # service sshd restart 5）如果仍然不行，那么需要修改如下文件：# vim /etc/ssh/sshd_config [May need to modify or add the line] UsePrivilegeSeparation no