I would like to know from which countries my nodes are mostly used. I tried to use arm for this but on high capacity relays arm eats the same cpu resources as the tor process it monitors
Have you tried tweaking the query rate options in your armrc?
https://gitweb.torproject.org/arm.git/blob/HEAD:/armrc.sample
Switching to the connection panel lets arm often freeze. Is there another way to get country statistics from a node? Maybe something build in Tor?
You can query the locale for an address from tor via...
https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt#l671
To simulate what arm does you could write a script that makes netstat/lsof/procstat queries, parse the results, then feed those addresses to the 'GETINFO ip-to-country/*' command. Actually, I could probably write a script for you that does this via stem (https://stem.readthedocs.org/en/latest/index.html)...
Cheers! -Damian