
スワップデバイスを次のようにマウントする場合:
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
ご覧のとおり、root が必要なユーザー権限で実行すると一部のオプションにエラーが表示され、root でコマンドを実行するとすべてのデータを取得できます。
次に、どのswaponオプションがどの/proc/sys/vm/オプションにマップされているかを調べる必要があります。
私はこの方法を使用して、交換やそのような情報を収集するアプリケーションに関するより多くのデータを取得できます。
swapon のマニュアルページは、そのオプションが実際に内部的に実行する操作について非常にあいまいなので、あるオプションセットを別の値セットにマップする部分がありません。デフォルトでは、この質問に完全に答えるには、スワップオプションが実際に何であるかを理解する必要があります。意味はカーネル内では、この時点であるタイプのデータを別のタイプに変換する方法がかなり明らかになります。