private void setIcebergSystemProperties() {
      int workerThreadPoolSize =
          Math.max(
              Runtime.getRuntime().availableProcessors() / 2,
              serviceConfig.getInteger(AmoroManagementConf.TABLE_MANIFEST_IO_THREAD_COUNT));
      System.setProperty(
          SystemProperties.WORKER_THREAD_POOL_SIZE_PROP, String.valueOf(workerThreadPoolSize));
      int planningThreadPoolSize =
          Math.max(
              Runtime.getRuntime().availableProcessors() / 2,
              serviceConfig.getInteger(
                  AmoroManagementConf.TABLE_MANIFEST_IO_PLANNING_THREAD_COUNT));
      int commitThreadPoolSize =
          Math.max(
              Runtime.getRuntime().availableProcessors() / 2,
              serviceConfig.getInteger(AmoroManagementConf.TABLE_MANIFEST_IO_COMMIT_THREAD_COUNT));
      IcebergThreadPools.init(planningThreadPoolSize, commitThreadPoolSize);
    }
Override the value of {@link SystemProperties}.
amoro-ams/src/main/java/org/apache/amoro/server/AmoroServiceContainer.java