While I haven’t tested this myself, I think it’d impact (badly) on many things:
Router’s CPU
1.- Processing per-packet into the queues should grow with the number of queues you add
2.- Could mean a router’s lockup in certain stressed scenarios depending on your overall network and hardware
Configuration hassle
1.- You’d have to add a queue per device, and keep it controlled (IPs changing, devices/customers being add/removed, etc.). I know you’re saying you’d do it per subnet, but what if you-wanted-to do it per IP
2.- Your configuration file would be huge (thanks to point 1)
3.- You’d need to add the corresponding OID to your SNMP server, although this can be automated, but if you don’t…
4.- Queue’s OID may change on router’s reboot (not sure if this is the case, but you have to consider this)
5.- You’d need to do this per IP you want to monitor
6.- You’d add queues plus active polling to the server, how many requests will it process? depends on the number of queues (say 1500 queues, means 1500 queries to the router)
Also, what if the paths of traffic need to follow a router where said queues aren’t configured, what would you do?
Admitedly it may work, depending on your hardware and amount of queues needed.
Netflow is the right tool for this, I wrote a post about FastNetMon which is basically a software for detecting DDoS but will help you achieve this, here’s the post: http://forum.mikrotik.com/t/fastnetmon-integration-with-mikrotik-ddos-detection-software/111647/1
We actually use this for providing real time reports on BW usage per each IP we give to the customers, we don’t need to manually add the IPs to the system everytime we add new customers, if it’s from one of our monitored pools and traverses one of our collectors (we have many, even if path changes they’ll use at least one), then the system will have the information for the report available.
Anyway if it’s just 3 queues it’d work, but consider this as a viable future-proof solution to whatever you’re trying to solve.