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