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 >