You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "zonghaishang (GitHub)" <gi...@apache.org> on 2018/11/05 09:33:35 UTC

[GitHub] [incubator-dubbo] zonghaishang opened issue #2737: [Dubbo - performance] support epoll

### Environment

* Dubbo version: 2.7.0+
* Operating System version: ubuntu18.04.1 (virtual machine)
* Java version: 

```
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-1ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
```

1.  Performance improvement scenario description
Support epoll capabilities.

system:

```
Linux ubuntu 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
```

mem: free

```
              total        used        free      shared  buff/cache   available
Mem:        4015184      924876     1847772        8240     1242536     2816432
Swap:       2097148      265944     1831204
```

cpu:  cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

```
4  Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
```

2.  Optimized benchmark performance.


3.  Unoptimized benchmark performance


refer from: https://github.com/apache/incubator-dubbo/issues/2508

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] kimmking commented on issue #2737: [Dubbo - performance] support epoll

Posted by "kimmking (GitHub)" <gi...@apache.org>.
look like no obvious improvement.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] Kiddinglife commented on issue #2737: [Dubbo - performance] support epoll

Posted by "Kiddinglife (GitHub)" <gi...@apache.org>.
> epoll 之所以高效,主要原因:
epoll is more efficient due to the reasons shown below:
> 1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
1. Avoid fds transferring between kernel space and user space.
> 2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
2. No significant improvements observed with a few of tcp connections. 
> 3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些
nio travels across all the fd descriptors to test network event (connection, close, writeable, readable and so on) whereas epoll does that via notified by operating system, which is more efficient.
> 这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。
more tests are needed in prod env. so far 10% increase in throughputs were seen.


[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [incubator-dubbo] Kiddinglife commented on issue #2737: [Dubbo - performance] support epoll

Posted by "Kiddinglife (GitHub)" <gi...@apache.org>.
nothing new but translations to English 
> epoll 之所以高效,主要原因:
epoll is more efficient due to the reasons shown below:
> 1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
1. Avoid fds transferring between kernel space and user space.
> 2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
2. No significant improvements observed with a few of tcp connections. 
> 3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些
nio travels across all the fd descriptors to test network event (connection, close, writeable, readable and so on) whereas epoll does that via notified by operating system, which is more efficient.
> 这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。
more tests are needed in prod env. so far 10% increase in throughputs were seen.


[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [incubator-dubbo] Kiddinglife commented on issue #2737: [Dubbo - performance] support epoll

Posted by "Kiddinglife (GitHub)" <gi...@apache.org>.
nothing new but translations to English 

> epoll 之所以高效,主要原因:
epoll is more efficient due to the reasons shown below:

> 1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
1. Avoid fds transferring between kernel space and user space.

> 2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
2. No significant improvements observed with a few of tcp connections. 

> 3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些
nio travels across all the fd descriptors to test network event (connection, close, writeable, readable and so on) whereas epoll does that via notified by operating system, which is more efficient.

> 这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。
more tests are needed in prod env. so far 10% increase in throughputs were seen.


[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [incubator-dubbo] Kiddinglife commented on issue #2737: [Dubbo - performance] support epoll

Posted by "Kiddinglife (GitHub)" <gi...@apache.org>.
nothing new but translations to English 

> epoll 之所以高效,主要原因:
epoll is more efficient due to the reasons shown below:

> 1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
1. Avoid fds transferring between kernel space and user space.

> 2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
2. No significant improvements observed with a few of tcp connections. 

> 3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些
3.nio travels across all the fd descriptors to test network event (connection, close, writeable, readable and so on) whereas epoll does that via notified by operating system, which is more efficient.

> 4.这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。
4.more tests are needed in prod env. so far 10% increase in throughputs were seen.


[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [incubator-dubbo] kimmking commented on issue #2737: [Dubbo - performance] support epoll

Posted by "kimmking (GitHub)" <gi...@apache.org>.
look like no obvious enhance.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] zonghaishang commented on issue #2737: [Dubbo - performance] support epoll

Posted by "zonghaishang (GitHub)" <gi...@apache.org>.
epoll 之所以高效,主要原因:

1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些

这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org

[GitHub] [incubator-dubbo] Kiddinglife commented on issue #2737: [Dubbo - performance] support epoll

Posted by "Kiddinglife (GitHub)" <gi...@apache.org>.
nothing new but translations to English 

> epoll 之所以高效,主要原因:
epoll is more efficient due to the reasons shown below:

> 1. tcp连接多的时候,避免了大量的fd在用户态和内核态反复拷贝
>1. Avoid fds transferring between kernel space and user space.

> 2. 在少量tcp连接时,epoll体现不出来什么优势,可以参考1个tcp连接数据
>2. No significant improvements observed with a few of tcp connections. 

> 3. nio每次需要轮训fd, epoll 通过回调事件,不会因为tcp连接增长线性降低效率,我特意做了50个连接,使用epoll效能还是会好一些
>3.nio travels across all the fd descriptors to test network event (connection, close, writeable, readable and so on) whereas epoll does that via notified by operating system, which is more efficient.

> 4.这个只是基准测试数据,只供参考,需要实际使用压测。目前吞吐量数据大概提升10%+。
>4.more tests are needed in prod env. so far 10% increase in throughputs were seen.


[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2737 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org