swap

2zer0

New member
Сообщения
50
#21
Поэтому операции свопирования, с огромной вероятностью, (как я предпролагаю), вообще никуда не пишутся физически, а застряют в огромном (по нынешнему состоянию Linux) дисковом кеше.
Ну, да. С этим вроде никто и не спорил:geek: Тут скорости поможет только большая оператива + ssd диск.
 

Olej

New member
Сообщения
1 307
#22
С этим вроде никто и не спорил:geek: Тут скорости поможет только большая оператива + ssd диск.
Т.е. к скорости swap, производительности Linux в целом, всё это (куда мы его, swap, разместим) не имеет никакого отношения (а если и имеет, то там такая многоуровневая зависимость, что отследить её практически невозможно).
 

2zer0

New member
Сообщения
50
#23
Т.е. к скорости swap, производительности Linux в целом, всё это (куда мы его, swap, разместим) не имеет никакого отношения
вобщем да. Хотя может и есть оч специфические рабочие места, где, скажем, размер swap важен.
 

CrashBldash

New member
Сообщения
252
#25
С учетом всего вами ранее описанного что на раб станциях что на серверах сейчас важно только количество оперативы. Потому что кеш. А своп хоть отключите его совсем. Ну или 1 гиг назначьте. Он вам особо ничем не поможет.

В штатной ситуации он не используется или используется редко и чуть чуть. Если у вас все хорошо с оперативой вы этого даже не заметите. Если нормально с оперативой но не сказочно, то опять же 1 гиг решает эту проблему.

Если у вас проблемы с оперативой, то на сервере своп вам особо не поможет выиграть в производительности. Все равно будет тормозить хоть и меньше и без полных фиаско. Но все равно вас не будет устраивать быстродействие сервера и придется наращивать оперативу. А с ее достаточностью см. выше - небольшой своп 1 гиг... ну если вы паранойд, то 2 гига... ваз за глаза и за уши хватит в 90% случаев кроме какого то специфического ПО у которого будет указание про его размер.

Если у вас проблемы с оперативой на раб станции своп вам конечно поможет, но опять же тормозить будет огого. И пользователи будут не довольны. Опять же нужно наращивать оперативу для нормальной работы. Речь не про 100500 вкладок в браузере а про работу.

Резюме:
- стремитесь всегда к тому чтобы оперативы вам хватало. если хватает - ставьте своп 1 гиг. ну 2 если прям мандраж
- если оперативы не хватает - ставьте своп равный оперативе. но это на случай фиаско (читай звиздеца), а не потому что с ним будет сказачно работать. не будет. наращивайте оперативу
- ставить своп равный двум оперативам или какие то другие значения не вижу смысла. Единственное исключение - специфичное полоумное ПО
- если ваш комп - музейный экспонат или по нему давно плачет помойка (не свезло с работодателем) то тут не в свопе дело. скорее стоит рассмотреть замену ОС на менепрожорливую или более древнюю. Та же Астра х86 не умеет, а жаль. Но не астрой единой в этом случае.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#27
Это всё разговоры "за всё хорошее - против всего плохого". :D
RedHat в своих документах гадает и описывает, CentOS гадает и описывает (оба, главным образом, серверные дистрибутивы), Canonical гадает и описывает ... - а тут вот так простенько и непосредственно: "ставь 1 гиг на все случаи жизни - и всех делов"! :ROFLMAO:
 

CrashBldash

New member
Сообщения
252
#28
Ну напиши докторскую на эту тему, если заняться больше нечем.

Попробуй выруби своп совсем.... и ничего не произойдет...
 

Olej

New member
Сообщения
1 307
#31
Это 1-е что приходит в неумную и "не битую" голову: "зачем мне делать swap вообще, если я крутой перец и у меня аж целых 4 гб памяти!".
Все, кому такое приходит в голову - вырубите для себя памятку на камне :ROFLMAO:: это, хоть и с малой вероятностью (частотой), но когда-то закончится для вас крахом системы, с возможной потерей своих наработок за последние год-два, и полной переустановкой системы.
Если вы в Linux занимаетесь кинушками и игрушками, "свистелками и перделками" - для вас это не актуально, и можете не принимать к сведению.
Если вы делаете здесь работу - swap обязателен!
(а уж форма организации swap может быть разная: раздел, файл, своп в память - zram & zswap, динамический swap - проект Swapspace и т.д.)
 

Olej

New member
Сообщения
1 307
#32
У вас жизненный опыт есть? Обратитель к нему. Мне мой говорит что
Операторам Чернобыльской АЭС их опыт тоже говорил, что разгонять реактор за пределы 100% - ничего страшного, "не 1-й раз так делаем". :censored:
 

