文档章节

修改 Ubuntu ulimit 限制

今幕明
 今幕明
发布于 2014/06/23 11:55
字数 393
阅读 3609
收藏 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
关于Ubuntu14.04下的ulimit的限制问题

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

黑色时间
2016/08/25
0
0
CodeIgniter 的nginx配置示例

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

laiconglin
2016/06/01
68
0
一种Linux中快速定位段错误的方法

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

li_wen01
01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
3
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
2
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部