From c521d01b6668241aec4c91a711be787a5200a087 Mon Sep 17 00:00:00 2001 From: William O'Mullane Date: Fri, 13 Oct 2023 19:18:03 +0000 Subject: [PATCH 1/3] Initial scripts to test from Summit --- .gitignore | 1 + summittests/Makefile | 18 ++++++++++ summittests/envvars-template.sh | 10 ++++++ summittests/gatherLogs.sh | 11 ++++++ summittests/pushToNodes.sh | 11 ++++++ summittests/readFile.sh | 19 ++++++++++ summittests/readTest.sh | 38 ++++++++++++++++++++ summittests/report.py | 64 +++++++++++++++++++++++++++++++++ summittests/requirements.txt | 4 +++ summittests/runOnNodes.sh | 14 ++++++++ summittests/runs3daemon.sh | 18 ++++++++++ summittests/sendTest.sh | 37 +++++++++++++++++++ summittests/stops3daemon.sh | 5 +++ 13 files changed, 250 insertions(+) create mode 100644 summittests/Makefile create mode 100644 summittests/envvars-template.sh create mode 100755 summittests/gatherLogs.sh create mode 100755 summittests/pushToNodes.sh create mode 100755 summittests/readFile.sh create mode 100755 summittests/readTest.sh create mode 100644 summittests/report.py create mode 100644 summittests/requirements.txt create mode 100755 summittests/runOnNodes.sh create mode 100755 summittests/runs3daemon.sh create mode 100755 summittests/sendTest.sh create mode 100755 summittests/stops3daemon.sh diff --git a/.gitignore b/.gitignore index b6e4761..871e723 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ dmypy.json # Pyre type checker .pyre/ +envvars.sh diff --git a/summittests/Makefile b/summittests/Makefile new file mode 100644 index 0000000..4d8d699 --- /dev/null +++ b/summittests/Makefile @@ -0,0 +1,18 @@ +VENVDIR = venv + +venv: + python -m venv $(VENVDIR) + ( \ + . $(VENVDIR)/bin/activate; \ + pip install -r ../requirements.txt; \ + pip install -r requirements.txt; \ + ) + +report: venv + ( \ + . $(VENVDIR)/bin/activate; \ + python report.py logs/*; \ + ) + +clean: + rm -rf $(VENVDIR) diff --git a/summittests/envvars-template.sh b/summittests/envvars-template.sh new file mode 100644 index 0000000..c8ec2ff --- /dev/null +++ b/summittests/envvars-template.sh @@ -0,0 +1,10 @@ +# Source this +# fill in the correct vals and call this envvars.sh + +export S3_ENDPOINT_URL="https://s3dfrgw.slac.stanford.edu" +export AWS_ACCESS_KEY_ID="" +export AWS_SECRET_ACCESS_KEY="" +export bucket="rubin-summit-users" +export prefix="test-lhn" +export nodes="lsstcam-dc03 lsstcam-dc04 lsstcam-dc05 lsstcam-dc06 lsstcam-dc07 lsstcam-dc08 lsstcam-dc09 lsstcam-dc10" + diff --git a/summittests/gatherLogs.sh b/summittests/gatherLogs.sh new file mode 100755 index 0000000..b8b8c0f --- /dev/null +++ b/summittests/gatherLogs.sh @@ -0,0 +1,11 @@ +# put the scripts on all the nodes + +# Note to jump between lsstcam nodes use 'kinit' since ipa controls it all + + +source envvars.sh + + +for n in $nodes; do + scp ${n}:/home/womullan/s3daemon/summittests/*log logs + done diff --git a/summittests/pushToNodes.sh b/summittests/pushToNodes.sh new file mode 100755 index 0000000..ad1c191 --- /dev/null +++ b/summittests/pushToNodes.sh @@ -0,0 +1,11 @@ +# put the scripts on all the nodes + +# Note to jump between lsstcam nodes use 'kinit' since ipa controls it all + + +source envvars.sh + + +for n in $nodes; do + rsync -a --exclude '/home/womullan/s3daemon/logs' --exclude '*.log' /home/womullan/s3daemon ${n}: + done diff --git a/summittests/readFile.sh b/summittests/readFile.sh new file mode 100755 index 0000000..1b20c04 --- /dev/null +++ b/summittests/readFile.sh @@ -0,0 +1,19 @@ +# just read the file noop +# see https://github.com/lsst-dm/s3daemon/blob/main/README.md + + +if [ $1 ] +then + f="$1" +else + echo "Specify file " + exit 1 +fi + +start=`date +%s` +while IFS= read -r line +do + : # nothing +done <"$f" +end=`date +%s` +echo Reading $f `expr $end - $start` seconds diff --git a/summittests/readTest.sh b/summittests/readTest.sh new file mode 100755 index 0000000..adcf27a --- /dev/null +++ b/summittests/readTest.sh @@ -0,0 +1,38 @@ +# Simple read 20 files each in own thread for a node for camera +# this is just to see the times for the read as opposed to send +# see https://github.com/lsst-dm/s3daemon/blob/main/README.md + + +source envvars.sh +source venv/bin/activate + + + +repeat=2 +if [ $1 ] +then + repeat="$1" +fi +echo "Just read repeat $repeat" + +files=`ls ~tonyj/Test/MC*/* | head -${count}` + +fcount=0 +l=0 + +while [[ l -le repeat ]] +do +l=$((l + 1)) +for f in $files; do + key=`echo $f | cut -d'/' -f6 | sed 's/.fits//g'` + + ./readFile.sh $f & + + fcount=$((fcount + 1)) + if [ $((fcount % 20)) == 0 ] + then + sleep 20s + echo "Sleeping" + fi +done +done diff --git a/summittests/report.py b/summittests/report.py new file mode 100644 index 0000000..c1c3be7 --- /dev/null +++ b/summittests/report.py @@ -0,0 +1,64 @@ +import matplotlib.pyplot as plt +import numpy as np +import sys +import re + +from typing import Dict, TextIO + +FIELDRE = re.compile(r'INFO (.+) __main__ - ([0-9]+.[0-9]+) ([0-9]+.[0-9]+)') + + +def oneplot(host, times): + print(f"{host} {len(times)} files Mean:{np.mean(times):.2f} max:{np.max(times):.2f} " + f"min: {np.min(times):.2f} std:{np.std(times):.2f}, var:{np.var(times):.2f} seconds") + bins = np.arange(3, 20.0, 1) + plt.hist(times, bins=bins) + plt.title(f"{host} histogram") + plt.savefig(f"plots/{host}.png") + pass + + +def plot(results): + alltimes = [] + for host, timesall in results.items(): + times = [float(t[2]) for t in timesall] + alltimes.append(times) + oneplot(host, times) + oneplot("all", alltimes) + + +def load(host: str, fin: TextIO, results: Dict) -> Dict: + times = [] + for line in fin: + if 'Starting' in line: + continue + fields = FIELDRE.match(line) + if not fields: + print(f"Could not parse {line} for {host}", sys.stderr) + continue + time = [fields.group(1), fields.group(2), fields.group(3)] + times.append(time) + results[host] = times + return results + + +def process(files: list) -> Dict: + results = {} + for f in files: + name = re.compile(r'.*/(lsstcam-dc[0,1][0-9])-.*') + match = name.match(f) + if not match: + print(f"Could not get host from {f}", sys.stderr) + exit + host = match.groups()[0] + print(host) + with open(f, 'r') as fin: + load(host, fin, results) + + return results + + +if __name__ == '__main__': + files = sys.argv[1:] + results = process(files) + plot(results) diff --git a/summittests/requirements.txt b/summittests/requirements.txt new file mode 100644 index 0000000..988178a --- /dev/null +++ b/summittests/requirements.txt @@ -0,0 +1,4 @@ +matplotlib +numpy +pandas + diff --git a/summittests/runOnNodes.sh b/summittests/runOnNodes.sh new file mode 100755 index 0000000..9e6ce2d --- /dev/null +++ b/summittests/runOnNodes.sh @@ -0,0 +1,14 @@ +# use ssh to run given scrip on all the nodes in $nodes + +# Note to jump between lsstcam nodes use 'kinit' since ipa controls it all + + +source envvars.sh + +cmd="$@" + +for n in $nodes; do + exec="cd s3daemon/summittests; ${cmd}" + echo $exec + ssh $n "${exec}" & + done diff --git a/summittests/runs3daemon.sh b/summittests/runs3daemon.sh new file mode 100755 index 0000000..b9a0ccc --- /dev/null +++ b/summittests/runs3daemon.sh @@ -0,0 +1,18 @@ +# Simple config for s3daemon +# eventually this shoudl be installed and excuted by puppe on every node +# assumes s3daemon has been installed or pip install -r of its requirements.txt +# see https://github.com/lsst-dm/s3daemon/blob/main/README.md + +# Note to jump between lsstcam nodes use 'kinit' since ipa controls it all + + +source envvars.sh +source venv/bin/activate + +host=`echo $HOSTNAME | cut -d'.' -f1` +logfile="${host}-s3daemon.log" +export S3DAEMON_LOG="$logfile" + +echo "S3_ENDPOINT_URL is $S3_ENDPOINT_URL log $logfile" + +python ../python/s3daemon/s3daemon.py & diff --git a/summittests/sendTest.sh b/summittests/sendTest.sh new file mode 100755 index 0000000..258cc7b --- /dev/null +++ b/summittests/sendTest.sh @@ -0,0 +1,37 @@ +# Simple send 20 files each in own thrread like a node for camera +# assumes s3daemon has been installed or pip install -r of its requirements.txt +# see https://github.com/lsst-dm/s3daemon/blob/main/README.md + + +source envvars.sh +source venv/bin/activate + + + +repeat=2 +if [ $1 ] +then + repeat="$1" +fi +echo "$HOSTNAME S3_ENDPOINT_URL is $S3_ENDPOINT_URL repeat $repeat $prefix" + +files=`ls ~tonyj/Test/MC*/* | head -${count}` + +fcount=0 +l=0 + +while [[ l -le repeat ]] +do +l=$((l + 1)) +for f in $files; do + key=`echo $f | cut -d'/' -f6 | sed 's/.fits//g'` + python ../python/s3daemon/send.py $f /${bucket}/${prefix}/${key} & + fcount=$((fcount + 1)) + if [ $((fcount % 20)) == 0 ] + echo Sent $key total $fcount + then + sleep 20s + echo "Sleeping" + fi +done +done diff --git a/summittests/stops3daemon.sh b/summittests/stops3daemon.sh new file mode 100755 index 0000000..15f89ae --- /dev/null +++ b/summittests/stops3daemon.sh @@ -0,0 +1,5 @@ +# find the process and kill + +#proc=`ps -ealf | grep s3daem | grep -v grep | cut -d' ' -f5` +#kill -9 $proc +pkill -if '.*s3daemon.*' From dd3f59c4c9e5f8f473da95bd78f8e49ec2c791b8 Mon Sep 17 00:00:00 2001 From: William O'Mullane Date: Wed, 18 Oct 2023 08:40:31 -0700 Subject: [PATCH 2/3] SDF tests --- summittests/cpFilesfromS3.sh | 7 ++++ summittests/envvars-template.sh | 1 + summittests/gatherLogs.sh | 8 +++-- summittests/plots/all.png | Bin 0 -> 17299 bytes summittests/plots/lsstcam-dc01.png | Bin 0 -> 10781 bytes summittests/plots/lsstcam-dc03.png | Bin 0 -> 18590 bytes summittests/plots/lsstcam-dc04.png | Bin 0 -> 16678 bytes summittests/plots/lsstcam-dc05.png | Bin 0 -> 17379 bytes summittests/plots/lsstcam-dc06.png | Bin 0 -> 18429 bytes summittests/plots/lsstcam-dc07.png | Bin 0 -> 18594 bytes summittests/plots/lsstcam-dc08.png | Bin 0 -> 16782 bytes summittests/plots/lsstcam-dc09.png | Bin 0 -> 17422 bytes summittests/plots/lsstcam-dc10.png | Bin 0 -> 18294 bytes summittests/plots/sdfrome002.png | Bin 0 -> 18627 bytes summittests/readTest.sh | 20 +++++------ summittests/report.py | 55 +++++++++++++++++++---------- summittests/sendTest.sh | 11 +++--- 17 files changed, 64 insertions(+), 38 deletions(-) create mode 100755 summittests/cpFilesfromS3.sh create mode 100644 summittests/plots/all.png create mode 100644 summittests/plots/lsstcam-dc01.png create mode 100644 summittests/plots/lsstcam-dc03.png create mode 100644 summittests/plots/lsstcam-dc04.png create mode 100644 summittests/plots/lsstcam-dc05.png create mode 100644 summittests/plots/lsstcam-dc06.png create mode 100644 summittests/plots/lsstcam-dc07.png create mode 100644 summittests/plots/lsstcam-dc08.png create mode 100644 summittests/plots/lsstcam-dc09.png create mode 100644 summittests/plots/lsstcam-dc10.png create mode 100644 summittests/plots/sdfrome002.png diff --git a/summittests/cpFilesfromS3.sh b/summittests/cpFilesfromS3.sh new file mode 100755 index 0000000..571afaa --- /dev/null +++ b/summittests/cpFilesfromS3.sh @@ -0,0 +1,7 @@ +#assumes you already logged in to mycloud with mc where mycloud is the s3 endpoint URL + +for f in `mc ls mycloud/rubin-summit-users/test-lhn/ | cut -d' ' -f 7` ; do + s3="mycloud/rubin-summit-users/test-lhn/$f" + mc cp $s3 /tmp/Test/$f.fits +done + diff --git a/summittests/envvars-template.sh b/summittests/envvars-template.sh index c8ec2ff..7c8f78e 100644 --- a/summittests/envvars-template.sh +++ b/summittests/envvars-template.sh @@ -7,4 +7,5 @@ export AWS_SECRET_ACCESS_KEY="" export bucket="rubin-summit-users" export prefix="test-lhn" export nodes="lsstcam-dc03 lsstcam-dc04 lsstcam-dc05 lsstcam-dc06 lsstcam-dc07 lsstcam-dc08 lsstcam-dc09 lsstcam-dc10" +export datadir="~tonyj/Test/" diff --git a/summittests/gatherLogs.sh b/summittests/gatherLogs.sh index b8b8c0f..060651e 100755 --- a/summittests/gatherLogs.sh +++ b/summittests/gatherLogs.sh @@ -1,11 +1,13 @@ -# put the scripts on all the nodes +# pull all logs back to main node +# Assumes you are in the simmit tests directory +# # Note to jump between lsstcam nodes use 'kinit' since ipa controls it all source envvars.sh - +pwd=`pwd` for n in $nodes; do - scp ${n}:/home/womullan/s3daemon/summittests/*log logs + scp ${n}:${pwd}/*log logs done diff --git a/summittests/plots/all.png b/summittests/plots/all.png new file mode 100644 index 0000000000000000000000000000000000000000..00c36ec75cbd17dcab1f90aa4990c57e76077c14 GIT binary patch literal 17299 zcmdtK30Tf+|1bJWW+_7nsaT4nL6Q;`GChUTs5GLIs5EFESgK`=hvt+t4+_n5OB5P4 zQfZXNr;;X(`*T}s+3$Jx`Je0j|L5%M+Izp(>oPn&zu~^W!)N&3>!$L_qsy1BUrJHb za@w&&Dik%(ouZgp7ca!WNPKAeg5UPo96oKMYGG_+XJ}$@J{Tt43DV zrWWSnB2pqdgf?EVv9Yw478Skx>jy+EtV~2DUZlq3B1TC@ z?a%==`(Var2Oag=*|~4yOdMN1H!h$ZE?rrenMC)A3@RDOI>~{fwaGq74e- zTs1o^dN>$Rey?97My?+gLK-%NN}r$(Lkm3LUx z>6r{xShWl>8k~~OiL(^0z~cxN7S=An?*%&Z_v5$Qo2Ypdb()04?2dn0BTvnz zsOM|vZKNpoH!CP6e94nqOi>16|LcFnGS0TI?wxV6>E|rlv9#t~r+Dquiz4x{0*>RK z?bLG}Z5 zf7UtFRya1>m~N48)Z#ibiKpp#w>7l1UP?1jCl>dPJ$!pjpt#AsX4ff(vkNP=H10)_D)k+OiWDh)YBVQR#xVpEbx7WOHC{^oxVrH4>DMA1@W2TIU(|=kJU9-f-%x85kJMF5K3G3kj-5-I1So$R{c)iUr@< zGR5RR{Tnq;;C`svtQPY^7G*|5s(RG%bqnUt?+!2tc~{?AGrg3BMJ-^bk$I!&_U$Fj za}|Q>aeOq^siE=l^ooUFi#tpFB+kEGv3%XmL*p%ObHY=uW1mbKl1;pu9s8a+54IpS z%7gbv+YJO?+8u=duUfsD|Fb(xpZy2>B_NaWc6?N5FKYQf9Pjk_;5q|iQR+i7;b_pu%6KIJm~ zt=O^uMRAHni>#0EnYtA1z}=VQtUBMD*2J6|9v|1ltJ!u}Zd%T@`#78I#FO7PZ(f!& z$R;RQ{ZRMp3<(!n z6$0?lU`3K{wg#@L`f$sMUB;zr9qjEd;6)MUK6!JqPBRsA)82eNsr7o*PY>VTW!btP zvC>l$t2)`{#Y@6S!n{eUrI=ZHAIXGcUaZ_Be)-dH!k(QgzIW@7KPol#T_QtdoB}mU za>twFMf0asW+q2f`|6%C7^hC1(oVVXK;ezI0VpedG9&%W)Rtl3&mJtu~Q%Vh3wREv$}*##={JGPZm;E&da4~vGVK_p!L?q z*Poa=Z*1Hf;xs@q5cNS+JyzxLiNIZ_klLf|w?*R|M|+KZmOWXFk}h!n!0!u5oUfO* ziTUlf-@f$qZ4WAo8u*;uX!5v}?(ZLSn^Uy;`9QO(k_&F1_o4!nrk)2!c}`up z5Hs_qZ;R{H3A#=D>m`wqk+Fy(?d+@1=yZCD{kOATiwqKVGM_Hv6zN96LoDYr_`h7w z80(rI$R2Fq^v=`!G2F>d!}}!gIDAl;O?LReUs zqV%Go%oCczX8!&L&$~874oN;n|ouruNd?TPcsnCRQz$ zzK~_@6DH<`-B`YhO&Kpx4}|A!G&q2!wxGSIr^oV>COt|i)Kz}5xcoEiR6M}!j|w+w zp`c;ZtYh@`5*KZXr>4I=RI-_!cJN9=4ZS!y(i6DT=vHq{>}DECG+!YttHLgQhfWTU z8#lVkBwN(%?I*Z-<>Uf)nLeEw%-2U+eE41=XA#QC{+d5GlO(7X^CVs~NpSDpGkJM= zW0yI$Yp7XT4qfIey=U(3?g#f4Rmjc#3>tdB ze*SL5SMzBq=uR`V4zxY9_m8$Yj@D|9c6iIhVR;)et)q?00wWP4JqX6ML9{j1>S!fD zzA0@7UYC&v)6>%=rqOd0=nW~R*77p-#*$~!F2zQj2vVTOX*`RIQ;%=1wCk=6BLx`M zZ*a`JEo$GseY;SDuox$iwW^`AE;cPL<308IZnbtTE?aqdd4+Ye)J!Tu)KL~kQBe*r zU%yKk;gRY%dJ)yO%y1#6yDcd>Z&8andwOE=QaYTXdTO`V2&dp@4j(?u(I9qj!=9(7 z!jJ4p(RFHhX{6{xu`FI(ImT#|a2&ZnZh$yY+rQsk&#{L;7wO8{^86c?yXAR>*(L!# zzSlg|=QroPWum@(IZuicdEb}G$sFwL5m=L+T1|Z)K9pz;G@Q!!KHF0f;+M~E^nAsL?%T4m+HW1joeYL>P}$dBD~j4L zyVf%d4Omc0>NF2eUGTEaRI^7%v3Irj?PVU)!qr1=+3mZjbjI z^N)#%jEwb?R|kUGH%u2-6niUnzRyhKq4vM<_3?>BGyFKmlm6ShR^5!NpX!T?y(oLh zeKK={CcL}=bOr1hc`hY^oOuM)-T9vZ>Rt=KDK5^=0)kY2`(J{S0%}4VmQ(vb9R1Iu z(2g{wArg7ZM01|FyHh^fRFAZ^wKe3qWV>V=u3azVn1bbr*lF}$VCPPiMQl7aAB)ix zYQvARVNu^!R4BPjjj3O~n)XQ^%d^Ah%)$Zy2wh?A6yH=R>&H*udv_^>_`_PcMxco*VwIhpM2- zvIH=D7r&0~{sTGR%lF2qMBe&Z8gR~H+4AM7bC=e7%1#f--`%iB<*~Faov$oNQt8^Y zYm<|GNwv97c8r#MeHx9{kajr;NJ5YnDC?5dkZzH*O*KkDO6p_N0X($-Yhe>=Zf4Le z-n2T(@oRvI+KaP?B`($+3w520b(wmw`RJpNki@rdk2wVa<^)QZk(8jRpsFDM``eW0 zKp~xNZDD9_{*r4E>kl)HsA|v^oS=kaG7Jq%b&!Nh2%4fT#&E$xwQ)u6tH*dCyi&xJ|<4R$77U4?A&DT+9QZ9tm z)Tnu-F)w08SvXY1%XVY_f(52!ff8d3EiJ8vmqxeIEcs|FSFV({{(9$X|3|~Y_XehSXi)D73!Gp+Ytiuuh?*TQ_A|J9heL+I%ftCo?@%sGy*r0)WqO zk)4~iUcNy}8BgQu<>i%il@W({$UJ)tj~#WTgc6`B$^M84aUOmbWS)+Plr#@6y31u( zEjv3q8z|?NC;lDuH1LD9U4rwYD8 zvFRei-5qqq^#(*6*JJd7Okfe^2Y5zb|EF)xgt|@B=2K(UBfu zC4QpYckZlePCxlr8Vo58Jd~gI?%lhkY;2mS3b{&ZYL8yNe3@c5sAs(h6~JI;dN9+a zx`Y7GF7@oIm&sdzVbpH+-uG0-X-q&yMmJKyhaMUlT4;iY@(BqMp(!XS*)4XfPt$L_ zD!ymWp7-zGy~wY4|6VX+C8>DD!psKQR~h|s^`OnjWL01w0^H(`2kiVG%ZbyHi3*gu ze`xf90|&BfdguVk9hF-*Z!UDLFi=*mT&}c0-zl`-#iRc9ztoX7Ry4JO`EP!sj7?1X z!13dNDG9Kn^DAEbSwcXg6%-X!4;{L}x9zvz4rbd8)}co*Tr{3(^8*Q?hgTl1-FOgzVD-fL*`GD&lE)cqjhX{sEVl@8VmUc1-!;!B;1yZUFLM@e_^+Ytz*@oY8(Zf3^ygFnfJf8wXHNKu=OS7&!9T$galB(3-k@`eAirQ zo9>M?X{#@PAaBY9QNRm^k1uoQb)5(!d>fUdmk<*0WIh_OH4zQYYplbyd^KMsFhg@{ zY1`In*6cE_i|`9nUkLH9Ga!q#6`h$Ne00>Fk)CRL1TYd&Zj61&gPKN_Q3DOBilosX zXYcXIKo6RH*V3X7lBc1q9f(jf(bz`rV%)%DaOqM4C{y_Fi`e22Ib&l$@Mc(=UoTw% zMnK?rZrDuT)PSm^W0sZ?zI!^vl&KP(7cE*cg%_&_iofI6a>|a@sFDtb4k|=iE>f@> z*@+rlpWQGXL3?;U`O_|&Ze^!N2r3-h+#pYskEp($ZuV7mfQZ7bs;a7*F!@D<0f2wi za9QMpfvz^G3***@ADc1_L3&UHEELp8hymw~F)HzmI~DGklbbsVje)~HzcKA{b<5nW z9a+RMnJrt6pk&vgf~UI9IC9Im>gZtnOz71Ox=i zIHi%`L4l#s0VKn-Z2K;L|5|pjIVV#CVk7p-6cw8gHY~G*>$LrHURfP9F5uuAU2p9E z6M>z!-1}*c6K!4+1_cztvOn=vDBt0uN8{zaSS9;Sitlk}IsbSm?*vGymU>a0f9uwt zY9j{^&%ls`4YZ&4@84H}aSq0bAY`7F#)`Y+^-Ano01;b0dPSXSQ$P&0jh?!k<5XzR$a_vy*fJFHS5~_LbhB8ByfTn*{E#r!=^;b7s7yV%#+s zkyXIVCY6E?eUgcZX>2UdWlC`OZVkXQ^o|ct4*X88kK9ruTpgF*G1~u0_2E_}4WtZ_ z4!gTAI5;?bZaapRY4XC#c+1UR(4TNX)k20ijAd(0eV%Cjo$U*-exh!+;MT22v6F=D zx@1R3M??FJnw^>2jyC~qS54B(-DTdCaWDxh@kHRtMJgD&@665~L|d>!4A+=`mW?St zAD_UcO>I%3OVG!FNBU~A$QG`TZf5=%b80iu(C87^j6Tr(@_mFx5C0jT2XhvJI(se(DHixd%K zY9bXmi6D-eqLJ@9^M%1+l**HQ+8w-};*Ui^q0gSqaX{EW=bJ(hE84)8)r-7hO8K@EV2VId##A^0>tefsq4 zb(EMSFMU*YnH>30$R;OLxMP>mdv;VB*^0dIquy7INg15bKe^of=FOYy#f|S^mAByK zAXvvAy2-_6n*8Y}VcvoTPSDLxTO)LOBW-wSs1n?P&^QyGRpf~c8xB@xW@i5V{07?8 zqXF*W78V75klFjs=IJbmtA!CxsH;J2O(P_6^{1|EFX+pM`}* zGAkQ4ZqBGz+P!|oG~Pg`IK^u}eplZ0e=)71<`)2^#={qqwjX-3j%;Iru>UGb5x^Nm zHsFc?zSHDs>gTR+-?pGEM5Zx;#9`}}<7XCrg&Z_lEH@hly)~ZpaEqX3VsPOYe1(<- z6?{vmEQQK2so;TjewuF6TEOIWd3R9RKg&r?Kvxd1{dxK8JtYMj5T>w0Dm|8Q^3gmE z{dGy;MFy;)lz`1pf>8Oj0mySt21{+C^){v_%}&-rP@tM>C^bZmg;g;&1|+|2 z+qQTA+|7w1_7WOc42lUW1I|DVq_j(awRn>Tmex$`t_{YsiF;foQ*v^0N`D~)?|s96 zkT&gRk^BjeBOZ{o4{TrZ?*_|QHAM90EL*e7EqS`6em*xWBzXR@tcy0bbJyQLcX{E^ zwM9IYz!@XpsPPcEiDnLT{gl^j`V^Kd|DRqi?oKD#Erk8*zfx5?>Mx}Qa#-CzG2B}n z?L9p+Qzk^VtLk|6{2ar=gXTn-5dxpnt$ zE$pI!3;L+ub$}l!=Zaa$(jn7S;8c*Mqq#Zvy@h3%YT0)1nSQ=ru{W-yosc zZO$e2Vyyz~f)8*f2!AA>R`Iqdyo5hBlRq~;R|5h_bXYpADJ$PkGymNCJl{-diGJThPMDu))*Qn`ohdcyJy?lws3#B*4P8)D zvfi)}K~&INAI+OL59qkR@h^M@nTZ4dvaFW4j&8Hg06ZsAvhM#! zOmwF0A$(5(A)(_S?=`3sAnb`iVaTMwb+RbM{U~oo@2-zThuozwFH&Qv% zs0+p`WmcaUfq7;uO z@Xg{;ivw+?@Gng_OvT-ac}EPFhzLFpFR%FX@93V8L26jn);cf$&O~!9 zKR$5YAxyEtqlO0~*++Dij3w0~OctNB)B$~J!M@R)bGdltY310z(2B(8rvpKPpizTN zi2d`0d96t1QfYR4Z2o786B*S|-sQiWdF}f3jwPeBu9H1m|9(c-AhR6Pd}nyrw$LrDXh)s z=H{m9hdUXpLx(qqep@KN(bJG9H$-@rI9J5-tFs#bCUG}A+1tk)^jJ#FaJA@@+`m3; z^%pz$&%<|)6Z}=6b25}^WN0X(b6zDKfoaqEp2NfsA5Z}+C_k8M)t8|yLH!Q2vbKJ# zi{e1d`c*R_K%gDQ*3%vFn%Bp@80?<;kOg|QO(Tu(-T*KdX(S?5CIM@ z?=HIm9k_JN=vT`xo~x z?GO|D@X3pEKgb~~sgv!*xN5tOYTf0$8fwXZb?T;dO>^H^M7$y{+BK4Nota8sIXG23 z=c!?PnVV`oU;3{Q_b1fEsLzd(>7DIPntr$|KMY4;8lvtXGeecZ zy_y6z!^7F`2_4R0eY(z~9e_V=E@#g^C7qeDz7I!v)&D<=o}IVCm;`l}aIfJRbk1x)h zl-mNFU}#<9L?x}0vV20Q99TU8g=1rgT9gl(NqO)U{{^LQ-(sHRes0B2_G|YS`|Scj z6%|c7$m1~;v%8&(R`r3#t)qiVmca!p=E7Rfg{&K5_!WIGVA5pi^5wQ4oBy7b!r;P- z^nYtbjON@kTa`jm#;D>SO%Q}*i_-+;iSdPKux2kr>D<^$mr|q6VDD-H$lH= z&zVJ@J0y`Qtw`Fb!GaQ|;F1RDZd*|g}+y0JVUHtn=a0mRcn^CW~j*KxE80}-X` zNoFf%7*V@eI?`Me{6wDJxG|rfugRG^>Hhr{E>nzj53TiB>jz!FKa1Cs)_-ye@%jI1 ze2!0@>)TzVD^>`;Rv|Ltu#JQt))$p3Z zzTTx&>pj$v44UWI#1|n{KbaEhUa`JkMkWrE{110}VGV{7kncrzQ%@@b8KR0*>|GHenQGSleD;*sj z%UnVWJ~!w`i-fVemmnsZpeeyzi~&{sbZNKC%xFDp+e%z5|xIH|p!Gc&I1-mL-(^_M`VUoPyj$@cm_^>_wP5|F}QH z-@mJZn=xGeyPe!*(?YzP_wTLjnFh)OlIfDm?vT*YSSHaW5!7#fj&hgVewAqlU<93g z?b`02`e2JM;3OcI^d(UYGJ*~=T!wc-_4_e7*`Ti;r?%}&FBAKGzdEMYa`tSh`#98t z_obyN`S-Z@e(j}Ou1?HRdzY{R_?}!@K;Rht(SrwVl_3uv7`Cjz@CTZ?^rd{jfs>)K zmj{0WaSQ@T+c>k;H^$e0)*ZY=YAGzN}0=*|_X@(z*r3mx6*evoQUvB&Fr$8VU*oeelhEYdwlT zLVNyOo<8BfMbj!+GEJ+_~&^}yosk0Zllld#O z0wzt%-pKd%Eqg=5tRGHw-D;P7nGu8{q9eFSIcBkY0k`G2qR)-Rl=~s-23N*Ir^(xAd=gM+l>FsMszysZAMvQ*le!AsDWbt*Kq9X1q#}tuJ-x%Xvw59ZqWP{+c!PrTp4TN_iSpgEQOpNLA^l zJo<|2oxe$?V*?xb&53p}Pd$>B%30Ls{1r=a>3==aVyU0F$@hVp%e=i4)v84cme}muHIH3(-bVMmtR@LY7j&b9Ho9@P zn6PYgL(_HN#}TPjG%d*LcjtEDTICUJN5NAPqDJ~ldP=>HtkOGEVsx%`_hR?A50gXJ z&UZiPQ`}zjV@bea#?&3H$%V$7C~fZX21SRZp6U#DPrldzwdv{3N&gpCttiv2x&uLpdymna#_ zoL5mZmOX`UwYhKYqB7{F`X+wGrFBl9Lxh@UT6+2emLy-cvtAc8#djM!ijtssZO(v+ zUGi|-pO56`%!QBrQ5Nr(y0YaX^SJ{d=bO=e=33LGN){CWh!80Z*jNKqhN!xleqXE( zx6zp?b`HrPpPYv+KImW)opyb~-iAdp&I_a#`uXb?Rxu5gh~}%oh6DBqhbs{_F&?=qOb~7n=)XP5ZIwNK-=^0dK!w&_9<#h_@+xLf)V^9#Dr zt=qSg(=nh-=CDBM99*}+fIxc~8;4#+kAU;iwZ>`d77gEa*LT*{sSQcBK|$7fTD#@x zHlwf9jr4Qlmid)$>l!wCT()Pt*yPe4)*1e7CB{va`t>0e1i}X0p5J#I6zy` zJ#I7O0F(t9`c@Pa=j<#Nzvuld1_#La!S3C4v$7bOidG6GybBZS%eGr5{$)-b##%mv zh#6lZ=D|@cq-EW7CqRtTL}P=UYZ0c&$mBWz%ES2W(n4Gm2G{gp?fztJGMhKcWA?$p zwFtHo$xtiu(J^7#4e8^viFA zuBHMJD#f^Lz0({QF#MYJSBfZ$IO00OB_(@!J9-oe4N)L%?eXI7;A-yS8MqgZE! zugg;0uOLpyi3}OIt0UvVT>tHqN_$j$M~6}Jrww|*J6CMAJTBrUL@T}i`|tSYkEDGuyOzHBwol&z$0`1v7t4Jn71HtJh1HwIE-K{S5)u z44jp?y2L!R?kfK@g|VXxm>kp2unen9(oZ6Ds7O_jgvo&~CZ+TmKo2i#830mFbsZ^q zAPEqBNgk8YN=S^67%nk|fJ?vC;^1p8XB<26xJwR@C1@6ShG^}qj5ptOI0czAZi<~N zS_?X7X}d1!!FeIAm#;}|*DqeWbSIfSaB74%%K|;L? z*oTU}VkM|l%V|Y;mF0yK9XS||t2&K`&aD7|T~0d!VLAT2kXpU>ryVTe&2X{5ETaw*mBi*b7b>eZ9RcK5<2+ z0>fow_^WV_Pr|pBkNwdj?@r3Hm?!cC+^daO2^zv8%QYC;iC$ zl%%uxam-@5oVikycKM8LPt{=z5=uKyJf9s)&nFfblnYS}nveaT#fak5d&*+rf>LIAQLf!Nbf54}85P)_;G6U_u_^thoNW$0vq5PogS@z$a z5`_p#0cj8Lsosq3Yq?aa@=c~<*&3lryk07-S*|pW@wupF%uFjJ@eX^ZDv%$V=xFS# zRy}o_{T@nWfMwf%7q=a3{yb|9aizCDDT&O{lU2tr-P2laf84uQhl44%KF=hiTP2I- z55M0&7Ft+XNO)MP`Dbk}Hr_he>K0c6Jfd*c0!O1xLCg93)PX6q=R}c`So7Uq;m@CS z2=PV*-X!mN0SQ6?aeT=YMV)y^@_zjI5esJpBG>(RMX|$>P53?!)ttuoh)WO$lv-UV zzZNf~1~FJlCZ|SV{Kfve;?k|Zp?tKgDA*4{N251}_Ce5z1t=$m!IqQ3G05u+fZlH= z$wE17W9@Q4h7lzn!z~G`_!VLf-CRW^GMM2}_^ZH<9nU|aP8_5T_JUe$a(U77IVADw8 zUKr41NEQ?+8saE>32L}w>6_7gPEJmHn<@lpq!6Q1=jNh}AMETczJJOF9Ih+|uYmGSK2J@!M@7omO9EhH$;q(jkQuyI_&9yhM zVAZoCXPi6<$4VdZSjuq+V~6XJhet5=a0gS^ntm>t!|Rjy&Oz}SljRiA*@5#e22Iu# zGDm>S?qVRVLF!8TjlNrXis@X|sB7Q4!@bvIqQn#S1kP40hicorW2d;d?wJW)$DT;P zJJ`5zB>&Hw;bpln6qRBjYTor}hq=txcE^zKRx?(Tq_A&+wBQ+V4Ne-B_(sMZzx}7r zkRGpwW#Z?0R}Zyo6tg1P{SzLW#KcYkmi*`q0x*C9NW8Gj!%UWY!6`gm87F@p=HTT` zg3l%hDV=|Grb}*)OrFGJ@F@GsL}De19XZ8GC~dqVlk)3FV5!tCFPJ1t>sl?s}4_S0RoD$KZzmWo$oq%73zhHglb4b>$pi=8^WSlpdjN^*Y&qq#Uv^|ewX z&-n+J2oq`aaANO!vU0~c4P+iAL;IL`AVw%oogHm%ZYJ|$IP5iGnE;DY8!-7#C#u4aD8Yi^kRhaVkQo~S_thF2UwLs@y9AKK&G}k=masvaWE*62=-tA zsQ*``jzC8z$9(W_z0iy5u&x`@=E$1jCq*!C0cj)#egEfi3MZ7NRCq;By3|HsuZ)jS zu1Gh#h>}27g2<^RAr42_WJd0j=|h-=F*pPy?KYdk*HaoGP7X^Uy(4g-V*9pjv~}y& zIbw>@!toB427~*mi1E~PVwz*Drw(H5qrkv8m~t|c-Qi;l;?hC6BDja~Ia?FQTpimy zIEhb7t3uIIIN*0Gx`V}zgxKx zL)Wo5JEDtLg&g-KWok;69P2>YxY$~74Sj4_ow9OTn20xPrl82_5i&Uu9b7m`4Dx2%WH;b@72=#=Odz`zG_t<=~0zlp*H?g0XSqe%NedX((Yd!Yuh`uDtt> z!+*&ws;4oQP#ddyly2@A@Ex-PI8aM3Gfqw?-Y*8APm%F*q=d`tkFGJTA~ISr{o^|s zLfUXo+@g8klo+J55kMTN(lp(NFjxps#c66*1~F3r0WG9wF}S|xj_us+3=t&d=K!L- z#$UX6;rOG|k7M1sSVVB=4-;iz{i%=C{`O5PD3Pl!?qrbva{a-^)X3v#Otml09nJk- zzE`rpPuo4KnH+dUSLwsR2Jy`K-oX{yYd27X8lHk9s&{#0v_YH5xg30#pVs31{VvWy z%6hrL)u&BvR^#wIb5}wRTx1lOua8Xkqu7u+Zz8W^HYFvu0>_Xrk?nCXmUI8N0+x+b zIvj{|B)Ab!suEeEM%a-T~Q&Mm;}K{k%4N1Pg&}nB?YekTh?K0p@Y`21v>xCtu_nG0kDojR90) zj9Fd44STC1Zw72eAJSs&mcAlKA<=ch?A$x_9VpvbHTTTR$q25&e zD(-#u&*6HF0>7vugK(Uu3Wr23&s7mMrM9QDKigJM2Tm^C# z1Z6eSB-Di*1Fr@dV7TN>v@auOIH*wB&yCw%xPwKLlZh(7+V*Mz;SD$+5NTvwNG8k4 zU-4fpNMEE$-S=mjZ?F>Qwm+cInr9l=T(QQH_A-C5--i~pF8td_Mmzj3bb5T{`y7+H X{~9fylb>(m3KZ?|$wP?;4X*z;xi>_? literal 0 HcmV?d00001 diff --git a/summittests/plots/lsstcam-dc01.png b/summittests/plots/lsstcam-dc01.png new file mode 100644 index 0000000000000000000000000000000000000000..98ac29a2116f485e21180f06809d42dd425adf49 GIT binary patch literal 10781 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 literal 0 HcmV?d00001 diff --git a/summittests/plots/lsstcam-dc03.png b/summittests/plots/lsstcam-dc03.png new file mode 100644 index 0000000000000000000000000000000000000000..f7c086b0b196b21650dc9e6d7918f297be5df134 GIT binary patch literal 18590 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 Iarw9Z1;IB_=l}o! literal 0 HcmV?d00001 diff --git a/summittests/plots/lsstcam-dc04.png b/summittests/plots/lsstcam-dc04.png new file mode 100644 index 0000000000000000000000000000000000000000..230c281a1d94d723325f158f73b0324432cfaecf GIT binary patch literal 16678 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 bE>PKL8^5gTUKS6!K+#UfA5S=DaOHmh@7Dik literal 0 HcmV?d00001 diff --git a/summittests/plots/lsstcam-dc05.png b/summittests/plots/lsstcam-dc05.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ff970e5296eb91e9f82d99f899ece32e8e1c41 GIT binary patch literal 17379 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 literal 0 HcmV?d00001 diff --git a/summittests/plots/lsstcam-dc09.png b/summittests/plots/lsstcam-dc09.png new file mode 100644 index 0000000000000000000000000000000000000000..7f50823abd879d2e2757919087cd43f5d969371f GIT binary patch literal 17422 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 literal 0 HcmV?d00001 diff --git a/summittests/plots/sdfrome002.png b/summittests/plots/sdfrome002.png new file mode 100644 index 0000000000000000000000000000000000000000..a103b0b65bd7af1c04e70c59623cbec7a5767239 GIT binary patch literal 18627 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 z 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 H^3DGRe!3Wf literal 0 HcmV?d00001 diff --git a/summittests/readTest.sh b/summittests/readTest.sh index adcf27a..c23a124 100755 --- a/summittests/readTest.sh +++ b/summittests/readTest.sh @@ -4,35 +4,33 @@ source envvars.sh -source venv/bin/activate - - -repeat=2 +totalfiles=20 if [ $1 ] then repeat="$1" fi -echo "Just read repeat $repeat" +echo "Just read total $totalfiles" -files=`ls ~tonyj/Test/MC*/* | head -${count}` +files=`ls ${datadir}/MC*/* ` fcount=0 -l=0 -while [[ l -le repeat ]] +while [[ fcount -le totalfiles ]] do -l=$((l + 1)) for f in $files; do - key=`echo $f | cut -d'/' -f6 | sed 's/.fits//g'` ./readFile.sh $f & fcount=$((fcount + 1)) + if [[ fcount -ge totalfiles ]] + then + break + fi if [ $((fcount % 20)) == 0 ] then sleep 20s - echo "Sleeping" + echo "Sleeping after $fcount" fi done done diff --git a/summittests/report.py b/summittests/report.py index c1c3be7..02823c7 100644 --- a/summittests/report.py +++ b/summittests/report.py @@ -1,33 +1,46 @@ -import matplotlib.pyplot as plt -import numpy as np -import sys import re - +import sys from typing import Dict, TextIO +import matplotlib.pyplot as plt +import numpy as np + FIELDRE = re.compile(r'INFO (.+) __main__ - ([0-9]+.[0-9]+) ([0-9]+.[0-9]+)') -def oneplot(host, times): - print(f"{host} {len(times)} files Mean:{np.mean(times):.2f} max:{np.max(times):.2f} " +def oneplot(host, times, filecount): + """Plot a histogram of the times for one host""" + print(f"{host} {filecount} files Mean:{np.mean(times):.2f} max:{np.max(times):.2f} " f"min: {np.min(times):.2f} std:{np.std(times):.2f}, var:{np.var(times):.2f} seconds") - bins = np.arange(3, 20.0, 1) + bins = np.arange(2, 40.0, 1) + plt.clf() plt.hist(times, bins=bins) - plt.title(f"{host} histogram") + plt.title(f"{host} {filecount} files") + plt.ylabel("Number of files") + plt.xlabel("Time (seconds)") + plt.axvline(x=7, color='r', label='requirement') + plt.savefig(f"plots/{host}.png") pass def plot(results): + """Plot a histogram of the times for all hosts""" alltimes = [] - for host, timesall in results.items(): - times = [float(t[2]) for t in timesall] + filecount = 0 + hosts = sorted(results.keys()) + for host in hosts: + times_from_log = results[host] + times = [t[2] for t in times_from_log] alltimes.append(times) - oneplot(host, times) - oneplot("all", alltimes) + oneplot(host, times, len(times)) + filecount += len(times) + if len(results.keys()) > 1: + oneplot("all", alltimes, filecount) def load(host: str, fin: TextIO, results: Dict) -> Dict: + """Load the times from one file""" times = [] for line in fin: if 'Starting' in line: @@ -36,22 +49,26 @@ def load(host: str, fin: TextIO, results: Dict) -> Dict: if not fields: print(f"Could not parse {line} for {host}", sys.stderr) continue - time = [fields.group(1), fields.group(2), fields.group(3)] + time = [fields.group(1), float(fields.group(2)), float(fields.group(3))] times.append(time) results[host] = times return results def process(files: list) -> Dict: + """Process all the files make a dict of times""" results = {} + name1 = re.compile(r'.*/*(lsstcam-dc[0,1][0-9])-.*') + name2 = re.compile(r'(.+[0,1][0-9])-.') for f in files: - name = re.compile(r'.*/(lsstcam-dc[0,1][0-9])-.*') - match = name.match(f) - if not match: + match = name1.match(f) + if match is None: + match = name2.match(f) + if match is None: print(f"Could not get host from {f}", sys.stderr) - exit - host = match.groups()[0] - print(host) + host = f.replace('.log', '') + else: + host = match.group(1) with open(f, 'r') as fin: load(host, fin, results) diff --git a/summittests/sendTest.sh b/summittests/sendTest.sh index 258cc7b..135f9e6 100755 --- a/summittests/sendTest.sh +++ b/summittests/sendTest.sh @@ -13,9 +13,9 @@ if [ $1 ] then repeat="$1" fi -echo "$HOSTNAME S3_ENDPOINT_URL is $S3_ENDPOINT_URL repeat $repeat $prefix" +echo "$HOSTNAME S3_ENDPOINT_URL is $S3_ENDPOINT_URL repeat $repeat $datadir" -files=`ls ~tonyj/Test/MC*/* | head -${count}` +files=`ls ${datadir}/MC*/* ` fcount=0 l=0 @@ -24,14 +24,15 @@ while [[ l -le repeat ]] do l=$((l + 1)) for f in $files; do - key=`echo $f | cut -d'/' -f6 | sed 's/.fits//g'` + key=`echo $f | cut -d'/' -f6` python ../python/s3daemon/send.py $f /${bucket}/${prefix}/${key} & fcount=$((fcount + 1)) if [ $((fcount % 20)) == 0 ] - echo Sent $key total $fcount then - sleep 20s + echo Sent $key total $fcount echo "Sleeping" + sleep 20s fi done done +echo Sent total $fcount From 965cce7c4ca4512d2aebc854414b3d4be8527b7a Mon Sep 17 00:00:00 2001 From: William O'Mullane Date: Fri, 20 Oct 2023 16:28:26 +0000 Subject: [PATCH 3/3] mod for total files not repeats in send --- summittests/sendTest.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/summittests/sendTest.sh b/summittests/sendTest.sh index 135f9e6..17c9ea4 100755 --- a/summittests/sendTest.sh +++ b/summittests/sendTest.sh @@ -8,25 +8,27 @@ source venv/bin/activate -repeat=2 +total=2 if [ $1 ] then - repeat="$1" + total="$1" fi -echo "$HOSTNAME S3_ENDPOINT_URL is $S3_ENDPOINT_URL repeat $repeat $datadir" +echo "$HOSTNAME S3_ENDPOINT_URL is $S3_ENDPOINT_URL total $total $datadir" files=`ls ${datadir}/MC*/* ` fcount=0 -l=0 -while [[ l -le repeat ]] +while [[ fcount -le total ]] do -l=$((l + 1)) for f in $files; do key=`echo $f | cut -d'/' -f6` python ../python/s3daemon/send.py $f /${bucket}/${prefix}/${key} & fcount=$((fcount + 1)) + if [[ fcount -ge total0 ]] + then + break + fi if [ $((fcount % 20)) == 0 ] then echo Sent $key total $fcount