[HTCondor-devel] CMS Collector query inventory


Date: Fri, 17 Mar 2017 15:36:01 -0500
From: Brian Bockelman <bbockelm@xxxxxxxxxxx>
Subject: [HTCondor-devel] CMS Collector query inventory
Hi,

Per request from Todd, here's a log of all the queries I can see in our collector.

************************************************************************************************************************************************************
NEGOTIATION

First, the MachinePrivate queries (one per negotiator):

Query info: matched=119041; skipped=0; query_time=2.601966; send_time=52.530350; type=MachinePrivate; requirements={true}; locate=0; peer=$NEGOTIATOR; projection={}

Then, the public queries (one per negotiator; three different negotiators):

Query info: matched=54959; skipped=72294; query_time=7.576912; send_time=52.929494; type=Any; requirements={(((MyType == "Scheduler") || (MyType == "Submitter")) || (((MyType == "Machine") && ( !regexp("^(T1_|T2_US_)",GLIDEIN_CMSSite) && ((false ? true : (Cpus > 0)) && (time() < GLIDEIN_ToRetire))))))}; locate=0; peer=$NEGOTIATOR; projection={}
Query info: matched=28225; skipped=99028; query_time=6.118522; send_time=31.376188; type=Any; requirements={(((MyType == "Scheduler") || (MyType == "Submitter")) || (((MyType == "Machine") && ((regexp("^T1_",GLIDEIN_CMSSite) && (((false ? true : (Cpus > 0)) && (time() < GLIDEIN_ToRetire)))) || (GLIDEIN_CMSSite =?= "T2_CH_CERN_HLT")))))}; locate=0; peer=$NEGOTIATOR; projection={}
Query info: matched=37133; skipped=91718; query_time=7.519020; send_time=67.112059; type=Any; requirements={(((MyType == "Scheduler") || (MyType == "Submitter")) || (((MyType == "Machine") && (regexp("^T2_US_",GLIDEIN_CMSSite) && ((false ? true : (Cpus > 0)) && (time() < GLIDEIN_ToRetire))))))}; locate=0; peer=$NEGOTIATOR; projection={}

************************************************************************************************************************************************************
GLIDEINWMS

