相关疑难解决方法(0)

OSX上的Java文件限制低于bash

我已经增加了我的macbook pro上的最大文件限制,以便Elasticsearch可以处理更多文件,但它无法正常工作.

我运行命令'ulimit -a',它说"打开文件"是100,000.我可以像这样运行一个简单的shell脚本:

export counter=0
while (true) ; do touch "/tmp/foo${counter}" ; export counter=`expr $counter + 1` ; done
Run Code Online (Sandbox Code Playgroud)

而且我能够创建大量文件(在我杀死脚本之前超过60,000个).

但是,使用Java代码在"/ tmp"目录的空子目录中创建RandomAccessFiles,在出现错误之前,我只能生成10,232个文件:java.io.FileNotFoundException(打开的文件太多).这是我的Java代码:

import java.io.*;
import java.util.*;

public class max_open_files {
    public static void main(String ... args) throws Exception {
        File testDir = new File("/tmp/tempsubdir");
        testDir.mkdirs();

        List<File> files = new LinkedList<File>();
        List<RandomAccessFile> fileHandles = new LinkedList<RandomAccessFile>();

        try {
            while (true) {
                File f = new File(testDir, "tmp" + fileHandles.size());
                RandomAccessFile raf = new RandomAccessFile(f, "rw");
                files.add(f);
                fileHandles.add(raf);
            }
        } catch …
Run Code Online (Sandbox Code Playgroud)

java macos bash elasticsearch

3
推荐指数
1
解决办法
2384
查看次数

标签 统计

bash ×1

elasticsearch ×1

java ×1

macos ×1