Hi Apache devs! I have a question for you about the following users@ email thread:
- https://lists.apache.org/thread.html/ba26440a53773426e29296569bec17692c77a4a3bd07e8b5331474c4@1464703063@%3Cusers.httpd.apache.org%3E This one is about Yann's fix for the MinSpareThreads lower bound calculation for worker/event: http://svn.apache.org/viewvc?view=revision&revision=1737447 I was able to explain how it works in case of bucket = 1, but I have doubts when buckets > 1. I've read event/worker code and IIUC: 1) min_spare_threads = threads_per_child * (num_buckets - 1) + num_buckets 2) max_spare_threads = min_spare_threads + threads_per_child * num_buckets 3) idle_spawn_rate controls the amount of new children created in each perform_idle_server_maintenance run. 4) perform_idle_server_maintenance is called per bucket and calculates max|min_spare_threads accordingly. Rick's question in the email thread is about what happens when, with two buckets and two processes for example, httpd reaches 50% of idle threads. I made some calculations and an extra process should be indeed created, but then killed because of the max_spare_threads limit. Is it going to keep creating/destroying child processes or does idle_spawn_rate prevents it? Final goal would be to add notes in (Min|Max)SpareThreads documentation to warn users about the (good) side effects of setting ListenCoresBucketRatio (there is a reference in the trunk doc but very generic, it would be great to have more details IMHO). Thanks a lot! Regards, Luca