From e18a033b921d0d79fa8278f853548e6125b93e0c Mon Sep 17 00:00:00 2001 From: Konstantin Ananyev Date: Tue, 31 Oct 2017 12:40:17 +0000 Subject: Integrate TLDK with NGINX Created a clone of nginx (from https://github.com/nginx/nginx) to demonstrate and benchmark TLDK library integrated with real world application. A new nginx module is created and and BSD socket-like API is implemented on top of native TLDK API. Note, that right now only minimalistic subset of socket-like API is provided: - accept - close - readv - recv - writev so only limited nginx functionality is available for a moment. Change-Id: Ie1efe9349a0538da4348a48fb8306cbf636b5a92 Signed-off-by: Mohammad Abdul Awal Signed-off-by: Reshma Pattan Signed-off-by: Remy Horton Signed-off-by: Konstantin Ananyev --- app/nginx/conf/nginx-tldk.conf | 83 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 app/nginx/conf/nginx-tldk.conf (limited to 'app/nginx/conf/nginx-tldk.conf') diff --git a/app/nginx/conf/nginx-tldk.conf b/app/nginx/conf/nginx-tldk.conf new file mode 100644 index 0000000..27d6b8a --- /dev/null +++ b/app/nginx/conf/nginx-tldk.conf @@ -0,0 +1,83 @@ + +user root; +worker_processes 2; + +# run nginx workers on cpus 5-6. +worker_cpu_affinity 100000 1000000; + +#with TLDK daemon mode is not supported right now. +daemon off; + +pid /local/nginx.cfg/logs/nginx.pid; + +events { + use epoll; + worker_connections 10240; + accept_mutex off; +} + +http { + include mime.types; + default_type application/octet-stream; + + access_log off; + error_log /local/nginx.cfg/logs/error.log emerg; + + #with TLDK sendfile is not supported right now. + sendfile off; + + keepalive_timeout 0; + keepalive_requests 0; + + output_buffers 1 2m; + + open_file_cache max=20000 inactive=1h; + open_file_cache_valid 1h; + open_file_cache_min_uses 1; + open_file_cache_errors on; + + + server { + listen 6000 backlog=4096; + server_name www.xz1; + location / { + root /local/nginx.cfg/html; + index index.html index.htm; + } + } +} + +tldk_main { + #create 2 DPDK slave lcores on cpus 9-10. + eal_cmd --lcores=8-10 -n 4; + port 0 rx_offload 0xf tx_offload 0xf ipv4 192.168.1.60; +} + +tldk_ctx { + worker 0; + lcore 9; + # for benchmarking purposes set TCP TIMEWAIT to zero. + tcp_timewait 0; + # remove next line to make TLDK back-end to run a DPDK slave lcore 9 + # within nginx master process. + be_in_worker; + mbufs 0x20000; + streams 0x8000; + sbufs 0x100; + rbufs 0x800; + dev 0 port 0 queue 0; + dest dev 0 addr 192.168.1.0 masklen 24 mac 3C:FD:FE:9F:D1:E1; +} + +tldk_ctx { + worker 1; + lcore 10; + tcp_timewait 0; + be_in_worker; + mbufs 0x20000; + streams 0x8000; + sbufs 0x100; + rbufs 0x800; + dev 0 port 0 queue 1; + dest dev 0 addr 192.168.1.0 masklen 24 mac 3C:FD:FE:9F:D1:E1; +} -- cgit 1.2.3-korg