打开的文件太多

Ful*_*ket 6 files ulimit

当我打开 Lutris 然后打开 LOL 客户端时,就会发生这种情况。游戏永远不会好。我尝试了很多东西,但永远无法更改打开文件限制。如何解决这个问题?

Waiting on children  
Waiting on children  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
esync: write: Bad file descriptor  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
esync: write: Bad file descriptor  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
eventfd: Too many open files  
Run Code Online (Sandbox Code Playgroud)

还有我的限制信息

~$ ulimit -a  
core file size          (blocks, -c) 0  
data seg size           (kbytes, -d) unlimited  
scheduling priority             (-e) 0  
file size               (blocks, -f) unlimited  
pending signals                 (-i) 15106  
max locked memory       (kbytes, -l) 16384  
max memory size         (kbytes, -m) unlimited  
open files                      (-n) 1024  
pipe size            (512 bytes, -p) 8  
POSIX message queues     (bytes, -q) 819200  
real-time priority              (-r) 0  
stack size              (kbytes, -s) 8192  
cpu time               (seconds, -t) unlimited  
max user processes              (-u) 15106  
virtual memory          (kbytes, -v) unlimited  
file locks                      (-x) unlimited  
Run Code Online (Sandbox Code Playgroud)

小智 6

当“Too Many Open Files”错误消息写入日志时,它表明进程的所有可用文件句柄都已被使用(这也包括套接字)。

在大多数情况下,这是应用程序的某些部分泄漏文件句柄的结果。ulimit 是 unix/linux 中的命令,它允许为所有属性设置系统限制。

ulimit是 unix/linux 中的命令,它允许在您需要增加最大值的情况下为所有属性设置系统限制。不。打开的文件数

ulimit -n   <large value in your case 1000000>

or 

sysctl -w fs.file-max=1000000

and

/etc/security/limits.conf or /etc/sysctl.conf:
change 

fs.file-max = 1000000
Run Code Online (Sandbox Code Playgroud)

要确定打开文件的数量是否在一段时间内增长,请发出 lsof 以定期根据 PID 报告打开的文件。例如:

lsof -p [PID] -r [interval in seconds, 1800 for 30 minutes] > lsof.out
Run Code Online (Sandbox Code Playgroud)

如果您无权访问 lsof 命令,这将特别有用:

ls -al /proc/PID/fd
Run Code Online (Sandbox Code Playgroud)

设置 ulimit 的指南