- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 mongodb 服务器经常崩溃,出现错误“打开的文件太多”。
操作系统是 debian 8:
Linux VM-64-58-debian 3.16.0-4-amd64 #1 SMP Debian 3.16.51-3 (2017-12-13) x86_64 GNU/Linux
和 MongoDB 版本 3.4.5。
我按照以下步骤安装 mongodb:
创建脚本文件 mongo.auto,然后 chmod +x。
/mongodb/bin/mongos --config /mongodb/config/dbs.config --fork
创建/etc/init.d/mongo.sh,然后 chmod +x 它。
#! /bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
############### EDIT ME ##################
# path to app
# user
RUN_AS=mongodb
sudo -u mongodb /mongodb/bin/mongo.auto
设置为自动运行服务:
insserv mongo.sh
完成。
对于“太多打开的文件”,我检查/proc/pid/limits,返回:
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 63596 63596 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 63596 63596 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
我尝试了以下四种方法:
将 ulimit 添加到/etc/rc.local
ulimit -SHn 65535
将 ulimit 添加到/etc/profile
ulimit -SHn 65535
将设置添加到/etc/security/limits.conf
mongodb soft nofile 65535
mongodb hard nofile 65535
将设置添加到/etc/sysctl.conf
fs.file-max=65535
而且我检查了/etc/pam.d/login,
session required pam_limits.so
该行未被屏蔽。
每次尝试后我都会重启服务器。
有了这些, session /shell 的“最大打开文件”更新为 65535,而/proc/pid/limits 从未改变,仍然保持 1024。
有什么建议吗?
最佳答案
经过几天的研究,我找到了解决办法。
我使用/etc/inid.d/mongo.sh 作为自动运行脚本,并使用
sudo -u mongodb /mongodb/bin/mongo.auto
作为启动脚本。所以我需要用 sudo 设置 pam auth。
所以解决方案是 - 在/etc/pam.d 中,它需要在下面附加到/etc/pam.d/sudo
session required pam_limits.so
然后重启,完成。
关于linux - 如何有效地增加 Debian 上 mongodb 的最大打开文件数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54006887/
我是一名优秀的程序员,十分优秀!