현재 사용 중인 교환 옵션 찾기

현재 사용 중인 교환 옵션 찾기

스왑 장치를 다음과 같이 마운트하는 경우:

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

discard이 예에서 와 같이 내가 사용한 옵션을 나중에 어떻게 확인/찾을 수 있습니까 ?

swapon -s그냥 주세요:

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

mount | grep swap공백.

답변1

이것은 흥미로운 질문입니다. 커널 스왑 데이터에 매핑되는 swapon 옵션을 명확하게 설명하는 내용을 찾을 수 없습니다.

그러나 이 명령을 사용하면 거의 모든 사용 가능한 스왑 옵션을 볼 수 있습니다. (저는 이것이 맞다고 생각합니다. 그렇지 않은 경우 알려주세요.)

https://www.kernel.org/doc/Documentation/sysctl/vm.txt커널 2.6부터 이 디렉토리의 다양한 파일에 대한 문서가 있습니다.

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

보시다시피 루트가 필요한 사용자 권한으로 실행하면 일부 옵션에 오류가 표시되고 루트로 명령을 실행하면 모든 데이터를 얻을 수 있습니다.

그런 다음 어떤 swapon 옵션이 어떤 /proc/sys/vm/ 옵션에 매핑되는지 조사해야 합니다.

나는 이 방법을 사용하여 교환 및 그러한 정보를 수집하는 애플리케이션에 대한 더 많은 데이터를 얻을 수 있습니다.

swapon 매뉴얼 페이지는 해당 옵션이 실제로 내부적으로 수행하는 작업에 대해 매우 모호하므로 한 옵션 세트를 다른 값 세트에 매핑하는 부분이 누락되어 있습니다. 기본적으로 이 질문에 완전히 대답하려면 스왑 옵션이 실제로 무엇인지 이해해야 합니다.의미는커널 내부에서는 이 시점에서 한 유형의 데이터를 다른 유형으로 변환하는 방법이 상당히 분명해집니다.

관련 정보