Here is how you could configure it to create 3 "sub" collectors and to have them forward {quote: ClassAds} to the main collector. Each sub collector will have a unique condor_shared_port sock name, enabling the central manager to only need a single listen port(by default, it will use well-known HTCondor port 9618 TCP). This configuration example leverages the fact that shared_port is enabled by default in HTCondor v8.6.0+, and also leverages the =CollectorNode= configuration template included in v8.6.0+. -In the condor_config file on your central manager, include the following: +In the condor_config file *on your central manager*, include the following: {code} # Define sub collectors (in this case, we want 3) @@ -30,13 +30,18 @@ CONDOR_VIEW_HOST = 127.0.0.1 {endcode} -Then you would configure a fraction of your pool (execute machines) to use one of the sub collectors. The execute machines can be manually configured, or randomly configured by adding the following into the condor_config of your execute nodes: +Then you would configure a fraction of your pool (execute machines) to use one of the sub collectors. The execute machines can be manually configured, or randomly configured by adding the following into the condor_config *on your execute nodes* (_note: do not put this line into the config of your central manager, just your execute nodes_): {code} # Pick a random collectorchildX, where X is a random number between 1 and 3. # If you are using more child collectors, then increase the second parameter -# to macro RANDOM_INTEGER() appropriately. -COLLECTOR_HOST = 127.0.0.1?sock=collectorchild$RANDOM_INTEGER(1,3) +# to macro RANDOM_INTEGER() appropriately. Note it is assumed that CONDOR_HOST is +# defined to be the full hostname (or IP address) of your pool's central manager. +COLLECTOR_HOST = $(CONDOR_HOST)?sock=collectorchild$RANDOM_INTEGER(1,3) + +# If someone were to run a tool such as condor_status on an execute node, we want it to +# query the top-level collector so it sees the entire pool. +TOOL.COLLECTOR_HOST = $(CONDOR_HOST) {endcode} Your schedds and negotiator should be configured with COLLECTOR_HOST equal to the main collector.