Andrei Sekretenko created MESOS-10160: -----------------------------------------
Summary: Split source files that require the larges amount of memory for compilation. Key: MESOS-10160 URL: https://issues.apache.org/jira/browse/MESOS-10160 Project: Mesos Issue Type: Improvement Reporter: Andrei Sekretenko Mesos build is known to be memory-consuming and under-utilizing CPUs when built on hosts with small amount of memory. What is less known is the fact that the peak RSS of invocations of compiler/linker seems to follow Paretolike distribution. Top-20 clang++/clang invocations by max RSS in CMake RelWithDebInfo build of mesos-tests on Linux: {noformat} 4.43 GiB <linking mesos-tests> // almost never built in parallel with other sources 3.99 GiB mesos/src/csi/v1_volume_manager.cpp 3.97 GiB mesos/src/csi/v0_volume_manager.cpp 3.74 GiB <linking libmesos> 3.25 GiB mesos/src/tests/slave_tests.cpp 3.00 GiB mesos/src/tests/api_tests.cpp 2.99 GiB mesos/src/tests/master_tests.cpp 2.72 GiB mesos/src/tests/slave_recovery_tests.cpp 2.56 GiB mesos/src/tests/storage_local_resource_provider_tests.cpp 2.51 GiB mesos/src/slave/slave.cpp 2.21 GiB mesos/src/slave/http.cpp 2.12 GiB mesos/src/slave/containerizer/mesos/containerizer.cpp 2.04 GiB mesos/src/tests/master_slave_reconciliation_tests.cpp 2.02 GiB mesos/src/slave/containerizer/docker.cpp 1.96 GiB mesos/src/master/master.cpp 1.90 GiB mesos/src/tests/reservation_tests.cpp 1.88 GiB mesos/src/tests/csi_client_tests.cpp 1.87 GiB mesos/src/tests/master_authorization_tests.cpp 1.83 GiB mesos/src/tests/containerizer/docker_containerizer_tests.cpp 1.82 GiB mesos/src/tests/master_allocator_tests.cpp 1.77 GiB mesos/src/tests/fault_tolerance_tests.cpp 1.75 GiB mesos/src/tests/partition_tests.cpp 1.72 GiB mesos/src/tests/operation_reconciliation_tests.cpp 1.71 GiB mesos/src/tests/master_draining_tests.cpp 1.70 GiB mesos/src/tests/resource_provider_manager_tests.cpp 1.69 GiB mesos/src/tests/containerizer/cni_isolator_tests.cpp 1.66 GiB mesos/src/resource_provider/storage/provider.cpp 1.65 GiB mesos/src/tests/master_quota_tests.cpp 1.62 GiB mesos/src/master/http.cpp 1.59 GiB mesos/src/tests/persistent_volume_tests.cpp 1.59 GiB mesos/src/tests/scheduler_tests.cpp 1.55 GiB mesos/src/tests/master_maintenance_tests.cpp 1.54 GiB mesos/src/tests/hierarchical_allocator_tests.cpp 1.54 GiB mesos/src/tests/gc_tests.cpp 1.53 GiB mesos/src/slave/containerizer/mesos/io/switchboard.cpp 1.53 GiB mesos/src/tests/master_validation_tests.cpp 1.53 GiB mesos/src/tests/log_tests.cpp 1.53 GiB mesos/src/tests/oversubscription_tests.cpp 1.50 GiB mesos/src/tests/slave_authorization_tests.cpp 1.49 GiB mesos/src/tests/resource_offers_tests.cpp {noformat} The presence of a few files of 3+ GiB is what makes clean build on standard AWS instances (and typical laptops) memory-limited if one tries to avoid compiler OOM. -- This message was sent by Atlassian Jira (v8.3.4#803005)