Encontre as opções de troca atualmente em uso

4

Se eu montar meu dispositivo de troca como:

swapon --discard=once --discard=pages /dev/sdb

Como faço para verificar / encontrar as opções que usei, por exemplo, discard neste exemplo?

swapon -s apenas me dá:

Filename                Type        Size    Used    Priority
/dev/sdb                partition   4194300 0       -1

mount | grep swap é nulo.

    
por Tom Hale 15.11.2016 / 06:41

1 resposta

1

Esta é uma questão interessante. Não consigo encontrar nada que explique explicitamente o mapeamento da opção swapon para os dados de troca do kernel.

No entanto, você pode ver quase todas as opções de troca disponíveis com este comando (eu acredito que isso está correto, se não, me avise):

link tem documentação do kernel 2.6 para os vários arquivos neste diretório.

tail -n +1 /proc/sys/vm/*
==> /proc/sys/vm/admin_reserve_kbytes <==
8192

==> /proc/sys/vm/block_dump <==
0
tail: cannot open '/proc/sys/vm/compact_memory' for reading: Permission denied

==> /proc/sys/vm/compact_unevictable_allowed <==
1

==> /proc/sys/vm/dirty_background_bytes <==
0

==> /proc/sys/vm/dirty_background_ratio <==
20

==> /proc/sys/vm/dirty_bytes <==
0

==> /proc/sys/vm/dirty_expire_centisecs <==
3000

==> /proc/sys/vm/dirty_ratio <==
50

==> /proc/sys/vm/dirtytime_expire_seconds <==
43200

==> /proc/sys/vm/dirty_writeback_centisecs <==
500

==> /proc/sys/vm/drop_caches <==
0

==> /proc/sys/vm/extfrag_threshold <==
500

==> /proc/sys/vm/highmem_is_dirtyable <==
0

==> /proc/sys/vm/hugepages_treat_as_movable <==
0

==> /proc/sys/vm/hugetlb_shm_group <==
0

==> /proc/sys/vm/laptop_mode <==
0

==> /proc/sys/vm/legacy_va_layout <==
0

==> /proc/sys/vm/lowmem_reserve_ratio <==
256 32  32

==> /proc/sys/vm/max_map_count <==
65530

==> /proc/sys/vm/min_free_kbytes <==
3466

==> /proc/sys/vm/min_slab_ratio <==
5

==> /proc/sys/vm/min_unmapped_ratio <==
1

==> /proc/sys/vm/mmap_min_addr <==
65536
tail: cannot open '/proc/sys/vm/mmap_rnd_bits' for reading: Permission denied

==> /proc/sys/vm/nr_hugepages <==
0

==> /proc/sys/vm/nr_hugepages_mempolicy <==
0

==> /proc/sys/vm/nr_overcommit_hugepages <==
0

==> /proc/sys/vm/nr_pdflush_threads <==
0

==> /proc/sys/vm/numa_zonelist_order <==
default

==> /proc/sys/vm/oom_dump_tasks <==
1

==> /proc/sys/vm/oom_kill_allocating_task <==
0

==> /proc/sys/vm/overcommit_kbytes <==
0

==> /proc/sys/vm/overcommit_memory <==
0

==> /proc/sys/vm/overcommit_ratio <==
50

==> /proc/sys/vm/page-cluster <==
3

==> /proc/sys/vm/panic_on_oom <==
0

==> /proc/sys/vm/percpu_pagelist_fraction <==
0

==> /proc/sys/vm/stat_interval <==
1
tail: cannot open '/proc/sys/vm/stat_refresh' for reading: Permission denied

==> /proc/sys/vm/swappiness <==
60

==> /proc/sys/vm/user_reserve_kbytes <==
131072

==> /proc/sys/vm/vdso_enabled <==
1

==> /proc/sys/vm/vfs_cache_pressure <==
100

==> /proc/sys/vm/watermark_scale_factor <==
10

==> /proc/sys/vm/zone_reclaim_mode <==
0

Como você pode ver, se for executado com permissões de usuário, algumas opções mostram erro porque elas requerem root, se você executar o comando como root você obterá todos os dados.

Então, é uma questão de pesquisar para descobrir qual opção swapon mapeia para qual / proc / sys / vm / option.

Eu poderia usar esse método para obter mais dados sobre swap, bem como para um aplicativo que coleta essas informações.

A man page do swapon é surpreendentemente vaga quando se trata do que suas opções realmente fazem internamente, então há uma peça faltando aqui em termos de mapeamento de um conjunto de opções para outro conjunto de valores. Basicamente, para responder isso, seria necessário aprender o que as opções swapon realmente significam internamente no kernel, e nesse ponto torna-se bastante óbvio como traduzir um tipo de dados para outro.

    
por 16.11.2016 / 04:02

Tags