文档章节

修改 Ubuntu ulimit 限制

今幕明
 今幕明
发布于 2014/06/23 11:55
字数 393
阅读 3678
收藏 3

最近,网站一到高峰期,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

{

  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 就能看到生效了



本文转载自:http://hi.baidu.com/lihang_net/item/e93c9b0368cdb7f4f45ba6e6

共有 人打赏支持
今幕明
粉丝 46
博文 224
码字总数 39350
作品 0
朝阳
程序员
私信 提问
加载中

评论(4)

今幕明
今幕明

引用来自“appjack”的评论

我已试,CentOS改完,ssh重新登录就好,无需重启。最近服务器CPUY有时候也会标高,不知道有效果没。

我用的是虚拟机,ubuntu-server,root改完可用,但没测重启,希望这方面多多交流
a
appjack
我已试,CentOS改完,ssh重新登录就好,无需重启。最近服务器CPUY有时候也会标高,不知道有效果没。
今幕明
今幕明

引用来自“appjack”的评论

有不重启的方法吗?

我也在找
a
appjack
有不重启的方法吗?
关于linux中用sudo执行ulimit无法执行问题

先看ulimit 是啥:http://baike.baidu.com/view/4832100.htm linux下可以通过ulimit来修改进程同时打开文件数的最大上限 但若你的账号不是root账号,只是有sudo权限,在执行 sudo ulimit -n...

sumekey
2011/09/29
0
1
linux 打开文件数 too many open files 解决方法

linux 打开文件数 too many open files 解决方法 too many open files 出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。 查看每个用户最大允许打开文件数量 ulimit -a [p...

BraveShine
2016/08/08
0
0
CodeIgniter 的nginx配置示例

nginx的基本配置 2. 增加最大连接数,支持高并发 设置nginx的最大连接数,以及多核CPU设置。 解决错误: *4645 socket() failed (24: Too many open files) 增大nginx可以接受的并发数,以应...

laiconglin
2016/06/01
68
0
关于Ubuntu14.04下的ulimit的限制问题

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数。 可以使用ulimit -a查看当前限制: 对于一些服务的资源限制,如mongodb最大连...

黑色时间
2016/08/25
0
0
一种Linux中快速定位段错误的方法

在做嵌入式Linux开发的时候,程序很容易出现段错误。段错误一般是内存操作指针出错或是内存溢出等问题,有的时候系统会有一点错误提示,但有的时候就直接提示个Segmentation fault (core du...

li_wen01
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

图形用户界面和交互输入方法---图形数据的输入功能

图形数据的输入功能 输入模式 回显反馈

中国龙-扬科
22分钟前
1
0
互联网企业安全之端口监控

背景 外网端口监控系统是整个安全体系中非常重要的一环,它就像眼睛一样,时刻监控外网端口开放情况,并且在发现高危端口时能够及时提醒安全、运维人员做出相应处理。 对安全人员来说,互联网...

Skqing
24分钟前
1
0
JavaMonitor

常规监控jvm,都是比较麻烦的。但是今天在开源中国,看到了一个web版的javaMonitor。 虽然要在服务器上安装,但是这样的话,大家都能看见了。所以还是非常six的。 发现写了这个的博主也是非常...

miaojiangmin
28分钟前
3
0
Redis实践系列丨Codis数据迁移原理与优化

Codis介绍 Codis 是一种Redis集群的实现方案,与Redis社区的Redis cluster类似,基于slot的分片机制构建一个更大的Redis节点集群,对于连接到codis的Redis客户端来说, 除了部分不支持的命令外...

中间件小哥
29分钟前
3
0
HTTP常用状态码(14种)

类别 原因短语 1xx 信息型状态码 接收的请求正在处理 2xx 成功状态码 请求正常处理完毕 3xx 重定向状态码 需要进行附加操作以完成请求 4xx 客户端错误状态码 服务器无法处理请求 5xx 服务器错...

vio小黑
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部