Log warning if max file descriptors too low

This commit adds logging for a warning message if the max file
descriptor count is too low.

Closes #16506
This commit is contained in:
Jason Tedor 2016-02-08 11:21:15 -05:00
parent 65d09b3484
commit 46ee568695
1 changed files with 16 additions and 0 deletions

View File

@ -47,6 +47,7 @@ import org.elasticsearch.index.store.FsDirectoryService;
import org.elasticsearch.monitor.fs.FsInfo; import org.elasticsearch.monitor.fs.FsInfo;
import org.elasticsearch.monitor.fs.FsProbe; import org.elasticsearch.monitor.fs.FsProbe;
import org.elasticsearch.monitor.jvm.JvmInfo; import org.elasticsearch.monitor.jvm.JvmInfo;
import org.elasticsearch.monitor.process.ProcessProbe;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
@ -221,6 +222,7 @@ public class NodeEnvironment extends AbstractComponent implements Closeable {
maybeLogPathDetails(); maybeLogPathDetails();
maybeLogHeapDetails(); maybeLogHeapDetails();
maybeWarnFileDescriptors();
applySegmentInfosTrace(settings); applySegmentInfosTrace(settings);
} }
@ -313,6 +315,20 @@ public class NodeEnvironment extends AbstractComponent implements Closeable {
logger.info("heap size [{}], compressed ordinary object pointers [{}]", maxHeapSize, useCompressedOops); logger.info("heap size [{}], compressed ordinary object pointers [{}]", maxHeapSize, useCompressedOops);
} }
private void maybeWarnFileDescriptors() {
long maxFileDescriptorCount = ProcessProbe.getInstance().getMaxFileDescriptorCount();
if (maxFileDescriptorCount == -1) {
return;
}
int fileDescriptorCountThreshold = (1 << 16);
if (maxFileDescriptorCount < fileDescriptorCountThreshold) {
logger.warn(
"max file descriptors [{}] for elasticsearch process likely too low, consider increasing to at least [{}]",
maxFileDescriptorCount,
fileDescriptorCountThreshold);
}
}
@SuppressForbidden(reason = "System.out.*") @SuppressForbidden(reason = "System.out.*")
static void applySegmentInfosTrace(Settings settings) { static void applySegmentInfosTrace(Settings settings) {
if (ENABLE_LUCENE_SEGMENT_INFOS_TRACE_SETTING.get(settings)) { if (ENABLE_LUCENE_SEGMENT_INFOS_TRACE_SETTING.get(settings)) {