什么是ulimits中的nproc和nofile?

5

我想知道ulimits中的nofile和nproc是什么,最好能举例说明。具体来说,在数据库中它们的作用是什么?


1
你知道搜索互联网这个东西吗?当我搜索“linux nofile”时,会出现490000个结果。当我搜索“linux nproc”时,会出现125000个结果。...... - shellter
1
StackOverflow致力于帮助人们修复现有的编程代码。编辑您的问题以展示样本输入/输出和解决问题的最佳尝试代码。抱歉,但关于教程、研究、工具、推荐、库和免费编码服务的请求是不切题的。在发布更多问题之前,请阅读https://stackoverflow.com/help/on-topic,https://stackoverflow.com/help/how-to-ask,https://stackoverflow.com/help/dont-ask,https://stackoverflow.com/help/mcve并参加[tour](https://stackoverflow.com/tour)。祝你好运。 - shellter
1个回答

9

关于 MongoDB,这两个参数如下:

nofile: -n: 文件描述符

  • 这个 ulimit 设置参数告诉 MongoDB 进程可以使用多少文件描述符。MongoDB 在内部使用文件存储连接、日志文件、索引和数据文件。
  • MongoDB 建议将 nofile 设置为 64000。但是,您可能需要根据您的要求将其更改为更高的值(特别是在使用 WiredTiger 存储引擎的情况下)。在使用这些值测试您的环境后再更改。

nproc: -u: 进程/线程

  • MongoDB 使用进程来跟踪每个内部线程或 pthread 作为系统进程。例如,副本线程

  • 如果未按预期设置 nproc,MongoDB 将显示启动警告。通常将其设置为 mongodb 部署的 nofile 的 1/2。


感谢您宝贵的时间。我有一个场景,我们需要添加一个次要服务器,并使用参数only nofile up to 64000和nproc up to 1024开始初始同步。这对于新的次要服务器保持稳定是可行的。 - yogesh.j
如果您查看mongodb的初始化脚本,它将nproc设置为-u 64000。在您的情况下,设置较低的值将最终导致启动警告,并可能在nproc(1024)最终达到时引起任何可能的问题。 - Atish
根据您上面的描述,当使用MongoDB的进程增加时,nproc是什么?这样会导致问题出现,对吗? - yogesh.j
将此值设置为低于所需值将会导致问题。 - Atish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接