Reasonable values for thread_cache_size in relation with Connections
Keep in mind that thread_cache_size controls a "cache".  It is the number of threads (or processes, depending on the OS) to keep open just in case another connection request comes soon.  There is some cost in creating a thread. (This depends on the OS, etc.)

For Windows, thread_cache_size should be zero.  (Sorry, I don't have a reference stating that.)

If thread_cache_size / max_connections &lt; 2% or > 15%, it may be poorly tuned.

If Threads_running / thread_cache_size > 2, then the cache may not be big enough.  (This depends on whether the number of connections is stable or fluctuating wildly.)

I suggest that Threads_created / Connections is not a good metric -- What if you have only one Connection/sec or 1000 Connections/sec?  Hence, I prefer this:  If Threads_created / Uptime > 3/second, I suggest that the cache needs increasing.

In a survey of systems, only 10% had Threads_created / Uptime > 0.26 / sec.

MySQL 5.6.8 automatically computes thread_cache_size based on max_connections.

MariaDB 10.2 takes a different approach; it "increases value of thread_cache_size to 32; adds 5 minute timeout before automatically removing threads from thread cache."  This feels like a good algorithm.

Bottom line:  One should rarely have to worry about thread_cache_size.