A query per group (we have 6 groups):

 Query info: matched=1305; skipped=117739; query_time=7.906368; send_time=0.216429; type=Machine; requirements={((((true) && (IS_MONITOR_VM =!= true) && (GLIDEIN_Factory =!= undefined) && (GLIDEIN_Name =!= undefined) && (GLIDEIN_Entry_Name =!= undefined)) && ((GLIDECLIENT_Name =?= "CMSG-v1_0.opportunistic"))))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={GLIDEIN_CredentialIdentifier TotalSlots Cpus Memory PartitionableSlot SlotType TotalSlotCpus State Activity EnteredCurrentState EnteredCurrentActivity LastHeardFrom GLIDEIN_Factory GLIDEIN_Name GLIDEIN_Entry_Name GLIDECLIENT_Name GLIDECLIENT_ReqNode GLIDEIN_Schedd Name}

A query for the whole frontend:
Query info: matched=104226; skipped=14816; query_time=6.779416; send_time=9.465658; type=Machine; requirements={((((true) && (IS_MONITOR_VM =!= true) && (GLIDEIN_Factory =!= undefined) && (GLIDEIN_Name =!= undefined) && (GLIDEIN_Entry_Name =!= undefined)) && ((substr(GLIDECLIENT_Name,0,10) =?= "CMSG-v1_0."))))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={State Activity PartitionableSlot TotalSlots Cpus Memory Name}

A query for the whole pool:
Query info: matched=119070; skipped=0; query_time=2.002817; send_time=13.366689; type=Machine; requirements={((((true)) && (true)))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={State Activity PartitionableSlot TotalSlots Cpus Memory Name}

For the last two queries above, I cannot tell if they are repeated once per group or once globally.  I suspect once per group, given the multiprocess architecture of gWMS.

Schedd load information (could go to schedd-only collector with gWMS code changes?):

Query info: matched=43; skipped=0; query_time=0.000143; send_time=0.043684; type=Scheduler; requirements={((true))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={TotalRunningJobs TotalSchedulerJobsRunning TransferQueueNumUploading MaxJobsRunning TransferQueueMaxUploading CurbMatchmaking Name}

Schedd full info (looks redundant?):
Query info: matched=1; skipped=42; query_time=0.000377; send_time=0.010730; type=Scheduler; requirements={((stricmp(Name,"$SCHEDD") == 0))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={}
Query info: matched=0; skipped=43; query_time=0.000164; send_time=0.000148; type=Scheduler; requirements={((Name =?= "$SCHEDD"))}; locate=0; peer=$GLIDEINWMS_FRONTEND; projection={ScheddIpAddr SPOOL_DIR_STRING LOCAL_DIR_STRING Name}

****************************************************************************************************************************************************************
CRAB3 location finding:

One per schedd:
Query info: matched=1; skipped=42; query_time=0.001595; send_time=0.000409; type=Scheduler; requirements={((Name =?= "$SCHEDD"))}; locate=0; peer=$CRAB_SERVER; projection={AddressV1 CondorPlatform CondorVersion Machine MyAddress Name MyType ScheddIpAddr RemoteCondorSetup}


****************************************************************************************************************************************************************
MONITORING

These *could* point at the non-active top-level collector.

Various cluster monitoring:
Query info: matched=139912; skipped=10279; query_time=7.712620; send_time=22.114816; type=Any; requirements={((GLIDEIN_CMSSite =!= undefined && SlotType =!= undefined))}; locate=0; peer=$MONITORING; projection={Name PartitionableSlot GLIDEIN_CMSSite TotalSlotCpus Cpus SlotType State Memory TotalMemory ChildMemory ChildCpus ChildAccountingGroup AccountingGroup GLIDEIN_ToRetire GLIDEIN_ToDie}
/var/log//condor/CollectorLog.20170317T205756:03/17/17 20:57:40 Query info: matched=112277; skipped=31499; query_time=4.845609; send_time=6.553424; type=Any; requirements={((State =?= "Claimed"))}; locate=0; peer=$MONITORING; projection={Name}
Query info: matched=3; skipped=0; query_time=0.000051; send_time=0.000190; type=Negotiator; requirements={((true))}; locate=0; peer=$MONITORING; projection={Name LastNegotiationCycleDuration0}

This *could* point at the schedd-only collector.  Also runs a very old version of python that does not project for .locateAll:
Query info: matched=43; skipped=0; query_time=0.000129; send_time=1.846534; type=Scheduler; requirements={true}; locate=0; peer=$SCHEDD; projection={}
https://github.com/CMSCompOps/WmAgentScripts/blob/master/CondorMonitoring/JobCounter.py#L552

****************************************************************************************************************************************************************
STUPID CRAP:

>From a monitoring script, one per glexec failure on the entire grid:

Query info: matched=1; skipped=146622; query_time=2.896500; send_time=0.000681; type=Machine; requirements={((Name == "slot1@glidein_29695_236793050@$WORKERNODE"))}; locate=0; peer=$SCHEDD; projection={glidein_cmssite}


****************************************************************************************************************************************************************
UNKNOWN BUT NOTABLE:

There are a few heavy-duty queries that happen relatively infrequently (once every 15 minutes?) that I know exist but haven't found in the logs.  We tend to point these at the non-active top-level collector, which is maybe why I don't see them?

So, prioritization:
0) Fix stupid crap.
1) Fix monitoring query that is blocking the top-level collector.
2) Move schedd-only queries to schedds-only collector.
3) Point remaining monitoring at non-active collector.
*** At this point, only negotiator and gWMS remains ***
4) Ask gWMS devs to remove duplicate queries of pool size.

At this point, the only thing remaining would be negotiation and glideinWMS which, I suspect, is still too much.

Brian

PS - at time of writing, the top-level collector has been dropping packets continuously.  Over a span of 5 minutes, I haven't seen it *not* be at the max of 256MB backlog on the UDP socket.

[← Prev in Thread] Current Thread [Next in Thread→]
  • [HTCondor-devel] CMS Collector query inventory, Brian Bockelman <=