Hi Deepak, grpc core internally creates two sets of thread pools : - Timer thread pool <https://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/timer_manager.c> (to execute timers/alarms): Max of 2 threads. Typically just one. - Executor thread pool <https://github.com/grpc/grpc/blob/master/src/core/lib/iomgr/executor.c#L81>: A dedicated thread pool (with max threads of 2*number of cores on your machine) that handle executing closures.=
So this is what you are perhaps seeing. Currently we have not exposed a way to configure these thread pool sizes but we might add it in future. thanks, -Sree On Thursday, August 3, 2017 at 3:32:28 PM UTC-7, [email protected] wrote: > > Hi, > > I am planning to implement a service that has very low scale i.e. it would > service only a handful of clients. > I want to keep resource usage to minimal and thus trying to use a single > thread for all clients. After reading > gRPC documentation it seems async model is the way to go. But when I tried > greeter_async_server example > in cpp, I see it creates multiple threads(18 in my case) although it uses > a single thread to service all clients(which I want) > . > Is there a way to avoid creation of so many threads in async model? > > bash-4.2$ ps -ax | grep async > 1425 pts/5 Sl+ 0:27 ./greeter_async_server > > top - 15:15:02 up 153 days, 1:17, 13 users, load average: 0.00, 0.00, > 0.04 > Threads: 18 total, 0 running, 18 sleeping, 0 stopped, 0 zombie > %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, > 0.0 st > KiB Mem : 49457112 total, 45066340 free, 3105740 used, 1285032 buff/cache > KiB Swap: 2097148 total, 2095108 free, 2040 used. 45603564 avail Mem > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 1425 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.00 > greeter_async_s > 1426 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:12.08 > greeter_async_s > 1428 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.04 > greeter_async_s > 1429 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.81 > greeter_async_s > 1430 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.99 > greeter_async_s > 1431 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.09 > greeter_async_s > 1432 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.77 > greeter_async_s > 1433 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.02 > greeter_async_s > 1434 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.99 > greeter_async_s > 1435 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.08 > greeter_async_s > 1436 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.83 > greeter_async_s > 1437 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.06 > greeter_async_s > 1438 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.91 > greeter_async_s > 1439 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.79 > greeter_async_s > 1440 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:01.06 > greeter_async_s > 1444 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.83 > greeter_async_s > 1445 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.75 > greeter_async_s > 1446 deojha 20 0 244532 7716 5164 S 0.0 0.0 0:00.76 > greeter_async_s > > > Uses single thread to service all clients. > > top - 15:15:42 up 153 days, 1:18, 13 users, load average: 0.22, 0.05, > 0.05 > Threads: 18 total, 0 running, 18 sleeping, 0 stopped, 0 zombie > %Cpu(s): 6.3 us, 7.5 sy, 0.0 ni, 85.7 id, 0.0 wa, 0.0 hi, 0.5 si, > 0.0 st > KiB Mem : 49457112 total, 45056008 free, 3110176 used, 1290928 buff/cache > KiB Swap: 2097148 total, 2095108 free, 2040 used. 45593760 avail Mem > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 1425 deojha 20 0 244640 8308 5548 S 19.6 0.0 0:02.21 > greeter_async_s > 1426 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:12.09 > greeter_async_s > 1428 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.04 > greeter_async_s > 1429 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.81 > greeter_async_s > 1430 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.99 > greeter_async_s > 1431 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.09 > greeter_async_s > 1432 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.77 > greeter_async_s > 1433 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.02 > greeter_async_s > 1434 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.99 > greeter_async_s > 1435 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.08 > greeter_async_s > 1436 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.83 > greeter_async_s > 1437 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.06 > greeter_async_s > 1438 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.91 > greeter_async_s > 1439 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.79 > greeter_async_s > 1440 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:01.06 > greeter_async_s > 1444 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.83 > greeter_async_s > 1445 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.75 > greeter_async_s > 1446 deojha 20 0 244640 8308 5548 S 0.0 0.0 0:00.76 > greeter_async_s > > Regards, > Deepak > -- 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/786d4d12-c680-4e1f-bb4b-3998e1f846e3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
