你的位置:首页 > 互联网IT
linux,CentOS流量一大连接超时,连接多超时,链接超时,连接超时,用户连接多一多就超时,超时,系统优化
连接多超时,超时连接,用户多超时,连接无响应
系统:CentOS
解问题:连接超时,超时
原理:新装的linux默认只有1024,连接多于1024就会超时,修改更大解决:65535
方法:
CentOS
在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
重启:reboot
临时启动,但重启后就无效了
ulimit -n 65535
以下转载互联网:
关于 ulimit -SHn 65535
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三种修改方式:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
3.在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
具体使用哪种,试试哪种有效吧,我在 CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果
最近,网站一到高峰期,CPU就会飙升到100%,但内存,IO,网络等一切正常,Google了一下,有可能是ulimit的问题,马上查看文件句柄数限制
ulimit -n
得到的结果是:1024,这个值对生产中的服务显得偏小。
网上给出的解决方案,大部分是直接输入
ulimit -SHn 51200 # 51200可自己根据应用调整
此法缺点很明显,一旦退出登陆,设置就失效了。
也有说直接把该命令写到/etc/rc.d/rc.local中的,今天找到一个正确的做法
1.打开/etc/security/limits.conf,里面有很详细的注释,找到如下设置(如果没有就插入)
* soft nofile 51200
* hard nofile 51200
2.编辑/etc/pam.d/common-session,加入一行
session required pam_limits.so
3.编辑/etc/profile,加入
ulimit -SHn 51200
重启服务器,再次登陆,查看句柄数,已经正确设置为51200。
如果有碰到类似情况,可以检查一下看看是不是文件句柄数设置太小引起的。
对于nginx中有二种改法:
1.nginx配置级别:
user www www;
worker_processes 4;
worker_rlimit_nofile 65535;
error_log logs/nginx_error.log crit;
events
{undefined
use epoll;
worker_connections 10240;
}
2.系统级别:
vi /etc/security/limits.conf
...
* soft nofile 65535
*hard nofile 65535
ulimit -n
65535
############################
先说解决方案:
sudo vi /etc/pam.d/su
增加pam_limits.so模块引用
session required pam_limits.so
而后设置账号对应的打开文件数限制,建议为 * (所有账户)
编辑 sudo vi /etc/security/limits.conf 文件
* soft nofile 4084
* hard nofile 4084
ok了,reboot一下吧,然后通过 ulimit -a 就能看到生效了
发表评论: