private static void verifyUsingG1Gc() { try { List<String> garbageCollectors = ManagementFactory.getGarbageCollectorMXBeans().stream() .map(GarbageCollectorMXBean::getName) .collect(toImmutableList()); if (garbageCollectors.stream().noneMatch(name -> name.toUpperCase(Locale.US).startsWith("G1 "))) { warnRequirement("Current garbage collectors are %s. Presto recommends the G1 garbage collector.", garbageCollectors); } } catch (RuntimeException e) { // This should never happen since we have verified the OS and JVM above failRequirement("Cannot read garbage collector information: %s", e); } }
private static void verifyUsingG1Gc() { try { List<String> garbageCollectors = ManagementFactory.getGarbageCollectorMXBeans().stream() .map(GarbageCollectorMXBean::getName) .collect(toImmutableList()); if (garbageCollectors.stream().noneMatch(name -> name.toUpperCase(Locale.US).startsWith("G1 "))) { warnRequirement("Current garbage collectors are %s. Presto recommends the G1 garbage collector.", garbageCollectors); } } catch (RuntimeException e) { // This should never happen since we have verified the OS and JVM above failRequirement("Cannot read garbage collector information: %s", e); } }
private static void verifyFileDescriptor() { OptionalLong maxFileDescriptorCount = getMaxFileDescriptorCount(); if (!maxFileDescriptorCount.isPresent()) { // This should never happen since we have verified the OS and JVM above failRequirement("Cannot read OS file descriptor limit"); } if (maxFileDescriptorCount.getAsLong() < MIN_FILE_DESCRIPTORS) { failRequirement("Presto requires at least %s file descriptors (found %s)", MIN_FILE_DESCRIPTORS, maxFileDescriptorCount.getAsLong()); } if (maxFileDescriptorCount.getAsLong() < RECOMMENDED_FILE_DESCRIPTORS) { warnRequirement("Current OS file descriptor limit is %s. Presto recommends at least %s", maxFileDescriptorCount.getAsLong(), RECOMMENDED_FILE_DESCRIPTORS); } }
private static void verifyFileDescriptor() { OptionalLong maxFileDescriptorCount = getMaxFileDescriptorCount(); if (!maxFileDescriptorCount.isPresent()) { // This should never happen since we have verified the OS and JVM above failRequirement("Cannot read OS file descriptor limit"); } if (maxFileDescriptorCount.getAsLong() < MIN_FILE_DESCRIPTORS) { failRequirement("Presto requires at least %s file descriptors (found %s)", MIN_FILE_DESCRIPTORS, maxFileDescriptorCount.getAsLong()); } if (maxFileDescriptorCount.getAsLong() < RECOMMENDED_FILE_DESCRIPTORS) { warnRequirement("Current OS file descriptor limit is %s. Presto recommends at least %s", maxFileDescriptorCount.getAsLong(), RECOMMENDED_FILE_DESCRIPTORS); } }
private static void verifyOsArchitecture() { String osName = StandardSystemProperty.OS_NAME.value(); String osArch = StandardSystemProperty.OS_ARCH.value(); if ("Linux".equals(osName)) { if (!"amd64".equals(osArch) && !"ppc64le".equals(osArch)) { failRequirement("Presto requires amd64 or ppc64le on Linux (found %s)", osArch); } if ("ppc64le".equals(osArch)) { warnRequirement("Support for the POWER architecture is experimental"); } } else if ("Mac OS X".equals(osName)) { if (!"x86_64".equals(osArch)) { failRequirement("Presto requires x86_64 on Mac OS X (found %s)", osArch); } } else { failRequirement("Presto requires Linux or Mac OS X (found %s)", osName); } }
private static void verifyOsArchitecture() { String osName = StandardSystemProperty.OS_NAME.value(); String osArch = StandardSystemProperty.OS_ARCH.value(); if ("Linux".equals(osName)) { if (!"amd64".equals(osArch) && !"ppc64le".equals(osArch)) { failRequirement("Presto requires amd64 or ppc64le on Linux (found %s)", osArch); } if ("ppc64le".equals(osArch)) { warnRequirement("Support for the POWER architecture is experimental"); } } else if ("Mac OS X".equals(osName)) { if (!"x86_64".equals(osArch)) { failRequirement("Presto requires x86_64 on Mac OS X (found %s)", osArch); } } else { failRequirement("Presto requires Linux or Mac OS X (found %s)", osName); } }