文档章节

修改 Ubuntu ulimit 限制

今幕明
 今幕明
发布于 2014/06/23 11:55
字数 393
阅读 3453
收藏 3
点赞 0
评论 4

最近,网站一到高峰期,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
linux修改max user processes limits

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

运维技术
2015/01/29
0
0
使用ulimit命令和limits.conf限制系统资源的利用

在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页. 其实Linux是有...

xiaomaimai
2010/11/18
0
0
Linux系统中打开文件数量的查看方法

ulimit -n 4096 也就是限制用户的最大文件打开数为4096个 在网上查了关于怎么查看文件打开数的文章大致有两种说法 /proc/sys/fs/file-nr 该文件与 file-max 相关,它有三个值: 已分配文件句...

lichao19881026
2014/05/16
0
0
/etc/security/limits.conf解释及应用

limits.conf的格式如下: username|@groupname type resource limit username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。 type:有...

科技小能手
2017/11/12
0
0
/etc/security/limits.conf的相关说明

/etc/security/limits.conf的相关说明 通过ulimit -n命令可以查看Linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统...

linjin200
04/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

MyBatis入门

一、安装 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version></dependency> 二、从 XML 中构建 SqlSessionFactory String r......

一个yuanbeth
10分钟前
0
0
聊聊spring cloud的LoadBalancerAutoConfiguration

序 本文主要研究一下spring cloud的LoadBalancerAutoConfiguration RibbonAutoConfiguration spring-cloud-netflix-ribbon-2.0.0.RC2-sources.jar!/org/springframework/cloud/netflix/ribb......

go4it
13分钟前
0
0
【转】使用Lombok来优雅的编码

前言 Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。 正文 添加依赖 在 pom.xml 文件中添加相关依赖:...

HAVENT
15分钟前
0
0
Dubbo 源码解读 —— 可支持序列化及自定义扩展

一、概述 从源码中,我们可以看出来。目前,Dubbo 内部提供了 5 种序列化的方式,分别为 fastjson、Hessian2、Kryo、fst 及 Java原生支持的方式 。 针对不同的序列化方式,对比内容如下: 名...

Ryan-瑞恩
23分钟前
0
0
MySQL内存设置—— MySQL server has gone away

set global max_allowed_packet=268435456

一梦心草
32分钟前
0
0
推导式

列表、集合和字典推导式 列表推导式是Python最受喜爱的特性之一。它允许用户方便的从一个集合过滤元素,形成列表,在传递参数的过程中还可以修改元素。形式如下: [expr for val in collect...

火力全開
37分钟前
0
0
maven配置文件settings.xml详解

settings.xml有什么用? 如果在Eclipse中使用过Maven插件,想必会有这个经验:配置settings.xml文件的路径。 settings.xml文件是干什么的,为什么要配置它呢? 从settings.xml的文件名就可以...

浮躁的码农
42分钟前
0
0
MakeCode图形化编程语言学习笔记:micro:bit编程练习题[图]

MakeCode图形化编程语言学习笔记:micro:bit编程练习题[图]: 基础训练题: Q1:摇晃micro:bit编程板,随机出现7个小动物图标中的一个,并且前后相邻两次出现的小动物不重复。 注:七个小动物...

原创小博客
42分钟前
0
0
Redis 压力测试说明

Redis 压力测试说明 redis压力测试 2014-03-24 21:41:07| 分类: 默认分类 | 标签:redis |举报|字号 订阅 这几天对比测试mongodb、redis、pg的性能,主要是在消息队列、消息处理、用户经纬度...

舒文joven
43分钟前
0
0
拉姆达表达式 追加 条件判断 Expression>

public static class PredicateBuilder {   /// <summary>   /// 机关函数应用True时:单个AND有效,多个AND有效;单个OR无效,多个OR无效;混应时写在AND后的OR有效   /// </summary...

Lytf
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部