python - 如何在 FreeBSD 10.1 上增加每个进程的打开文件数限制?

标签 python kernel freebsd ulimit sysctl

我对 FreeBSD 10.1-RELEASE 上每个进程的打开文件限制有疑问。为了证明这一点,我制作了 python 脚本来生成虚拟文件并打开了这些文件。可用的脚本

生成1M文件,执行命令

# mkdir -p /tmp/1
# python dummyFileGenerator.py -d /tmp/1 -n 1000000 -r 1

然后,加载所有文件

# python dummyFileLoader.py -d /tmp/1 -n 1000000 -r 1

加载32766个文件后打开文件报错

retry openfile 32766
Traceback (most recent call last):
  File "dummyFileLoader.py", line 74, in <module>
  File "dummyFileLoader.py", line 59, in openfile
IOError: [Errno 24] Too many open files: '/tmp/1/00/00/7f/fd'

我尝试更改 maxfile 但没有解决

# sysctl -a|grep maxfiles
kern.maxfiles: 1000000
kern.maxfilesperproc: 1000000

# ulimit -a
cpu time               (seconds, -t)  unlimited
file size           (512-blocks, -f)  unlimited
data seg size           (kbytes, -d)  33554432
stack size              (kbytes, -s)  524288
core file size      (512-blocks, -c)  unlimited
max memory size         (kbytes, -m)  unlimited
locked memory           (kbytes, -l)  unlimited
max user processes              (-u)  6670
open files                      (-n)  58284
virtual mem size        (kbytes, -v)  unlimited
swap limit              (kbytes, -w)  unlimited
sbsize                   (bytes, -b)  unlimited
pseudo-terminals                (-p)  unlimited

有什么想法吗?

最佳答案

您是否确认 python 也看到了正确的限制?

import resource; 
print resource.getrlimit(resource.RLIMIT_NOFILE)

关于python - 如何在 FreeBSD 10.1 上增加每个进程的打开文件数限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238474/

相关文章:

python - 如何在用户输入时中断Python程序?

python - 将 lxml 输出传递给 BeautifulSoup

linux - 如何在 Linux 内核级别限制特权用户访问?

c - 当我包含 <sys/ucred.h> 时,为什么 Xcode 4 Preview 5 无法解析 crget() 函数?

mysql - freebsd/mysql 5.5 高 i/o 使用率

python - Django 后端设计建议

python - 如果我运行这两个 Anaconda PATH 命令,如果我选择使用其中一个版本,它仍然可以正常工作吗?

linux - 当进行系统调用时,是整个进程阻塞还是仅线程阻塞?

c - ETXTBSY 以及如何覆盖它

email - 127.0.0.1拒绝sendmail连接