After a few minutes, the CRS504 gets slammed at 100%, CRS312 is close, but not as constant. The ground floor switches seem fine even under the heavy load. 50% tops.
At some point CRS504 goes over 300ms ping and eventually starts dropping packets.
When it happens the next time, save the output of
/tool/profile cpu=all
from each of the switches, then post. See
https://help.mikrotik.com/docs/spaces/R ... 3/Profiler for reference to command.
Another useful low-level troubleshooting tool is
/interface ethernet print stats
Here is where to find documentation for that command:
https://help.mikrotik.com/docs/spaces/R ... 1/Ethernet (then go to end)
If you were pinging the ip address associated with the CRS504, that is includeds any time waiting to get CPU time to respond to the ping, since that is a cpu function. If you ping another non-switch device on the other side of the CRS504, it will give you a more accurate indication of link saturation where the delays can be due to queuing waiting for the media.
Something is causing the CPU's to be involved, and as @mkx said, that should not be the case if only switching is involved. So you will probably need to post your sanitized switch configs if you want extra eyes to be able to look for possible causes.
For example to export for the CRS504 you could use the command:
NOTE: edited to correct syntax from "/export terse CRS504.rsc"; when an output file is specified it needs file= preceding the filename .rsc is default. Also removed 'terse" which makes each line standalone, but makes the line contain redundant output.
/export file=CRS504
which will save it to a file on the CRS504, or you can just leave the file name off, and select and copy to clipboard, then paste into a text file editor (e.g. notepad).
Then upload the configs in code sections on the forum, once for each affected device.
Documentation on exporting config to .rsc text file
https://help.mikrotik.com/docs/spaces/R ... tionExport
viewtopic.php?p=1138349#p1138349 @anav's advice concerning
hecklers on the forum.