`

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


分享到:
评论

相关推荐

    elasticbeanstalk-docker-ulimit-example:更新 ulimit 设置的示例 Elastic Beanstalk Docker 项目

    使用以下 ebextensions 配置更新 ulimit 设置的示例 Elastic Beanstalk Docker 项目: files: "/etc/security/limits.conf": mode: "00644" owner: "root" group: "root" content: | * hard nofile 65536 ...

    linux_ulimit的使用

    `ulimit` 是一个在 Linux 和其他类 Unix 操作系统中常用的命令行工具,用于设置或显示对当前 shell 进程及其子进程的资源限制。这些限制可以包括最大文件大小、最大核心文件大小、最大数据段大小、最大堆栈大小、...

    ulimit设置句柄数

    放到服务器上运行一段时间抛出Toomanyopenfiles的...  异常信息简单的信息如下:  I/Oexception(java.net.SocketException)caughtwhenprocessingrequest:Toomanyopenfiles  大致了解下,是文件句柄数设置太低导致

    Linuxcore文件介绍.pdf

    例如,在这些文件中配置ulimit设置可以控制用户会话中生成Core Dump的行为。 core-%e-%p-%t模式 通过调整/proc/sys/kernel/core_pattern文件,可以控制Core Dump文件的命名和存储位置。例如,设置模式为/corefile/...

    Linux系统下GDB调试指南.docx

    为了确保系统能够生成完整的core dump文件,首先需要调整ulimit设置以避免文件大小限制: 1. 使用`su root`命令切换至root用户。 2. 编辑`/etc/profile`文件,在文件末尾添加以下内容: ``` ulimit -c unlimited ...

    ubuntu-linux下程序崩溃生成coredump的方法.pdf

    1. **core dump 功能未开启**:可以使用 `ulimit -c` 命令检查当前设置,并通过 `ulimit -c unlimited` 来解除大小限制。 2. **apport.service 处理**:如前所述,这个服务会自动处理掉 core dump 文件。确保已经...

    websphere6.1在linux配置说明[汇编].pdf

    4. **增大ulimit设置**:在bash shell的配置文件`.bashrc`中,增加ulimit的值(例如`ulimit -n 8192`),这有助于解决可能遇到的`addNode`和`importWasprofile`问题。修改后,使用`source .bashrc`使改动生效。 5. ...

    ORACLE 10G 在LINUX 下的安装

    4. **系统限制**:调整系统限制,如ulimit设置,以满足Oracle的运行要求。 5. **防火墙配置**:可能需要开放特定端口以允许数据库连接。 6. **时区设置**:根据需要设置正确的时区。 7. **locale设置**:Oracle需要...

    linux安装oracle全程

    此外,还需要关注其他内核参数,如ulimit设置,包括最大文件描述符数、最大进程数等。这些参数的设置对于Oracle数据库的稳定运行至关重要。另外,还要确保Oracle用户拥有适当的权限,并创建所需的目录结构,如ORACLE...

    RedHatLinux5.1下安装oracle9i.pdf

    除了上述步骤,可能还需要调整ulimit设置、创建Oracle基目录、安装必要的依赖包等。例如: ``` # ulimit -n 65536 ``` 以提高文件描述符的限制。 5. **安装Oracle软件**: 使用Oracle提供的安装介质,按照...

    redis-5.0.8 安装与基本配置.docx

    为了优化Redis性能,需要调整用户的ulimit设置。在/etc/security/limits.conf文件中添加相应的行,以增加文件描述符(nofile)和进程限制(nproc)。 接下来,创建Redis的安装目录和数据存储路径,如/data/redis。...

    websphere6.1在linux配置说明[整理].pdf

    4. **增大ulimit设置**: 为了防止在执行addNode和importWasprofile操作时遇到问题,需要在bash shell的配置文件`.bashrc`中增加`ulimit -n 8192`,然后运行`source .bashrc`使其生效。这将提升文件描述符的限制,...

    obiee快速安装手册.txt

    4. **调整 ulimit 设置**:通过 `ulimit -n unlimited` 命令将文件描述符数量设置为无限制。 #### 三、OBIEE 安装步骤 ##### 3.1 准备安装目录 1. **创建安装目录**: ```bash mkdir /usr/local/OracleBI mkdir...

    AIX 5300-04 安装oracle数据库.pptx

    然后,配置用户的shell限制和系统参数,如ulimit设置,以确保Oracle数据库运行时所需的资源限制得以满足。这可能涉及到修改`/etc/security/limits.conf`文件,设置如最大打开文件数、堆栈大小等。 创建Oracle软件的...

    linux安装oracle[整理].pdf

    安装过程中,还需要调整系统参数,如ulimit设置,以确保Oracle可以正确地分配文件描述符和进程数。此外,优化内存分配、共享内存设置(如SHMMAX和SHMMIN)以及虚拟内存(如SWAP)也是必不可少的步骤。 Oracle的安装...

    Eclipse运行时提示failed to create the java virtual machine

    - 对于 Linux 或 Unix 系统,可能需要检查系统的 ulimit 设置,确保没有对进程使用的内存进行严格的限制。 - 对于 Windows 系统,则需要注意操作系统的版本和可用内存。 5. **重启 Eclipse**: - 完成以上所有...

    linux下oracle安装

    - 配置系统参数,如ulimit设置,以支持Oracle的运行。 2. **安装库文件**: - Oracle 9i需要一些特定的库文件,例如kernel-headers、ncurses、glibc等,确保这些库已安装或通过yum或rpm命令安装。 3. **创建用户...

    红旗Linux4 安装Oracle11g 完整教程

    10. **修改ulimit**:在`/etc/profile`文件中添加针对`oracle`用户的ulimit设置,确保用户可以创建足够的进程和打开文件。 11. **切换到oracle用户**:使用`su - oracle`切换到`oracle`用户,然后编辑`.bash_...

    oracle11g在RHEL63安装注意事项

    在安装Oracle前,还需要对系统进行一些必要的调整,包括调整内核参数、限制文件句柄数、修改ulimit设置以及设置环境变量等。这些设置有助于确保Oracle数据库运行时的稳定性和性能。 7. **运行安装脚本**: 在完成...

Global site tag (gtag.js) - Google Analytics