Le 26/03/2018 à 03:10, Slawa Olhovchenkov a écrit :
I am try to use multithreading w/ haproxy 1.8.5 (on FreeBSD
11-stable) and see high and saw-tooth CPU consume.

I am use next config:

global
         nbproc 1
         nbthread 2
         cpu-map auto:1/1-2 0-1

I am use for comprassion haproxy 1.7.10 w/ next config:

global
        nbproc 2
        cpu-map all 0-1
        stats bind-process 1

CPU graph https://postimg.org/image/h0wq9u99j/
haproxy 1.7.10 change to 1.8.5 at 3:15

Can I resolve this? Or collect some debug for address issuse?

# haproxy -vv
HA-Proxy version 1.8.5 2018/03/23
Copyright 2000-2018 Willy Tarreau <wi...@haproxy.org>

Build options :
   TARGET  = freebsd
   CPU     = generic
   CC      = cc
   CFLAGS  = -O2 -pipe -fstack-protector -fno-strict-aliasing 
-fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -fno-strict-overflow 
-Wno-address-of-packed-member -Wno-null-dereference -Wno-unused-label 
-DFREEBSD_PORTS
   OPTIONS = USE_GETADDRINFO=1 USE_ZLIB=1 USE_CPU_AFFINITY=1 USE_ACCEPT4=1 
USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_PCRE=1 USE_PCRE_JIT=1

Default settings :
   maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with network namespace support.
Built with zlib version : 1.2.11
Running on zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), 
raw-deflate("deflate"), gzip("gzip")
Built with PCRE version : 8.40 2017-01-11
Running on PCRE version : 8.40 2017-01-11
PCRE library supports JIT : yes
Built with multi-threading support.
Encrypted password support via crypt(3): yes
Built with transparent proxy support using: IP_BINDANY IPV6_BINDANY
Built with Lua version : Lua 5.3.4
Built with OpenSSL version : OpenSSL 1.0.2k-freebsd  26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2j-freebsd  26 Sep 2016
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : SSLv3 TLSv1.0 TLSv1.1 TLSv1.2

Available polling systems :
      kqueue : pref=300,  test result OK
        poll : pref=200,  test result OK
      select : pref=150,  test result OK
Total: 3 (3 usable), will use kqueue.

Available filters :
         [TRACE] trace
         [COMP] compression
         [SPOE] spoe


Hi,

Could you check with your previous configuration (nbproc 2 and no nbthread parameter) ? It could help to know if it is a threads related problem or not.

Then, try to disable kqueue (nokqueue option in global section or the command-line argument "-dk"), just for the test.

Beside that, I guess there is some traffic passing though your HAProxy when the problem appears. Is there any way to test if the CPU back down when you stop the traffic ?

--
Christopher Faulet

Reply via email to