文档章节

修改 Ubuntu ulimit 限制

今幕明
 今幕明
发布于 2014/06/23 11:55
字数 393
阅读 3753
收藏 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修改max user processes limits

说明: 这篇是网上看到的有关修改max user processes limits,觉得还可以,就保留了下来!稍微加了点东西 具体: 最近新上了一批服务器,内核升级到了2.6.32版本,部署完MySQL实例后上到线上...

运维技术
2015/01/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 风扇写着先生请自爱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蚂蚁哈哈哈 :分享陈奕迅的单曲《落花流水》 《落花流水》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @车谷 :我发现每天上班都好困 ...

小小编辑
37分钟前
3
0
centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
8
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部