Olej

New member
Сообщения
1 307
#33
4. Какие есть ещё другие способы (кроме раздела диска) для организации swap? (swap-файл, Zram и Zswap, Swapspace, ...)
Есть (из описанного выше), как минимум, 5 альтернативные (на выбор!) способов организации swap:
1. раздел
2. файл (файл - фиксированный, поэтому, вопреки бытующему мнению, скорость его не должна быть ниже раздела);
3. Zram
4. Zswap
5. проект Swapspace
Причём, некоторые из них могут использоваться на компьютере совместно, например: 1+3, 2+3, ...
Код:
olej@ACER:~$ /sbin/swapon -s
Имя файла                Тип        Размер    Исп-но    Приоритет
/dev/sda3                                  partition    12456956    0    -2
/dev/zram0                                 partition    131068    0    100
/dev/zram1                                 partition    131068    0    100
По отзывам, при использовании, например, Zswap скорость выполнения больших GUI программ субъективно (на глаз) значительно возрастает, особенно на малых конфигурациях, с RAM 1-4Gb.
Хотелось бы сообразить, как вместо этого субъективно проверять (сравнивать) это объективно, в конкретной конфигурации конкретного компьютера? Какими экспериментами?
 

Fox158

New member
Сообщения
1
#34
Olej, спасибо за тему. Пожалуй у вас первого внятно описана работа swap. Не всё понял до конца, но со временем переварю. Мне возможно не пригодится на практике ( профессия далека от linux) а вот для понимания самое то!
 

Olej

New member
Сообщения
1 307
#35
Хотелось бы сообразить, как вместо этого субъективно проверять (сравнивать) это объективно, в конкретной конфигурации конкретного компьютера? Какими экспериментами?
В порядке 1-го приближения посмотрел скорость обращения к "устройству" swap:
Код:
root@ACER:~# swapon -s
Имя файла                Тип        Размер    Исп-но    Приоритет
/dev/sda3                                  partition    12456956    0    -2
/dev/zram0                                 partition    131068    52452    100
/dev/zram1                                 partition    131068    50460    100
Это не Astra Linux, но не важно - Debian 10, реальное железо, диск (в том числе и для swap) SSD:
Код:
root@ACER:~# inxi -D
Drives:    Local Storage: total: 223.57 GiB used: 77.95 GiB (34.9%)
           ID-1: /dev/sda vendor: Patriot model: Burst size: 223.57 GiB
Скорость чтения SSD (раздела swap!):
Код:
root@ACER:~# hdparm -tT /dev/sda3
/dev/sda3:
Timing cached reads:   10266 MB in  2.00 seconds = 5141.71 MB/sec
Timing buffered disk reads: 1126 MB in  3.00 seconds = 375.07 MB/sec
Скорость чтения Zram устройства swap:
Код:
root@ACER:~# hdparm -tT /dev/zram0
/dev/zram0:
Timing cached reads:   10960 MB in  2.00 seconds = 5489.57 MB/sec
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
Timing buffered disk reads: 128 MB in  0.09 seconds = 1444.52 MB/sec
Скорость чтения без кеширования (!) Zram в 3,85 раз быстрее SSD.
P.S. А работа с swap вряд ли кешируется (?) нужно с этим будет вспомнить или разобраться...
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#36
Скорость чтения без кеширования (!) Zram в 3,85 раз быстрее SSD.
А как-то раньше я сравнительно мерял HDD и SSD - это совсем другой компьютер, и всё это сильно зависит от конкретных моделей - но это не имеет определяющего значения (интересуют только сравнительные цифры), важно что там диски были подключены одновременно:
Код:
[olej@xenix ~]$ inxi -D
Drives:    HDD Total Size: 240.1GB (5.3% used)
           ID-1: /dev/sda model: SAMSUNG_SP0802N size: 80.1GB
           ID-2: /dev/sdb model: INTEL_SSDSA2MH16 size: 160.0GB
И скорости:
Код:
[olej@xenix ~]$ hdparm -tT /dev/sdb
/dev/sdb: Permission denied
[olej@xenix ~]$ sudo hdparm -tT /dev/sdb
/dev/sdb:
Timing cached reads:   11504 MB in  2.00 seconds = 5758.75 MB/sec
Timing buffered disk reads: 724 MB in  3.00 seconds = 241.32 MB/sec
Код:
[olej@xenix ~]$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads:   11222 MB in  2.00 seconds = 5617.44 MB/sec
Timing buffered disk reads: 178 MB in  3.01 seconds =  59.15 MB/sec
Разница скорости прямого (не кешированного) чтения 4,079 раз.
 

