Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86282
  • 博文数量: 10
  • 博客积分: 283
  • 博客等级: 二等列兵
  • 技术积分: 149
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-24 15:07
文章分类

全部博文(10)

文章存档

2011年(10)

我的朋友

分类: LINUX

2011-12-26 21:03:49

打开的文件和socket都要占用文件描述符fd,在某些场景fd就不够用了,这时就需要用ulimit来调整当前系统的最大fd数量。
ulimit 限制的是当前 shell 进程以及其派生的子进程。
如果没有root权限的话,只能压低限制而不能提升。
可以放在启动脚本,或者直接在shell中运行。
ulimit -a 查看所有限制,以及设定参数。
ulimit -n 1000000 #文件描述符数量
ulimit -f 1000 #创建文件的大小,手册上说是blocks(512 bytes),但是试了下似乎是kb
ulimit -v 1000 #每个进程能够使用的虚拟内存
ulimit -s 1024 #线程堆栈的大小
ulimit -c unlimited #core dump文件限制,默认关闭

永久修改最大文件描述符数
#----------------------------------------------------------------------
if ! grep /etc/security/limits.conf -rne '^[^#].*nofile'; then
        sudo sed /etc/security/limits.conf -e '/End of file/i\
*                soft   nofile          100000\
*                hard   nofile          100000\
root             soft   nofile          100000\
root             hard   nofile          100000' -i
fi
#----------------------------------------------------------------------


开启core dump
#----------------------------------------------------------------------
if ! grep /etc/security/limits.conf -rne '^[^#].*core'; then
        sudo sed /etc/security/limits.conf -e '/End of file/i\
*                soft    core            100000\
*                hard    core            100000\
root             soft    core            100000\
root             hard    core            100000' -i
fi
#----------------------------------------------------------------------

允许core dump保留pid信息:
将下面两句加入rc.local:
echo "1" > /proc/sys/kernel/core_uses_pid
echo "/root/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
#----------------------------------------------------------------------
if ! grep /etc/rc.local -rne core_pattern; then
        sudo sed /etc/rc.local -e'/^exit 0/iecho 1 > /proc/sys/kernel/core_uses_pid\necho /root/core-%e-%p-%t > /proc/sys/kernel/core_pattern' -i
fi
#----------------------------------------------------------------------

更详细的可以 man limits.conf

阅读(8523) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~