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


Reply via email to