Is there particular reason for sudden decrease in count ?
Most likely you are using cached thread pool. These timeout when they are not busy and you can see a lot (and by a lot I mean tens of threads) die at once. Having more threads than CPU is generally not a great idea IMHO and even 600-800 is insane. IMHO.
Is there particular guide which talks about such details at minute level ?
In systems where there is a very high number of threads, this is usually the case because no one has paid any attention to the number of threads being used or worried about what they are doing or whether they are really needed. I suspect there isn't anyone who can explain why you need so many threads.
What can be the possible root cause of such sudden increase in thread count ?
This is where you need to look at the stack dump and thread names to get an idea what they are doing, but most likely there is a cached thread pool or two where the number of thread temporarily spikes.
Is GC comes into picture in this case ?
It won't cause the problem but having more thread slows down the time it takes to get all the threads to safe point which is needed to perform a GC. With thousands of threads you can see the GC spending more time waiting for the threads to get to a safe point than actually cleaning garbage.