Skip to content

OOM on the mbuf freelist (100+GB) #538

@inter169

Description

@inter169

the nutcracker process consumed 100+GB phisycal memory on my production box after a data migration from another redis to this one (nutcracker).
and the gdb console showed below:

(gdb) p nfree_mbufq
$1 = 6365614
(gdb) p mbuf_chunk_size
$1 = 16384

the memory consumption was nfree_mbufq * mbuf_chunk_size = 101GB approx.
I have read some code fixes (pr)s about the similar phenomenon, like:
#461
#203

but such fixes didn't set the limitation of the mbuf chunks, so the OOM was still here,
I coded a fix, and the nutcracker can pass a command param ('-n ', in my fix) to set the max number of mbuf chunks, once exceeded the limitation it can free the mbuf after processing one req immediately.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions