在 ubuntu 12.04 上更改 ulimit 不起作用

在 ubuntu 12.04 上更改 ulimit 不起作用

我正在使用 Hadoop,需要更改打开文件数ulimit -n。我在 stackoverflow 和其他地方看到过类似的问题,并尝试了这些答案中的所有方法,但仍然不起作用。我正在使用ubuntu 12.04 LTS。以下是我所做的:

更改限制/etc/security/limits.conf,我已将设置设为 * 和root。我还将限制更改为某些数字,例如10000unlimited

* soft nofile 1513687
* hard nofile 1513687
root soft nofile 1513687
root hard nofile 1513687

我也尝试过使用-而不是soft和进行上述设置hard。进行这些更改后,我对文件进行了/etc/pam.d/如下更改:

common-session 
common-session-noninterative
login
cron
sshd
su
sudo

我已经在每个文件的开头添加了session required pam_limits.so。我重新启动了有问题的盒子,但设置没有生效。

我还发现/etc/security/limits.d/目录中有用户hbase mapred和的文件hdfs。我也尝试过更改这些单个文件的限制,但无济于事。

我也尝试过放入ulimit -S -n unlimited其中/etc/profile。但是没有用。

最后,我尝试将文件放在limit nofile unlimited unlimited第一/etc/init.d/hadoop*行。没有成功。

不过,有一件有趣的事情是,我没有在盒子上安装 HBase,但目录hbase.conf中有一个文件/etc/security/limits.d/。此文件中的设置反映在 中。但和ulimit -n的设置未反映出来。这表明某些东西正在覆盖和 的设置。hdfs.confmapred.confhdfsmapred

我想我已经尝试了人们在多个论坛上建议的所有方法,还有其他我可能遗漏或做错的事情吗?

我正在使用它CDH 4.4.0作为我的 Hadoop 发行版。

答案1

通过执行以下操作,我能够成功更改我的 ulimit 实时优先级和 memlock:

打开/etc/security/limits.conf并添加以下几行(将“tyler”替换为您的 Ubuntu 用户名)

  • tyler hard rtprio 95
  • 泰勒软rtprio 95
  • tyler hard memlock unlimited
  • tyler soft memlock unlimited

打开/etc/pam.d/su并确保以下行存在,并且未被注释掉:

session    required   pam_limits.so

之后,我只需要重新启动计算机,然后我就可以使用这个终端命令来检查我的 ulimit:

ulimit -r -l

相关内容