在运行Kafka实例并使用具有1000个分区的一个主题时,我得到了java.io.IOException: Too many open files
,因此我开始研究ec2 vm中的文件描述符限制。我无法理解Centos 7机器上打开文件的确切限制是什么,因为以下所有命令都会产生不同的结果。这些命令是:
ulimit -a
:打开文件1024 lsof | wc -l
:298280 cat /proc/sys/fs/file-max
:758881(与/proc/sys/fs/file-nr
一致)如果实际极限是最后一条命令产生的极限,那么我远低于该极限(lsof | wc -l
:298280)。但是,在这种情况下,ulimit
命令的输出对我来说还不清楚,因为我远远超过了1024个打开的文件。
According to the official documentation the best way to check for file descriptors in Centos is the /proc/sys/fs/file-max
file,但是这些命令之间是否存在所有看似“不一致的地方”?