Hi Sree, Thanks for the heads up.
Best, Anirudh On Mon, Sep 11, 2017 at 3:07 PM, Sree Kuchibhotla <[email protected]> wrote: > Hi Anirudh, > Sure you could go with latest version - but keep in mind that we MAY > change num_cqs() to be equal to the number of cores in a future version. > Same goes for other settings - but they are less likely to change though. > > So if having one completion queue and a minimum of one polling thread is a > hard-requirement for you, I recommend actually overriding the defaults in > your code (like I mentioned earlier) > > -Sree > > On Mon, Sep 11, 2017 at 2:59 PM, Anirudh Kasturi <[email protected]> > wrote: > >> Great ! I found on github for grpc version 1.6.0, the default settings >> are : >> >> num_cqs(1), min_pollers(1), max_pollers(2), cq_timeout_msec(10000) {} >> Probably I am better off going with the latest version then. Thanks again >> Sree. >> >> On Mon, Sep 11, 2017 at 2:53 PM, Sree Kuchibhotla <[email protected]> >> wrote: >> >>> Yes, it is elastic. >>> >>> It will dial the number of threads down to 1 thread (to be more >>> precise, it will dial down to whatever is set in the Se >>> rverBuilder::SyncServerOption::MIN_POLLERS setting - which is "1" by >>> default. Also, this is a "per-completion" queue setting) >>> >>> thanks, >>> >>> -Sree >>> >>> On Mon, Sep 11, 2017 at 2:46 PM, Anirudh Kasturi <[email protected] >>> > wrote: >>> >>>> Hi Sree it worked. So one more question. I believe there is a timeout >>>> for the worker threads. In case there are more requests coming in and the >>>> grpc server spins up new worker threads from the pool based on the incoming >>>> requests, once those requests are processed, would the grpc server spin >>>> them down back again? Is it that elastic? >>>> >>>> Thanks, >>>> Anirudh >>>> >>>> On Mon, Sep 11, 2017 at 1:24 PM, Anirudh Kasturi < >>>> [email protected]> wrote: >>>> >>>>> Thanks a lot Sree. This is very helpful. I will also make sure I >>>>> upgrade my grpc version. >>>>> >>>>> Best, >>>>> Anirudh >>>>> >>>>> On Mon, Sep 11, 2017 at 12:15 PM, Sree Kuchibhotla <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Anirudh, >>>>>> There is no direct way of reducing the number of worker threads. Btw, >>>>>> I am assuming you are using gRPC version earlier than the latest 1.6. >>>>>> >>>>>> If so, when you are using a Synchronous grpc server, it by default >>>>>> creates as many "completion queues" as the number of cores (In the latest >>>>>> version of grpc, we only create ONE completion queue). >>>>>> Each completion queue will have "atleast one" worker thread polling >>>>>> for incoming new RPCs (i.e If a worker thread is busy handling an RPC it >>>>>> just received, we create a new worker thread to poll for new RPCs. So >>>>>> clearly, on a server that handles multiple RPCs in parallel, the number >>>>>> of >>>>>> worker threads at any point may be greater than 1). >>>>>> >>>>>> >>>>>> In anycase, you can reduce the "minimum number of workers" to 1 by >>>>>> having the Sync server create only one completion queue the following >>>>>> way: >>>>>> >>>>>> ServerBuilder builder >>>>>> ... >>>>>> builder.SetSyncServerOption(ServerBuilder::SyncServerOption::NUM_CQS, >>>>>> 1) >>>>>> >>>>>> >>>>>> (Here >>>>>> <https://github.com/grpc/grpc/blob/b6ef6e9ff5701d15a352f38a450de2af49d19657/test/cpp/end2end/end2end_test.cc#L265> >>>>>> is an example of a grpc test that sets the number of completion queues >>>>>> to >>>>>> 4) >>>>>> >>>>>> thanks, >>>>>> Sree >>>>>> >>>>>> On Mon, Sep 11, 2017 at 11:35 AM, Anirudh Kasturi < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hello folks, >>>>>>> >>>>>>> I noticed that when I bring up my grpc server, it spins up worker >>>>>>> threads using the grpc::ThreadManager::WorkerThread::Run(). >>>>>>> The number of worker threads spun = Number of Cores on the server I >>>>>>> bring up my GRPC server on. >>>>>>> >>>>>>> For eg : If I have a VM with 2 cores, the grpc server brings up two >>>>>>> worker threads. If the VM has 40 cores it brings up 40 worker threads. >>>>>>> In reality, I just need one worker thread. Is it possible to bring >>>>>>> up only one worker thread? Is that configurable? Also is there a way I >>>>>>> can >>>>>>> name the thread so that we have a way to track it? Thank you. >>>>>>> >>>>>>> Best, >>>>>>> Anirudh >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "grpc.io" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at https://groups.google.com/group/grpc-io. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/grpc-io/c744a0c7-c248-4a16 >>>>>>> -9bf1-df7fba045fe0%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/grpc-io/c744a0c7-c248-4a16-9bf1-df7fba045fe0%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CAOOzfuyG1TSFHC0diNNLgr5iZZ_s8CJQX24-W3i5U2u8ztdPFw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
