Enable apache_benchmark mTCP SSL load test capability #285
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Existing ab lack of SSL load test support. Add the apache benchmark
configure script with --enable-ssl and --with-ssl option. Adopt
openssl crypto/bio/bss_sock.c as example to enable ab to create SSL
connection over mTCP socket.
Example:
$./ab -N 1 -c 2 -n 4 https://10.1.72.68/
Configuration updated by mtcp_setconf().
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Loading mtcp configuration from : config/mtcp.conf
Loading interface setting
EAL: Detected 16 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:0b:00.0 on NUMA socket -1
EAL: Invalid NUMA socket, default to 0
EAL: probe driver: 15ad:7b0 net_vmxnet3
Total number of attached devices: 1
Interface name: dpdk0
EAL: Auto-detected process type: PRIMARY
Configurations:
Number of CPU cores available: 1
Number of CPU cores to use: 1
Number of TX ring descriptor: 512
Number of RX ring descriptor: 0
Number of source ip to use: 0
Maximum number of concurrency per core: 16000
Maximum number of preallocated buffers per core: 16000
Receive buffer size: 8192
Send buffer size: 8192
TCP timeout seconds: 30
TCP timewait seconds: 0
NICs to print statistics: dpdk0
Interfaces:
name: dpdk0, ifindex: 0, hwaddr: 00:50:56:86:10:76, ipaddr: 10.1.72.28, netmask: 255.255.0.0
Number of NIC queues: 1
Loading routing configurations from : config/route.conf
Routes:
Destination: 10.1.0.0/16, Mask: 255.255.0.0, Masked: 10.1.0.0, Route: ifdx-0
Destination: 10.1.72.0/24, Mask: 255.255.255.0, Masked: 10.1.72.0, Route: ifdx-0
Destination: 10.2.72.0/24, Mask: 255.255.255.0, Masked: 10.2.72.0, Route: ifdx-0
Destination: 10.169.0.0/16, Mask: 255.255.0.0, Masked: 10.169.0.0, Route: ifdx-0
Loading ARP table from : config/arp.conf
ARP Table:
IP addr: 10.1.72.68, dst_hwaddr: 00:50:56:86:22:BA
Initializing port 0... Ethdev port_id=0 tx_queue_id=0, new added offloads 0x8011 must be within pre-queue offload capabilities 0x0 in rte_eth_tx_queue_setup()
done:
rte_eth_dev_flow_ctrl_get: Function not supported
[dpdk_load_module: 765] Failed to get flow control info!
rte_eth_dev_flow_ctrl_set: Function not supported
[dpdk_load_module: 772] Failed to set flow control info!: errno: -95
Checking link statusdone
Port 0 Link Up - speed 10000 Mbps - full-duplex
Benchmarking 10.1.72.68 (be patient)...
CPU0 connecting to port 443
CPU 0: initialization finished.
[mtcp_create_context:1359] CPU 0 is now the master thread.
[CPU 0] dpdk0 flows: 0, RX: 9(pps) (err: 0), 0.00(Gbps), TX: 0(pps), 0.00(Gbps)
[ ALL ] dpdk0 flows: 0, RX: 9(pps) (err: 0), 0.00(Gbps), TX: 0(pps), 0.00(Gbps)
rte_eth_stats_reset: Function not supported
..done
Server Software: BigIP
Server Hostname: 10.1.72.68
Server Port: 443
SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128
Document Path: /
Document Length: 13 bytes
Number of Cores: 1
Concurrency Level: 2
Time taken for tests: 0.715 seconds
Complete requests: 4
Failed requests: 0
Write errors: 0
Total transferred: 344 bytes
HTML transferred: 52 bytes
Requests per second: 5.60 [#/sec] (mean)
Time per request: 357.421 [ms] (mean)
Time per request: 178.710 [ms] (mean, across all concurrent requests)
Transfer rate: 0.47 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 5 7 1.2 7 8
Processing: 1 1 0.3 1 2
Waiting: 1 1 0.3 1 2
Total: 6 8 1.3 9 9
Percentage of the requests served within a certain time (ms)
50% 9
66% 9
75% 9
80% 9
90% 9
95% 9
98% 9
99% 9
100% 9 (longest request)
[RunMainLoop: 876] MTCP thread 0 finished.
[mtcp_free_context:1405] MTCP thread 0 joined.
[mtcp_destroy:1685] All MTCP threads are joined.