ulimit 设置

最近 NodeJs项目经常挂起,后台在日志发现,有一个Error存在:
console -  Caught exception: Error: accept EMFILE
    at errnoException (net.js:770:11)
    at TCP.onconnection (net.js:1030:24)


Caught exception: Error: accept EMFILE

翻阅了不少的论坛跟Google,原来是ulimit限制了。在ubuntu里面open file 设置默认最大值为1024,于是需要将其修改。

xusongqin@ubuntu:/data/projects/mahjong-websocket/game-server/logs/self$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128029
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128029
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

如果是root用户的话,直接 ulimit -n 65535即可,

而non-root的用户的话,则需要修改/etc/security/limits.conf的配置内容:
只需要在里面加入(下面4行配置即可):
* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535


最终为:

#<domain>      <type>  <item>         <value>
#

#*               soft    core            0
#root            hard    core            100000
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

* soft nofile 65535
* hard nofile 65535
root soft nofile 65535
root hard nofile 65535


# End of file

退出当前终端,重新登录终端查看。

xusongqin@ubuntu:/data/projects/mahjong-websocket/game-server/logs/self$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128029
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128029
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


猜你喜欢

转载自qson.iteye.com/blog/1998092
今日推荐