Nginx-Clojure Module Release 0.1.0--Let Nginx embrace Clojure & Java

Roberto De Ioris roberto at
Wed Jan 15 05:46:11 UTC 2014

> With the default setting pipe is not used.
> Pipe is only used for enable jvm thread pool mode only when jvm_workers >
> 0
> (jvm_workers  default  = 0).
> Further more pipe is never used to transfer the while request or response
> message.
> When under jvm thread pool mode, pipe is only used to transfer a event
> flag
> (only one pointer size)。
> ONLY IF you cann't resolve your performance problems by increasing
> worker_processes or reducing single request-response time, you can
> consider
> the way of setting jvm_workers > 0 which is not encouraged.
> Thread switch cost means Thread context switch cost.

Sorry, but are you saying that your suggested usage for concurrency is
multiprocessing ?

Multiprocessing is completely alien in the jvm (the vm is not even
fork-friendly) and that would mean the nginx worker completly give control
to the jvm and this is something bad as the jvm is a blocking vm.

The jvm world is thread-centric (and trust me, i needed to deal with
dozens of different threading implementations for uWSGI and the jvm is the
best one) so i am quite doubtful saying "multiprocess by default" would be
a successfull approach (well the amount of memory per-app will be huge)

Roberto De Ioris

More information about the nginx mailing list