which filebeat and logstash version have you installed. Using most recent 5.0 alpha versions of filebeat and logstash, you can try to enable network pipelining mode, in order to decrease network latencies.
beats connecting to logstash, query for all known IPs and choose one IP by chance.
For better load-balancing support you can increase output.logstash.worker
or configure all known hosts (or some hosts multiple times). Every host configured gets a total of output.logstash.worker
workers assigned. That is, your first config will get you 1 output worker and the second with all hosts configured gets you 3 output workers.
If filebeat gets back-pressure from output, it will slow down generating events (reading files).
Without knowing any details about hardware, logstash or filters in logstash, number of beats connecting to one logstash instance, support elasticsearch ingestion rate (baseline performance in general), I have a hard time commenting on number of events/second. There is currently some effort re-implementing beats input plugin in java, which should help a lot with performance (given logstash filters or output is not the bottleneck). I think 3.1.0-beta1 is based on java-based code base, but I wouldn't use it for production yet.