<div dir="ltr"><div dir="ltr">On Mon, Feb 17, 2020 at 9:44 AM Joseph Fischetti &lt;<a href="mailto:Joseph.Fischetti@marist.edu">Joseph.Fischetti@marist.edu</a>&gt; wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal">1)<span style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:&quot;Times New Roman&quot;">      </span><u></u>If I try to start up the workers with any more than ~8 threads, packet drop and memory usage goes through the roof in pretty short order.  If I try to pin them, the first “worker” cpu’s get pegged pretty high and the others stay more or less idle (though that could be due to the amount of traffic the second worker interface is receiving).<br></p></div></div></blockquote><div><br></div><div>8 workers on each card should work fine.  Based on your netstats output your load balancing might not be working that well.  The total received by interface is:</div><div><br></div>worker-1 7484629230<br>worker-2 13622938689<br>worker-3 4497737524<br><div>worker-4 4479277818</div><div><br></div><div>which is a bit skewed.     </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="gmail-m_-5235885163300334802MsoListParagraph"><u></u></p><p class="gmail-m_-5235885163300334802MsoListParagraph"><u></u><span>2)<span style="font:7pt &quot;Times New Roman&quot;">      </span></span><u></u>If I try to start up “1” worker (per worker node), using the “myricom::*” interface, the worker node goes unresponsive and needs to be hardware bounced.  (Driver issue?)</p></div></div></blockquote><div>Could be.. I never used that feature. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="gmail-m_-5235885163300334802MsoListParagraph"><u></u><u></u></p><p class="gmail-m_-5235885163300334802MsoListParagraph"><u></u><span>3)<span style="font:7pt &quot;Times New Roman&quot;">      </span></span><u></u>I can start workers nodes with multiple workers and ~5 threads each (currently “unpinned”), but after a few days, Packet drop is still excessive.</p></div></div></blockquote><div>Not super surprising with only 5 workers per interface.. with those cpus I&#39;d run 10-12 </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal">My current node.cfg is below [1].  Output from ‘zeekctl netstats’ is also below [2].  It’s been up since Friday ~2:00pm Eastern.  Load average is higher than I would think it should be (given how much cpu these workers actually have, and how idle most of the cpu’s actually are).  Htop output included [3].<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I understand we should probably be pinning the worker threads, but the output of ‘lstopo-no-graphics  --of txt’ is terrible to try and trace with 56 threads available.  Also, do I want to use the “P” or the “L” listings?  I can include that as a follow up if necessary.</p></div></div></blockquote><div><br></div><div>Turning off HT will simplify that quite a bit.  You want the P cores I believe.  In htop you&#39;ll end up with cores 1-28  busy and 29-56 idle since those are the fake ones.  Using lstopo-no-graphics --of ascii (make font really small) may make things easier to understand.</div><div><br></div><div>I&#39;d change your node.cfg to be more like this, the output will make more sense: </div><div>(remember to stop the cluster before changing worker names)</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal">[worker-1-a]<br></p><p class="MsoNormal"><u></u></p><p class="MsoNormal">type=worker<u></u><u></u></p><p class="MsoNormal">host=WORKER 1<u></u><u></u></p><p class="MsoNormal">lb_method=custom<u></u><u></u></p><p class="MsoNormal">lb_procs=5<u></u><u></u></p><p class="MsoNormal">interface=myricom::eth4<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">[worker-1-b]<u></u><u></u></p><p class="MsoNormal">type=worker<u></u><u></u></p><p class="MsoNormal">host=WORKER 1<u></u><u></u></p><p class="MsoNormal">lb_method=custom<u></u><u></u></p><p class="MsoNormal">lb_procs=5<u></u><u></u></p><p class="MsoNormal">interface=myricom::eth5</p></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal"><u></u><u></u></p><p class="MsoNormal"> <u></u></p><p class="MsoNormal">[worker-2-a]<u></u><u></u></p><p class="MsoNormal">type=worker<u></u><u></u></p><p class="MsoNormal">host=WORKER 2<u></u><u></u></p><p class="MsoNormal">lb_method=custom<u></u><u></u></p><p class="MsoNormal">lb_procs=5<u></u><u></u></p><p class="MsoNormal"><u></u>interface=myricom::eth4 </p></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal"> <u></u></p><p class="MsoNormal">[worker-2-b]<u></u><u></u></p><p class="MsoNormal">type=worker<u></u><u></u></p><p class="MsoNormal">host=WORKER 2<u></u><u></u></p><p class="MsoNormal">lb_method=custom<u></u><u></u></p><p class="MsoNormal">lb_procs=5<u></u><u></u></p><p class="MsoNormal">interface=myricom::eth5</p></div></div></blockquote><div><br></div><div>The last time I worked out a node.cfg for a myricom based cluster this is what I ended up with:</div><div><br></div><div>[foo-a]<br>type=worker<br>host=foo<br>interface=myricom::p1p1<br>lb_method=custom<br>lb_procs=8<br>pin_cpus=3,5,7,9,11,13,15,17<br>env_vars=SNF_APP_ID=1,SNF_DATARING_SIZE=16384MB,SNF_DESCRING_SIZE=4096MB<br><br>[foo-b]<br>type=worker<br>host=fooo<br>interface=myricom::p2p1<br>lb_method=custom<br>lb_procs=8<br>pin_cpus=2,4,6,8,10,12,14,16<br>env_vars=SNF_APP_ID=2,SNF_DATARING_SIZE=16384MB,SNF_DESCRING_SIZE=4096MB<br></div><div><br></div><div>I&#39;m about 90% sure I did the pinning right :-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5235885163300334802WordSection1"><p class="MsoNormal"><u></u></p><p class="MsoNormal">[2]<u></u><u></u></p><p class="MsoNormal">================<u></u><u></u></p><p class="MsoNormal">bro@bro-master-1:~$ zeekctl netstats<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"> worker-1-1: 1581949346.194441 recvd=2178149468 dropped=2260820124 link=15063051356<u></u><u></u></p><p class="MsoNormal"> worker-1-2: 1581949346.194473 recvd=274557259 dropped=2260820124 link=13159459147<u></u><u></u></p><p class="MsoNormal"> worker-1-3: 1581949346.168558 recvd=1888926901 dropped=2260820124 link=14773828789<u></u><u></u></p><p class="MsoNormal"> worker-1-4: 1581949346.081130 recvd=2110377092 dropped=2260820124 link=14995278980<u></u><u></u></p><p class="MsoNormal"> worker-1-5: 1581949346.234478 recvd=1032618510 dropped=2260820124 link=13917520398<u></u><u></u></p><p class="MsoNormal"> worker-2-1: 1581949346.269794 recvd=1551167612 dropped=640636540 link=14436069500<u></u><u></u></p><p class="MsoNormal"> worker-2-2: 1581949346.271224 recvd=2811566586 dropped=640636540 link=15696468474<u></u><u></u></p><p class="MsoNormal"> worker-2-3: 1581949346.292474 recvd=3295536154 dropped=640636540 link=16180438042<u></u><u></u></p><p class="MsoNormal"> worker-2-4: 1581949346.314556 recvd=2505663441 dropped=640636540 link=15390565329<u></u><u></u></p><p class="MsoNormal"> worker-2-5: 1581949343.011855 recvd=3459004896 dropped=640636540 link=20638874080<u></u><u></u></p><p class="MsoNormal"><br></p></div></div></blockquote><div><br></div><div>One thing to keep in mind with the myrcom driver is the drops are shared.. so you aren&#39;t dropping 2260820124 per worker, you dropped 2260820124 total.</div><div>The number is right, but to work out the total drop % you need to sum recvd but not the dropped number.</div><div> </div><div>Here&#39;s a script i wrote a while ago that does that.. can pipe netstats output to this:</div><div><br></div><div>#!/usr/bin/env python<br>from __future__ import  print_function<br>import sys<br>import re<br>from collections import defaultdict<br><br>totals = defaultdict(int)<br>host_dropped = {}<br><br>total_rx = total_drop = 0<br><br>for line in sys.stdin:<br>    parts = re.split(&#39;[ =:]+&#39;, line.strip())<br>    node, time, _, recvd, _, dropped, _, link = parts<br>    host = node[:-2]<br>    totals[host] += int(link)<br><br>    total_rx += int(link)<br>    if host not in host_dropped:<br>        total_drop += int(dropped)<br>        host_dropped[host] = int(dropped)<br><br>for host, total in sorted(totals.items()):<br>    if not total: continue<br>    d = host_dropped[host]<br>    print(&quot;%s dropped=%d rx=%d %0.2f%%&quot; % (host, d, total, 100.0*d/total))<br><br>print()<br>print(&quot;Totals dropped=%d rx=%d %0.2f%%&quot; % (total_drop, total_rx, 100.0*total_drop/total_rx))<br></div><div><br></div><div>may need to tweak the host = node[:-2] line if you run more than 9 workers</div><div><br></div><div>running that on your output I get</div><div><br></div><div>worker-1 dropped=2260820124 rx=71909138670 3.14%<br>worker-2 dropped=640636540 rx=82342415425 0.78%<br></div><div><br></div><div>which isn&#39;t so bad.. without accounting for the shared drops it looks more like 15% and 4%.  Double the number of workers and fix the load balancing and you should be able to get that to zero.</div></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Justin</div></div></div>