Eu ficaria bastante confiante de que aumentar o swappiness torna o kernel menos disposto a trocar páginas tmpfs, e mais disposto a despejar páginas em cache de outros sistemas de arquivos que não sejam suportados por swap. Veja commit 4f98a2fee8ac "vmscan: listas LRU divididas em conjuntos de arquivos anon &":
Split the LRU lists in two, one set for pages that are backed by real file systems ("file") and one for pages that are backed by memory and swap ("anon"). The latter includes tmpfs.
e
* Determine how aggressively the anon and file LRU lists should be
* scanned. The relative value of each set of LRU lists is determined
* by looking at the fraction of the pages scanned we did rotate back
* onto the active list instead of evict.
*
* nr[0] = anon inactive pages to scan; nr[1] = anon active pages to scan
* nr[2] = file inactive pages to scan; nr[3] = file active pages to scan
*/
static void get_scan_count(struct lruvec *lruvec, struct mem_cgroup *memcg,
struct scan_control *sc, unsigned long *nr,
unsigned long *lru_pages)
{
int swappiness = mem_cgroup_swappiness(memcg);
...
/* If we have no swap space, do not bother scanning anon pages. */
if (!sc->may_swap || mem_cgroup_get_nr_swap_pages(memcg) <= 0) {
scan_balance = SCAN_FILE;
goto out;
}
...
For example, I can (and did) set vm.swappiness (/proc/sys/vm/swappiness) to 100
Você não diz explicitamente se conseguiu quantificar isso como não fazendo diferença para o resultado desejado. Dito isto, dada a extrema diferença de velocidade, acho que você realmente quer um valor maior de swappiness:
Reconsiderando a troca , LWN.net, 7 de junho de 2016
OThe first step in the patch set is to widen the range of possible settings for the swappiness knob. In current kernels, it can go from zero (no swapping at all if possible) to 100 (reclaim anonymous and file-backed pages equally). Johannes raises the maximum to 200; at that value, the system will strongly favor swapping. That is a possibility nobody has ever wanted before, but fast drives have now made it useful.
...
Memory-management changes are fraught with potential hazards, though, and it is entirely possible that other workloads will be hurt by these changes. The only way to gain confidence that this won't happen is wider testing and review. This patch set is quite young; there have been some favorable reviews, but that testing has not yet happened. Thus, it may be a while before this code goes anywhere near a mainline kernel.
zram é certamente um exemplo de um disco rápido. É explicitamente mencionado na discussão deste patch.
Infelizmente, não encontrei nenhum commit deste patch nem uma v2 desta série de patches.
O efeito exato do swappiness também é discutido em mais detalhes. Eu não descobri como isso combina com a explicação mais antiga do LWN.net sobre detalhes de swappage aqui .