Optimize Alpha Performance Using Netty native transport and up to 40
percent for QPS

Simulate sending 50,000 global transactions (one global transaction
contains 3 sub-transactions), The latest Alpha single node and single
client benchmark report is as follows:

# Report 1
Warm Up                   0
Concurrency Level         500
Time taken for tests      26 seconds
Complete requests         50000
Failed requests           0
Requests per second       1923 [#/sec]
Time per request          267 [ms]

Percentage of the requests served within a certain time (ms)
50%   257.03
60%   256.42
70%   243.55
80%   268.67
90%   270.88
100%  263.72

# Report 2
Warm Up                   0
Concurrency Level         1000
Time taken for tests      27 seconds
Complete requests         50000
Failed requests           0
Requests per second       1851 [#/sec]
Time per request          552 [ms]

Percentage of the requests served within a certain time (ms)
50%   568.64
60%   538.64
70%   528.75
80%   566.27
90%   554.83
100%  541.05


Best regards,
Lei Zhang

On November 14, 2019 at 11:53:12 PM, Zhang Lei (coolbee...@gmail.com) wrote:

I Just add two dependencies netty-transport-native-kqueue and
netty-transport-native-epoll. Although these dependencies contain
libnetty_transport_native_epoll_x86_64.so and
libnetty_transport_native_kqueue_x86_64.jnilib files but they use Apache
License 2.0

Other than release does not contain any native libraries, netty call native
libraries from java jni, You need to install the native libraries on the
operating system before you can use it.

# RHEL/CentOS/Fedora:
sudo yum install autoconf automake libtool make tar \
                 glibc-devel libaio-devel \
                 libgcc.i686 glibc-devel.i686
# Debian/Ubuntu:
sudo apt-get install autoconf automake libtool make tar \
                     gcc-multilib libaio-dev

# MacOS
brew install autoconf automake libtool

Also, I think I can enable native transport with configuration
spring.profiles.active=native

Best regards,
Lei Zhang

On November 14, 2019 at 10:04:04 PM, Zheng Feng (zh.f...@gmail.com) wrote:

It looks good to and can you confirm which license these native libraries
are using ? especially they are not the part of the netty core.

Thanks,
Zheng Feng

Zhang Lei <coolbee...@gmail.com> 于2019年11月14日周四 下午9:50写道:

> Hi, Pack Team
>
> Netty provides native socket transport[1] for Linux and macOS, In order to
> support it, I need to upgrade Netty to the new version. But there are some
> problems[2] with the SSL test case after the upgrade.
>
> Boringssl does not support cipher ECDHE-ECDSA-AES128-SHA256, You can see
it
> in this commit [3]
>
> ECDHE-ECDSA-AES128-SHA256 is openssl cipher name and
> TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 is RFC cipher name, they are the
> same
>
> So I recommend removing cipher ECDHE-ECDSA-AES128-SHA256 from the file
> below.
>
>
https://github.com/apache/servicecomb-pack/blob/master/omega/omega-connector/omega-connector-grpc/src/main/resources/ssl.properties
>
>
https://github.com/apache/servicecomb-pack/blob/master/omega/omega-connector/omega-connector-grpc/src/test/java/org/apache/servicecomb/pack/omega/connector/grpc/saga/SagaLoadBalanceSenderWithTLSTest.java
>
>
https://github.com/apache/servicecomb-pack/blob/master/alpha/alpha-server/src/main/resources/ssl.properties
>
>
https://github.com/apache/servicecomb-pack/blob/master/alpha/alpha-server/src/test/java/org/apache/servicecomb/pack/alpha/server/AlphaIntegrationWithSSLTest.java
>
>
> [1] https://netty.io/wiki/native-transports.html
> [2] https://github.com/netty/netty/issues/9775
> [3]
>
>
https://github.com/google/boringssl/commit/6e678eeb6e76171712ae00d467321b6fe196152d
>
>
> Best regards,
> Lei Zhang
>

Reply via email to