如何在 Ubuntu 中增加 Neo4j 的最大文件打开限制(ulimit)?

2024-11-12 08:36:00
admin
原创
26
摘要:问题描述:目前ulimit -n显示10000。我想将其增加到40000。我已编辑“/etc/sysctl.conf”并输入fs.file-max=40000。我还编辑/etc/security/limits.conf并更新了硬值和软值。但 ulimit 仍然显示10000。完成所有这些更改后,我重新启动了笔...

问题描述:

目前ulimit -n显示10000。我想将其增加到40000。我已编辑“/etc/sysctl.conf”并输入fs.file-max=40000。我还编辑/etc/security/limits.conf并更新了硬值和软值。但 ulimit 仍然显示10000。完成所有这些更改后,我重新启动了笔记本电脑。我可以访问 root 密码。

usr_name@usr_name-lap:/etc$ /sbin/sysctl fs.file-max
fs.file-max = 500000

在以下行中添加了/etc/security/limits.conf-

*     soft    nofile          40000
*     hard    nofile          40000

我还添加了以下行/etc/pam.d/su-

session    required   pam_limits.so

我尝试了其他论坛上提供的所有可能方法,但我只能达到 的最大限制10000,而不能超过这个限制。问题可能出在哪里?

我进行此更改是因为neo4j引发了已达到最大打开文件限制的错误。


解决方案 1:

您正在执行的操作对 root 用户不起作用。也许您正在以 root 身份运行服务,因此看不到更改。

要增加 root 用户的 ulimit,您应该将 替换*为 root。*不适用于 root 用户。其余操作与您所做的相同。我将在这里重新引用。

在文件中添加以下行:/etc/security/limits.conf

root soft  nofile 40000

root hard  nofile 40000

然后在文件中添加以下行:/etc/pam.d/common-session

session required pam_limits.so

这将更新 root 用户的 ulimit。正如评论中提到的,您甚至不必重新启动即可看到更改。

解决方案 2:

1)检查sysctlfile-max限制:

$ cat /proc/sys/fs/file-max

如果限制低于您想要的值,请打开sysctl.conf并在文件末尾添加此行:

fs.file-max = 65536

最后,应用sysctl限制:

$ sysctl -p 

2)编辑/etc/security/limits.conf并添加以下内容

* soft     nproc          65535    
* hard     nproc          65535   
* soft     nofile         65535   
* hard     nofile         65535

这些限制不适用于root用户,如果您想更改root限制,则必须明确执行此操作:

root soft     nofile         65535   
root hard     nofile         65535
...

3)重新启动系统或在末尾添加以下行/etc/pam.d/common-session

session required pam_limits.so

注销并重新登录。

4)检查软限制:

$ ulimit -a

以及硬性限制:

$ ulimit -Ha
....

open files                      (-n) 65535

参考: http: //ithubinfo.blogspot.in/2013/07/how-to-increase-ulimit-open-file-and.html

解决方案 3:

我使用的是 Debian,但此解决方案应该适用于 Ubuntu。您必须在neo4j-service
脚本
中添加一行。
以下是我所做的:

nano /etc/init.d/neo4j-servicedo_start 部分中的start-stop-daemon 行之前
添加“ ulimit –n 40000 ”

请注意,我使用的是 2.0 企业版。希望这对您有所帮助。

解决方案 4:

我遇到了同样的问题,并通过向 中添加条目使其正常工作/etc/security/limits.d/90-somefile.conf。请注意,为了看到限制工作,我必须从 ssh 会话中完全注销,然后重新登录。

我想为运行服务的特定用户设置限制,但似乎我得到的是为我登录的用户设置的限制。下面是一个示例,展示了如何根据经过身份验证的用户而不是有效用户设置 ulimit:

$ sudo cat /etc/security/limits.d/90-nofiles.conf
loginuser    soft    nofile   10240
loginuser    hard    nofile   10240
root         soft    nofile   10241
root         hard    nofile   10241
serviceuser  soft    nofile   10242
serviceuser  hard    nofile   10242

$ whoami
loginuser
$ ulimit -n
10240
$ sudo -i
# ulimit -n
10240    # loginuser's limit
# su - serviceuser
$ ulimit -n
10240    # still loginuser's limit.

您可以使用*来指定所有用户的增加。如果我以我登录的用户身份重新启动服务,并添加ulimit -n到 init 脚本,我会看到初始登录用户的限制已经到位。我还没有机会验证在系统启动期间使用了哪些用户的限制,或者确定我正在运行的服务(使用 start-stop-daemon 启动)的实际 nofile 限制是多少。

目前有两种可行的方法:

  1. 在 start-stop-daemon 之前,向 init 脚本添加 ulimit 调整。

  2. 安全文件中的通配符或更广泛的 ulimit 设置。

解决方案 5:

您可以修改初始化脚本以在运行之前neo4j执行操作。ulimit -n 40000`neo4j`

但是,我忍不住觉得你找错了方向。neo4j真的需要超过 10,000 个打开的文件描述符吗?这听起来很像是neo4j你使用它的方式中的一个错误。我会尝试解决这个问题。

解决方案 6:

我为使这个工作顺利进行而遇到了很多麻烦。

使用以下内容允许您更新它,无论您的用户权限如何。

sudo sysctl -w fs.inotify.max_user_watches=100000

编辑

刚刚在另一个 stackexchange 网站上从另一个用户那里看到此信息(都可以使用,但此版本永久更新系统设置,而不是暂时更新):

echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; 
sudo sysctl -p

解决方案 7:

尝试运行此命令它将*_limits.conf在下面创建一个文件/etc/security/limits.d

echo "* soft nofile 102400" > /etc/security/limits.d/*_limits.conf && echo "* hard nofile 102400" >> /etc/security/limits.d/*_limits.conf

只需退出终端并再次登录并验证ulimit -n它将为*个用户设置

解决方案 8:

tl;dr 设置软限制和硬限制

我确信它按预期工作,但为了以防万一,我会在这里添加它。为了完整起见,限制设置在这里(语法见下文):/etc/security/limits.conf

some_user       soft    nofile          60000
some_user       hard    nofile          60000

并在 /etc/pam.d/common-session 中使用以下命令激活:

session required pam_limits.so

如果仅设置硬限制,ulimit -a将显示默认值 (1024):如果仅设置软限制,ulimit -a 将显示 (4096)

如果您设置它们,两者ulimit -a都会显示软限制(当然最高可达硬限制)

解决方案 9:

我这样做了

echo "NEO4J_ULIMIT_NOFILE=50000" >> neo4j
mv neo4j /etc/default/

解决方案 10:

ULIMIT 配置:

  1. 通过 root 登录

  2. vi 安全/限制.conf

  3. 进行以下输入

开始为网站用户配置 Ulimit

website   soft   nofile    8192
website   hard   nofile    8192
website   soft   nproc    4096
website   hard   nproc    8192
website   soft   core    unlimited
website   hard   core    unlimited
  1. 为所有用户输入以下信息

每个用户的 ulimit 配置

*   soft   nofile    8192
*   hard   nofile    8192
*   soft   nproc    4096
*   hard   nproc    8192
*   soft   core    unlimited
*   hard   core    unlimited
  1. 修改文件后,用户需要注销并重新登录才能看到新的值。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用