Remove FileSystemUtils#maxOpenFiles
This method basically forcefully creates as many files as possible to find out the process limit in a brute-force manner. The number of possible probles with this approach would exceed the number of lines left on this commit message. This commit uses a JMX based alternative to print the process limit.
This commit is contained in:
parent
bc5bdbc5de
commit
8dd5dd409e
|
@ -32,6 +32,7 @@ import org.elasticsearch.common.logging.log4j.LogConfigurator;
|
|||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.env.Environment;
|
||||
import org.elasticsearch.monitor.jvm.JvmInfo;
|
||||
import org.elasticsearch.monitor.process.JmxProcessProbe;
|
||||
import org.elasticsearch.node.Node;
|
||||
import org.elasticsearch.node.NodeBuilder;
|
||||
import org.elasticsearch.node.internal.InternalSettingsPreparer;
|
||||
|
@ -183,7 +184,7 @@ public class Bootstrap {
|
|||
|
||||
if (System.getProperty("es.max-open-files", "false").equals("true")) {
|
||||
ESLogger logger = Loggers.getLogger(Bootstrap.class);
|
||||
logger.info("max_open_files [{}]", FileSystemUtils.maxOpenFiles(new File(tuple.v2().workFile(), "open_files")));
|
||||
logger.info("max_open_files [{}]", JmxProcessProbe.getMaxFileDescriptorCount());
|
||||
}
|
||||
|
||||
// warn if running using the client VM
|
||||
|
|
|
@ -20,18 +20,13 @@
|
|||
package org.elasticsearch.common.io;
|
||||
|
||||
import org.apache.lucene.util.Constants;
|
||||
import org.apache.lucene.util.IOUtils;
|
||||
import org.apache.lucene.util.ThreadInterruptedException;
|
||||
import org.elasticsearch.Version;
|
||||
import org.elasticsearch.common.logging.ESLogger;
|
||||
import org.elasticsearch.common.logging.ESLoggerFactory;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -66,31 +61,6 @@ public class FileSystemUtils {
|
|||
}
|
||||
}
|
||||
|
||||
public static int maxOpenFiles(File testDir) {
|
||||
boolean dirCreated = false;
|
||||
if (!testDir.exists()) {
|
||||
dirCreated = true;
|
||||
testDir.mkdirs();
|
||||
}
|
||||
List<RandomAccessFile> files = new ArrayList<>();
|
||||
try {
|
||||
while (true) {
|
||||
files.add(new RandomAccessFile(new File(testDir, "tmp" + files.size()), "rw"));
|
||||
}
|
||||
} catch (IOException ioe) {
|
||||
int i = 0;
|
||||
for (RandomAccessFile raf : files) {
|
||||
IOUtils.closeWhileHandlingException(raf);
|
||||
new File(testDir, "tmp" + i++).delete();
|
||||
}
|
||||
if (dirCreated) {
|
||||
deleteRecursively(testDir);
|
||||
}
|
||||
}
|
||||
return files.size();
|
||||
}
|
||||
|
||||
|
||||
public static boolean hasExtensions(File root, String... extensions) {
|
||||
if (root != null && root.exists()) {
|
||||
if (root.isDirectory()) {
|
||||
|
|
Loading…
Reference in New Issue