Olej

New member
Сообщения
1 307
#37
Скорость чтения без кеширования (!) Zram в 3,85 раз быстрее SSD.
Разница скорости прямого (не кешированного) чтения 4,079 раз.
В итоге, можно ожидать, что свопирование в Zram/Zswap может оказаться в 3,85 х 4,079 = 15,71 раз быстрее. В жизни всё и всегда оказывается не так оптимистично, как в расчётах, но это - очень серьёзно, и может действительно заметно ощущаться "на глаз", по "отзывчивости" графических GUI приложений.
 
Последнее редактирование:

Olej

New member
Сообщения
1 307
#38
Попробуй выруби своп совсем.... и ничего не произойдет...
Ещё очень интересный ... баг или фича :p вылезли относительно раздела swap: если swap повреждён (структура), в результате записи в раздел напрямую программами измерения скорости, например, ... неправильного выключения питания ... переноса и изменения размера раздела переразметки раздела mkswap, ... и т.д. и т.п. - при последующих перезагрузках вылазит ошибка (в консоль, dmesg): "TSC_DEADLINE disabled due to Errata..." (по Интернет масса вопросов поиск вывел) + загрузка вылезает из этой ситуации, но долго ковыряяся, вместо 8 сек. на SSD загрузка происходит 1.5-2.5 минут. Нужно выправлять!
 

Olej

New member
Сообщения
1 307
#39
Симптом - swap раздел не подключен после загрузки (zram не в счёт - это у меня сжатый swap в память работает):
Код:
root@ACER:/etc/apt# swapon -s
Имя файла            Тип      Размер   Исп-но   Приоритет
/dev/zram0                                partition   131068   0   100
/dev/zram1                                partition   131068   0   100
Лечим:
1. Переразметка (форматирование) раздела по-новой:
Код:
root@ACER:/etc/apt# mkswap /dev/sda3
Setting up swapspace version 1, size = 11,9 GiB (12755922944 bytes)
без метки, UUID=006cdd2f-58e7-4144-ab85-8e640cdbbc81
Можно сразу подключить для проверки:
Код:
root@ACER:/etc/apt# swapon /dev/sda3

root@ACER:/etc/apt# swapon -s
Имя файла            Тип      Размер   Исп-но   Приоритет
/dev/zram0                                partition   131068   0   100
/dev/zram1                                partition   131068   0   100
/dev/sda3                                 partition   12456956   0   -2
2. Но теперь поменяется UUID раздела
Код:
olej@ACER:/dev/disk/by-uuid$ ls -l 006cdd2f-58e7-4144-ab85-8e640cdbbc81
lrwxrwxrwx 1 root root 10 июл  6 17:40 006cdd2f-58e7-4144-ab85-8e640cdbbc81 -> ../../sda3
Нужно именно его прописать вручную (отредактировать) в /etc/fstab! Заменить старый UUID на новый:
Код:
# swap was on /dev/sda3 during installation
#UUID=f44a7093-94cf-4bb2-92ba-9ca790d5e5f7 none            swap    sw              0       0
UUID=006cdd2f-58e7-4144-ab85-8e640cdbbc81 none            swap    sw              0       0
3. Но этого мало!
Нужно новый UUID прописать и в initramfs, пересобрать его.
Для этого правим конфиг-файл (значение RESUME):
Код:
root@ACER:/etc/initramfs-tools/conf.d# pwd
/etc/initramfs-tools/conf.d

root@ACER:/etc/initramfs-tools/conf.d# cat resume
# RESUME=UUID=f44a7093-94cf-4bb2-92ba-9ca790d5e5f7
RESUME=UUID=006cdd2f-58e7-4144-ab85-8e640cdbbc81
Вот этот шаг последний - крови попил! :rolleyes:
Само обновление initramfs можно сделать так (чтобы ещё и понаблюдать его состав):
Код:
root@ACER:~# update-initramfs -v -c -k `uname -r`
update-initramfs: Generating .//initrd.img-4.19.0-5-amd64
Copying module directory kernel/drivers/usb/host
...
Хотя обновление initramfs происходит и автоматом, при любом обновлении apt любого пакета, связанного с kernel, GRUB, firmware - можно (если не хотите рисковать) просто переустановить любой пакет, связанный с firmware:
Код:
olej@ACER:~/Загрузки$ sudo apt-get reinstall firmware-misc-nonfree
...
update-initramfs: deferring update (trigger activated)
Обрабатываются триггеры для initramfs-tools (0.133) …
update-initramfs: Generating /boot/initrd.img-4.19.0-5-amd64
 
Последнее редактирование: