Hello, Willy. As you said, take a look :
getsockopt(0x12e,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(302,"\^D\0\^V0\0\0^z\M-L-\a\0d8\0\0"...,926,0x80,NULL,0x0) = 926 (0x39e) recvfrom(682,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,8030,0x0,NULL,0x0) = 988 (0x3dc) recvfrom(682,0x801f3545c,7042,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x2a9,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(681,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,988,0x80,NULL,0x0) = 988 (0x3dc) recvfrom(1428,"\^N\0!\M-0\0\0\M-\\M^_\M-H-\^AoU"...,8030,0x0,NULL,0x0) = 444 (0x1bc) recvfrom(1428,0x8011b523c,7586,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x593,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(1427,"\^N\0!\M-0\0\0\M-\\M^_\M-H-\^AoU"...,444,0x80,NULL,0x0) = 444 (0x1bc) recvfrom(201,"\b\0\\0\0\0\M-=\M-]\M-G-\^O\0\0"...,8030,0x0,NULL,0x0) = 2627 (0xa43) recvfrom(201,0x800ec5ac3,5403,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0xbf,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(191,"\b\0\\0\0\0\M-=\M-]\M-G-\^O\0\0"...,2627,0x80,NULL,0x0) = 2627 (0xa43) recvfrom(888,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,8030,0x0,NULL,0x0) = 1226 (0x4ca) recvfrom(888,0x801ee354a,6804,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x377,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(887,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,1226,0x80,NULL,0x0) = 1226 (0x4ca) recvfrom(674,"\f\0\M-=\M-0\0\0\M^K}\M-#-d\r\0"...,8030,0x0,NULL,0x0) = 982 (0x3d6) recvfrom(674,0x800f6f456,7048,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x2a1,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(673,"\f\0\M-=\M-0\0\0\M^K}\M-#-d\r\0"...,982,0x80,NULL,0x0) = 982 (0x3d6) recvfrom(1032,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,8030,0x0,NULL,0x0) = 1205 (0x4b5) recvfrom(1032,0x801ddb535,6825,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x407,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(1031,"\^S\0W0\0\0\M-,\^?\M-L-\^P\0\^E@"...,1205,0x80,NULL,0x0) = 1205 (0x4b5) recvfrom(1339,"\v\0tpDa\^A\^DV \0\0\^A\M^R\M^K"...,8030,0x0,NULL,0x0) = 68 (0x44) recvfrom(1339,0x8011790c4,7962,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x53c,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(1340,"\v\0tpDa\^A\^DV \0\0\^A\M^R\M^K"...,68,0x80,NULL,0x0) = 68 (0x44) recvfrom(913,"\v\0tpj\M-h\^A\^D\M-Q\^]\0\0\^A"...,8030,0x0,NULL,0x0) = 108 (0x6c) recvfrom(913,0x8019090ec,7922,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' getsockopt(0x392,0xffff,0x1007,0x7fffffffdb94,0x7fffffffdb90,0x0) = 0 (0x0) sendto(914,"\v\0tpj\M-h\^A\^D\M-Q\^]\0\0\^A"...,108,0x80,NULL,0x0) = 108 (0x6c) recvfrom(166,"\^D\0\^V0\0\0\M-$\M^@\M-L-\^T\0p"...,8030,0x0,NULL,0x0) = 643 (0x283) recvfrom(166,0x800f13303,7387,0x0,0x0,0x0) ERR#35 'Resource temporarily unavailable' So yes, a lot of recv/send calls as you said before. -----Mensagem original----- De: Willy Tarreau [mailto:w...@1wt.eu] Enviada em: segunda-feira, 28 de outubro de 2013 03:37 Para: Fred Pedrisa Cc: 'Lukas Tribus'; haproxy@formilux.org Assunto: Re: RES: RES: RES: RES: RES: High CPU Usage (HaProxy) Hi Fred, On Mon, Oct 21, 2013 at 08:41:16PM -0200, Fred Pedrisa wrote: > Hello, > > Ok. > > This is the top output : > > 2748 root 1 87 0 30396K 21656K CPU8 8 28.0H 49.17% haproxy > 2726 root 1 45 0 38588K 32128K CPU24 16 21.1H 33.79% haproxy > 2718 root 1 39 0 26300K 17464K kqread 28 807:21 29.98% haproxy > 2752 root 1 38 0 30396K 21748K kqread 30 859:13 25.39% haproxy > 2738 root 1 32 0 22204K 14896K kqread 11 796:36 20.65% haproxy > 2740 root 1 31 0 34492K 27404K kqread 10 451:19 18.26% haproxy > 2780 root 1 31 0 18108K 9416K kqread 31 568:38 17.77% haproxy > 2732 root 1 29 0 34492K 27840K kqread 9 405:50 16.16% haproxy > 2730 root 1 28 0 18108K 10868K kqread 15 463:21 15.38% haproxy > 2764 root 1 29 0 18108K 10752K CPU15 15 441:34 14.60% haproxy > 2760 root 1 27 0 18108K 11620K kqread 30 353:48 12.89% haproxy > 2778 root 1 26 0 14012K 8360K kqread 29 407:07 12.16% haproxy > 2756 root 1 26 0 34492K 26280K kqread 8 502:13 9.57% haproxy > 2746 root 1 26 0 22204K 13036K kqread 29 350:32 9.57% haproxy > 47408 root 1 25 0 158M 103M kqread 11 434:37 9.08% haproxy > 2734 root 1 23 0 22204K 13704K kqread 15 384:14 6.69% haproxy > 2722 root 1 23 0 14012K 5052K kqread 10 203:38 6.30% haproxy > 2782 root 1 22 0 14012K 6352K kqread 13 208:07 4.98% haproxy > 2744 root 1 21 0 18108K 12496K kqread 28 170:59 3.27% haproxy > 2758 root 1 21 0 14012K 8320K kqread 29 71:17 2.69% haproxy > 2768 root 1 20 0 14012K 5700K kqread 28 53:16 1.46% haproxy > 2766 root 1 21 0 14012K 4868K kqread 21 88:39 1.27% haproxy > 2724 root 1 20 0 14012K 7136K kqread 14 89:32 1.17% haproxy > 2728 root 1 20 0 14012K 6520K kqread 30 65:21 1.17% haproxy > 2716 root 1 20 0 14012K 5216K kqread 28 67:38 0.98% haproxy > 2762 root 1 20 0 9916K 3936K kqread 30 39:16 0.68% haproxy > 2720 root 1 20 0 14012K 8564K kqread 23 104:37 0.39% haproxy > 2754 root 1 20 0 14012K 6312K kqread 22 80:37 0.39% haproxy > 2736 root 1 20 0 14012K 5884K kqread 25 59:06 0.20% haproxy > 2772 root 1 20 0 14012K 6984K kqread 10 73:54 0.10% haproxy > 2770 root 1 20 0 34492K 25516K kqread 31 111:38 0.00% haproxy > > Right now, the load is around 12.45, sometimes going up to 16.00 +/- I suspect something different. What type of protocol are you relaying ? Very often, people working in pure TCP mode transfer a lot of very small packets. And if you have 300 Mbps with many smal packets, it can mean a lot of wakeups/sleep cycles with a very high syscall rate. You could check using "strace -c" on one of the highly loaded processes : strace -c -p 1248 Type Ctrl-C after one second, and check the numbers. I'd bet that you'll see a lot of send/recv calls. How is the user vs system CPU usage ? If you're seeing a lot of user time, you may want to give a try to 1.5-dev19, it avoids calling process_session() as much as possible, saving a lot of CPU cycles in user space. If your CPU usage is mostly system, then it means that only tuning the system will help. Regards, Willy