Hi,
I am trying to scale my Openrety server. server config is
$] nginx -V
nginx version: openresty/1.13.6.2
built by gcc 8.2.0 (GCC)
built with OpenSSL 1.1.0d 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/openresty/nginx --with-cc-opt=-O2 --add-module=../ngx_devel_kit-0.3.0 --add-module=../echo-nginx-module-0.61 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2rc3 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.13 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.5 --with-ld-opt=-Wl,-rpath,/usr/local/openresty/luajit/lib --with-cc=/usr/local/bin/gcc --sbin-path=/usr/sbin --with-http_geoip_module --pid-path=/var/run/nginx.pid --with-http_stub_status_module --with-pcre=/home/platform/installers/pcre-8.42 --with-pcre-jit --with-openssl=/home/platform/installers/openssl-1.1.0d --with-http_ssl_module --with-ipv6 --with-http_v2_module --with-threads --with-file-aio --with-stream --with-stream_ssl_module
$] uname -a
Linux web10.dca.bidstalk.com 4.13.1-1.el7.elrepo.x86_64 #1 SMP Sun Sep 10 11:11:27 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
$] cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
I used https://github.com/openresty/openresty-systemtap-toolkit#sample-bt to generate flamegraph for kernel-space in production but it shows most of the call is occupied by `do_IRQ` (screenshot attached) and `
SyS_epoll_wait`. I tried stopping irqbalance service but no change. the server is receiving 10-12k json request/ sec with keepalive and doing some processing in `content_by_lua_file`. can someone please help me here? The other thing that i noticed is on
`perf top` command that `lj_str_new`is at the top (screenshot attached)
. Is it normal? If not how can I optimize it?
Attachment:
a.svg
Description: image/svg
Attachment:
Screen Shot 2019-02-06 at 4.18.11 PM.png
Description: PNG image