When any part of the ELK stack bottlenecks, then files begin to build up in the filebeat sector. When this happens, filebeat holds the files open even after deletion with file rotates. The problem i see here is that as files rotate, filebeat does not discriminate and simply appears to diverge resources to all open files.
What happens is a cascading, or exponential, effect. The farther behind filebeat gets, the more files are held open, the less any single file receives focus of resources. This means all open files are worked slower and no files are released and disk space is chewed up by old open files. If the oldest file was given dedicated resources, it could be closed out and that disk space released to the host in order to receive more logs.
For example, if there is 1 open file, all resources are dedicated to sending that file to logstash. Once logs rotate, 2 files are no held open by filebeat, and now only 50% of filebeats "resources" are dedicated to the original file, which means it will now take longer for that file to be processed. Now the file rotates yet again, and the original file is still open and now has even fewer "resources" to work it. That means the disk space is taken up by 3 files all being worked in parallel by filebeat and maximum hard drive space utilized. If, instead, filebeat held the files open, yet dedicated most, more, all resources to the oldest file then that file could be worked with priority and closed out much sooner, freeing up the disk space consumed by said file to go back to the system.
The more filebeat falls behind (not filebeats fault necessarily), the exponentially more it will fall behind. This may not be a problem for 2,3 or 4 files, but when you talk about 30 or 40 files held open it becomes a real problem. it could take an hour or more before an open file lock is released since it is getting lilttle focus in the overall scheme.
I hope i have explained my concerns clearly, and look forward to other's thoughts or solutions.