Chr*_*ole 107 mac osx-snow-leopard file-descriptors ulimit
我正在尝试做一些需要大量文件描述符的事情
sudo ulimit -n 12288像雪豹想去的一样高;超出这个结果
/usr/bin/ulimit:第 4 行:ulimit:打开文件:无法修改限制:无效参数。
我想把这个数字提高很多,比如 100000。这可能吗?
Gor*_*son 99
使用ulimitcommand 仅更改当前 shell 及其子级的资源限制,并sudo ulimit创建一个 root shell,调整其限制,然后退出(因此,据我所知,没有实际影响)。
要超过 12288,您需要调整内核kern.maxfiles和kern.maxfilesperproc参数,以及(至少根据此博客条目,这是本讨论的摘要)启动限制。您可以使用launchctl limit一次调整所有这些:
sudo launchctl limit maxfiles 1000000 1000000
Run Code Online (Sandbox Code Playgroud)
要使其永久化(即在重新启动时不重置),请创建/etc/launchd.conf包含:
limit maxfiles 1000000 1000000
Run Code Online (Sandbox Code Playgroud)
然后您可以使用ulimit(但不使用sudo)来调整您的进程限制。
如果没有这样做,您可能会遇到内核中的大小限制。如果您的型号支持,以64 位模式启动内核可能会有所帮助。
小智 42
以下应该解决大多数解决方案(并按其层次结构顺序列出):
echo 'kern.maxfiles=20480' | sudo tee -a /etc/sysctl.conf
echo -e 'limit maxfiles 8192 20480\nlimit maxproc 1000 2000' | sudo tee -a /etc/launchd.conf
echo 'ulimit -n 4096' | sudo tee -a /etc/profile
Run Code Online (Sandbox Code Playgroud)
笔记:
小智 39
似乎有一种完全不同的方法来更改每个 OS X 版本的打开文件限制!
对于 OS X Sierra (10.12.X),您需要:
1. 在Library/LaunchDaemons创建一个名为的文件limit.maxfiles.plist并粘贴以下内容(随意更改两个数字(分别是软限制和硬限制):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>64000</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
2. 更改新文件的所有者:
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
Run Code Online (Sandbox Code Playgroud)
3. 加载这些新设置:
sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
Run Code Online (Sandbox Code Playgroud)
4. 最后,检查限制是否正确:
launchctl limit maxfiles
Run Code Online (Sandbox Code Playgroud)
小智 21
似乎 OS X Lion 不允许将“无限”作为值:
% sudo launchctl limit maxfiles 8192 unlimited
Neither the hard nor soft limit for "maxfiles" can be unlimited. Please use a numeric parameter for both.
Run Code Online (Sandbox Code Playgroud)
为软限制和硬限制提供数值可以完成这项工作:
% sudo launchctl limit maxfiles 4096 8192
Run Code Online (Sandbox Code Playgroud)
在小牛队上很简单。作为普通用户:
ulimit -n 8192
您可以通过以下方式检查更新的设置
ulimit -a
在我的机器上:
ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 709
-n: file descriptors 8192
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133282 次 |
| 最近记录: |