O que você provavelmente precisa é de mlock (), não de madvise (). Madvise é muito "fraco"; mlock bloqueia a memória no kernel. Supondo que você tenha RAM suficiente e bloqueie apenas as páginas "quentes" (não as 8GB inteiras), isso não deve ser um problema para sua configuração.
Outra solução que pode parecer contraintuitiva: desative a troca. Sua máquina tem 48GB; subtrair 4 trabalhadores, dados compartilhados e seu sistema operacional e você ainda > Restam 35 GB. Você escreve que sua fusão lê um arquivo sequencialmente e insere algumas entradas; por isso, eu suponho que você não precisa manter o arquivo grande na memória, mas pode escrevê-lo sequencialmente também; você só precisa carregar todas as suas atualizações na memória, o que não deve ser um problema.