Re: [discuss] change default settings of sync invocation executor

2019-01-23 Thread yhs0092
I agree that current default value of thread pool size is too small, but I'm 
not sure about the disadvantages of the current fixed thread pool.
Do you mean if multiple service instances is deployed on the same machine, a 
fixed thread pool is not so flexible since the instances cannot clean up some 
idle business thread?


Yours sincerely


Yao Haishi
yhs0...@163.com


On 1/24/2019 10:49,wjm wjm wrote:
or default integrate only one ThreadPoolExecutor?
because most customers TPS is not so high, no need to do this optimize

wjm wjm  于2019年1月24日周四 上午10:35写道:

currently we provide a default sync invocation executor:

- default integrate two fixed thread pool
- thread count for one pool is equals cpu count

for most customers, thread count of one pool is too small, and fixed
thread pool is not so good, so will change to:

- default integrate two ThreadPoolExecutor
- support to configure core/max thread count, keepAlive time and max
queue size for one pool
- default core thread: 25, same to tomcat
- default max thread: 100, tomcat is 200, because we have 2 pool, so
change to 100
- default keepAlive: 1 minute, same to tomcat
- default max queue size: Integer.MAX_VALUE, same to tomcat




Re: [discuss] change default settings of sync invocation executor

2019-01-23 Thread wjm wjm
or default integrate only one ThreadPoolExecutor?
because most customers TPS is not so high, no need to do this optimize

wjm wjm  于2019年1月24日周四 上午10:35写道:

> currently we provide a default sync invocation executor:
>
>- default integrate two fixed thread pool
>- thread count for one pool is equals cpu count
>
> for most customers, thread count of one pool is too small, and fixed
> thread pool is not so good, so will change to:
>
>- default integrate two ThreadPoolExecutor
>- support to configure core/max thread count, keepAlive time and max
>queue size for one pool
>- default core thread: 25, same to tomcat
>- default max thread: 100, tomcat is 200, because we have 2 pool, so
>change to 100
>- default keepAlive: 1 minute, same to tomcat
>- default max queue size: Integer.MAX_VALUE, same to tomcat
>
>


[discuss] change default settings of sync invocation executor

2019-01-23 Thread wjm wjm
currently we provide a default sync invocation executor:

   - default integrate two fixed thread pool
   - thread count for one pool is equals cpu count

for most customers, thread count of one pool is too small, and fixed thread
pool is not so good, so will change to:

   - default integrate two ThreadPoolExecutor
   - support to configure core/max thread count, keepAlive time and max
   queue size for one pool
   - default core thread: 25, same to tomcat
   - default max thread: 100, tomcat is 200, because we have 2 pool, so
   change to 100
   - default keepAlive: 1 minute, same to tomcat
   - default max queue size: Integer.MAX_VALUE, same to tomcat


Re: [discuss] change default value of verticle instance count

2019-01-23 Thread wjm wjm
eventloop will not eat all cpus, OS will schedule all the threads.

yhs0092  于2019年1月24日周四 上午9:49写道:

> Hi, wjm. Thank you for your sharing.
> As you say that if CPU count is less than 8, it's suggested that the
> thread-count is set to the CPU count. There is still a doubt for me. In the
> synchronous mode, since the business logic runs in business thread pool,
> i.e. the executor, don't we need to leave some CPU cores for the business ?
>
>
> Yours sincerely
>
>
> Yao Haishi
> yhs0...@163.com
>
>
> On 1/24/2019 09:38,bismy wrote:
> +1
>
>
>
>
> -- 原始邮件 --
> 发件人: "zzzwjm";
> 发送时间: 2019年1月24日(星期四) 上午9:30
> 收件人: "dev";
>
> 主题: [discuss] change default value of verticle instance count
>
>
>
> currently, we created four type verticle for net send/receive and reactive
> business logic:
>
> - rest client verticle
> - rest server verticle
> - highway client verticle
> - highway server verticle
>
> instances of them controlled by configurations:
>
> - servicecomb.rest.server.thread-count
> - servicecomb.rest.client.thread-count
> - servicecomb.highway.server.thread-count
> - servicecomb. highway.client.thread-count
>
> default value of the configurations are set to 1 all, because framework can
> not know what's the best value for them, so we set the conservative value
>
> these default values makes almost all customers need to optimize
> the configuration, it's not so good.
> so suggest the default values to be:
>
> - if cpu count less than 8, then thread-count set to cpu count
> - if cpu count equals or big than 8, then thread-count set to 8


Re: [discuss] change default value of verticle instance count

2019-01-23 Thread yhs0092
Hi, wjm. Thank you for your sharing.
As you say that if CPU count is less than 8, it's suggested that the 
thread-count is set to the CPU count. There is still a doubt for me. In the 
synchronous mode, since the business logic runs in business thread pool, i.e. 
the executor, don't we need to leave some CPU cores for the business ?


Yours sincerely


Yao Haishi
yhs0...@163.com


On 1/24/2019 09:38??bismy wrote??
+1




--  --
??: "zzzwjm";
: 2019??1??24??(??) 9:30
??: "dev";

: [discuss] change default value of verticle instance count



currently, we created four type verticle for net send/receive and reactive
business logic:

- rest client verticle
- rest server verticle
- highway client verticle
- highway server verticle

instances of them controlled by configurations:

- servicecomb.rest.server.thread-count
- servicecomb.rest.client.thread-count
- servicecomb.highway.server.thread-count
- servicecomb. highway.client.thread-count

default value of the configurations are set to 1 all, because framework can
not know what's the best value for them, so we set the conservative value

these default values makes almost all customers need to optimize
the configuration, it's not so good.
so suggest the default values to be:

- if cpu count less than 8, then thread-count set to cpu count
- if cpu count equals or big than 8, then thread-count set to 8

??????[discuss] change default value of verticle instance count

2019-01-23 Thread bismy
+1




--  --
??: "zzzwjm";
: 2019??1??24??(??) 9:30
??: "dev";

: [discuss] change default value of verticle instance count



currently, we created four type verticle for net send/receive and reactive
business logic:

   - rest client verticle
   - rest server verticle
   - highway client verticle
   - highway server verticle

instances of them controlled by configurations:

   - servicecomb.rest.server.thread-count
   - servicecomb.rest.client.thread-count
   - servicecomb.highway.server.thread-count
   - servicecomb. highway.client.thread-count

default value of the configurations are set to 1 all, because framework can
not know what's the best value for them, so we set the conservative value

these default values makes almost all customers need to optimize
the configuration, it's not so good.
so suggest the default values to be:

   - if cpu count less than 8, then thread-count set to cpu count
   - if cpu count equals or big than 8, then thread-count set to 8

[discuss] change default value of verticle instance count

2019-01-23 Thread wjm wjm
currently, we created four type verticle for net send/receive and reactive
business logic:

   - rest client verticle
   - rest server verticle
   - highway client verticle
   - highway server verticle

instances of them controlled by configurations:

   - servicecomb.rest.server.thread-count
   - servicecomb.rest.client.thread-count
   - servicecomb.highway.server.thread-count
   - servicecomb. highway.client.thread-count

default value of the configurations are set to 1 all, because framework can
not know what's the best value for them, so we set the conservative value

these default values makes almost all customers need to optimize
the configuration, it's not so good.
so suggest the default values to be:

   - if cpu count less than 8, then thread-count set to cpu count
   - if cpu count equals or big than 8, then thread-count set to 8