Isso depende da implementação da hibernação. Mesmo se você restringir a questão ao Linux, a implementação evoluiu com o tempo.
Primeiro, considere que parte da RAM é usada para caches de disco. Isso não precisa ser movido para a troca, pois ela pode ser recarregada a partir do disco após o reinício do sistema. Em um sistema com um bom equilíbrio de custo / eficiência, é comum que cerca de metade da RAM seja alocada para caches. (Veja também Por que usar swap quando há RAM mais que suficiente .) No Linux, algumas implementações iniciais armazenariam toda a memória alocada. na troca, mas a implementação atual (s?) da hibernação ignora os caches de disco.
Em segundo lugar, alguns sistemas compactam a memória conforme ela é gravada no swap, o que pode dificultar a previsão da exata quantidade necessária de swap. Algumas versões do suporte de hibernação do Linux suportam compactação; Eu não sei se os atuais fazem.O que você geralmente pode esperar se não houver espaço de troca suficiente é que a hibernação falhará: o sistema tentará armazenar o conteúdo (útil) da RAM na troca, e assim que detectar que não há espaço suficiente, a tentativa de hibernação é anulada (normalmente com uma mensagem de erro no console e nos logs do sistema). Até onde eu sei, o Linux sempre se comportou assim (não que realmente haja outro comportamento sensível).