Это интересный вопрос. Я не могу найти ничего, что явно объясняет сопоставление параметра 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, вы получите все данные.
Затем нужно исследовать, какая опция подкачки соответствует какому / proc / sys / vm / option.
Я мог бы использовать этот метод, чтобы получить больше данных о свопинге, а также для приложения, которое собирает такую информацию.
Справочная страница swapon на удивление расплывчата, когда дело доходит до того, что на самом деле делают его параметры внутри, поэтому здесь отсутствует часть с точки зрения сопоставления одного набора параметров с другим набором значений. В основном, чтобы полностью ответить на этот вопрос, нужно было бы узнать, что на самом деле означают параметры подкачки внутри ядра, и в этот момент становится довольно очевидным, как преобразовать один тип данных в другой.
Альтернатива iptables: используйте сетевые пространства имен. От имени пользователя root выполните что-то вроде
ip addr show dev tun0
ip netns add vpnssh
ip link set tun0 netns vpnssh
ip netns exec vpnssh su -c 'xterm &' user_name
, где tun0
- сетевой интерфейс вашей конечной точки OpenVPN, а имя_пользователя
- пользователь, который запускает ssh
. Обратите внимание на адреса inet (назовем его vpn_local_ip
) и однорангового узла ( vpn_peer_ip
) для tun0
.
Теперь у вас есть xterm, в котором все подпроцессы только «видят» tun0
(проверьте с помощью ip link
), но, к сожалению, его перемещение отключилось. Итак, в этом окне используйте sudo
to
ip link set tun0 up
ip addr add vpn_local_ip peer vpn_peer_ip dev tun0
ip route del default
ip route add default via vpn_local_ip dev tun0
Теперь вы можете запустить ssh
в этом окне, и он будет использовать соединение OpenVPN. Скриптируйте все как требуется (используйте ip netns exec vpnssh ...
для второй части).