On Thu, May 02, 2013 at 03:03:01PM +0800, ??? ??? wrote: > Hi! > Today, our haproxy CPU grow to 100%. And the machine become terribly slow.
Please check if that's 100% user or 100% system (or even softirq). From your traces, it looks like it's system because the kernel complains about some processing to take a long time. It could be a faulty network driver which has trouble with splice() for example, you see : > [1297314.773614] Call Trace: > [1297314.773625] [<ffffffff81046a75>] ? warn_slowpath_common+0x78/0x8c > [1297314.773629] [<ffffffff81046b21>] ? warn_slowpath_fmt+0x45/0x4a > [1297314.773632] [<ffffffff812c0df1>] ? tcp_cleanup_rbuf+0x4a/0xfb > [1297314.773635] [<ffffffff812c1ed8>] ? tcp_read_sock+0x127/0x138 > [1297314.773637] [<ffffffff812c1fba>] ? tcp_splice_read+0xd1/0x21f > [1297314.773643] [<ffffffff8111aab7>] ? sys_splice+0x389/0x404 > [1297314.773649] [<ffffffff81351ad2>] ? system_call_fastpath+0x16/0x1b > [1297314.773651] ---[ end trace 54eae6935f54c0f5 ]--- You seem to be using an igb driver. From my experience, splice() is useless with most gigabit drivers (including e1000e/igb) before kernel 3.5 where GRO really became efficient. And anyway, on such a machine, you don't need splicing to forward at gigabit rate ! Best regards, Willy

