Нужен ли Swap? (если на машине много памяти)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
yoricI
Сообщения: 2378
ОС: gentoo fluxbox

Re: Нужен ли Swap?

Сообщение yoricI »

igor@igor
А процент использования свопа какой у Вас? Что команда free пишет?
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!

Код: Выделить всё

free -m                    
 
                    total       used       free     shared    buffers     cached
Mem:          5982       4848       1134         0         15           777
-/+ buffers/cache:       4054       1927
Swap:       172279      1248     171031

free
                    total       used       free     shared    buffers     cached
Mem:       6125844    5192336     933508          0      22828     939636
-/+ buffers/cache:    4229872    1895972
Swap:    176414700    1278064  175136636
Добавлено (21:46):
Выше 2ГБ в свап не ухолило...
я и до 6-ти ГБ нагружал: 3-4-е виртуалки, firefox-esr - 2-3-и, и прикладнуха всякая...
Добавлено (21:49):
у меня и в ВМ с unix-подобными ОС схема как на хосте.

А и BOINC - тоже запущен.
Добавлено (21:56):
А фишка - zram - жмёт! здорово!
+реальный свап + реальные свап файлы + vram - как на хосте, так и во всех гостевых (кроме vram - железо виртуальное), где только можно...
А так я 3072M + 384M + 512M врубил + BOINC + прикладнуха - результат выше - и - хороший...
Добавлено (21:58):
По логике: (3072+384+512)*1.5=5952 - только на гостей.
Но благодаря схемам всё иначе.
Добавлено (22:03):
Могу скрипты выложить, если нужно + рецепты по схемам + BIOS + OS.
Честно Вам скажу: результат стоит того, чтобы потратить ~100GB на диске...
Добавлено (22:06):
И сейчас я точно не задумываюсь, что где-то что-то упадёт.
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2378
ОС: gentoo fluxbox

Re: Нужен ли Swap?

Сообщение yoricI »

Не понял, зачем 100Гб на диске? У Вас, во-первых, 170, а во вторых, из них минимум 150 лишние :-)
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Нужен ли Swap?

Сообщение s.xbatob »

ну, считать сложно, но арифметика тут простая: размер swap должен быть сравним с размером RAM. Если его мало то и толку от него тоже мало. Если его много, то при его заполнении железка замедляется слишком.
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!

Реальный свап: файлы и раздел 80-100 ГБ.
zram+vram=65783 МБ.
Итого свап: 172279 МБ.

Представил: Что будет, если действительно какая-нибудь софтина 65 ГБ свапа займёт?
zram cожмёт до 32-х ГБ. А дальше?
Поэтому я перестраховался и сделал огромный запас свапа, чтобы ничего точно не падало.
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

s.xbatob писал:
03.02.2019 22:06
ну, считать сложно, но арифметика тут простая: размер swap должен быть сравним с размером RAM. Если его мало то и толку от него тоже мало. Если его много, то при его заполнении железка замедляется слишком.
Всё верно: свап = ram или свап = ram * 2;

Лучше медленно, чем что-то где-то упадёт.
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

yoricI писал:
03.02.2019 07:18
Не понял, зачем 100Гб на диске? У Вас, во-первых, 170, а во вторых, из них минимум 150 лишние :-)
Никакие не лишние: всё по Науке сделано!
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!
"Никакие не лишние: всё по Науке сделано!" - Теперь точно по Науке..!
8 ГБ - память чётная (модули)...
Добавлено (21:37):

Код: Выделить всё


free -m
             total       used       free     shared    buffers     cached
Mem:          8002       7706        295          0       45        2207
-/+ buffers/cache:       5453       2549
Swap:       172279       738      171541

Добавлено (21:56):
Запущено:

5 X'ов;
2-е ВМ (384 MB + 4096 MB) + в них firefox-esr + прикладнуха;
BOINC на Хосте (7-8 проектов) + firefox-esr + прикладнуха...;
...
Всё чётко!
Добавлено (22:03):
"Реальный свап: файлы и раздел 80-100 ГБ.
zram+vram=65783 МБ.
Итого свап: 172279 МБ."

Только ОЗУ 8 ГБ - модули чётные: 2+2+2+2.

И: иногда - sudo memtester 1024GB 1024 - Таким образом, искусственным путём жму до ~600-1000 MB.
Добавлено (22:10):
Ещё трюк с /dev/zero, /dev/urandom, /dev/random, shred, srm делаю - с областями памяти... На скриптах у меня всё - от обычного пользователя.
Добавлено (22:34):
Таким образом делаю сверхсжатие памяти...
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!!
=> swap - обязательно!!!
Спасибо сказали:
sergeydrn
Сообщения: 4
ОС: Windows 10

Re: Нужен ли Swap?

Сообщение sergeydrn »

Вопрос - в распоряжении 20 Гб ОЗУ и шустрый SSD. Нужно ли создавать swap в данном случае и где скажется прирост скорости?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Нужен ли Swap?

Сообщение serzh-z »

sergeydrn
Нужно. Нигде не скажется.
Спасибо сказали:
Аватара пользователя
algri14
Сообщения: 1369
ОС: Mageia 5.1 & 8 x86_64, KDE

Re: Нужен ли Swap?

Сообщение algri14 »

sergeydrn писал:
30.11.2019 23:09
где скажется прирост скорости?
Про какую скорость речь? если вопрос про swap
sergeydrn, а Вы вообще в курсе - для чего нужен swap? судя про упоминание скорости — нет, поэтому сначала хоть немного прочтите материал про swap, а потом продолжим беседу.
Последний раз редактировалось algri14 04.02.2020 22:36, всего редактировалось 1 раз.
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!
swap структура и остальные скрипты:
Вложения
z_v_o.7z
(3.03 КБ) 56 скачиваний
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Мой дистрибутив - Description: Debian GNU/Linux 7.11 (wheezy).

swap структура, скрипты при старте (у меня в каталоге /root, прописал в /etc/rc.local):

swh0.sh

Код: Выделить всё

#!/bin/sh
swapon -p 10 /home/swap66699913352468
swh1.sh

Код: Выделить всё

#!/bin/sh
swapon -p 10 /tmp2/swap0000000000000
swh2.sh

Код: Выделить всё

#!/bin/sh
swapon -p 10 /dev/nld2/h2_swap00
vramstart.sh

Код: Выделить всё

#!/bin/bash
modprobe phram phram=VRAM,0xe0800000,248Mi
modprobe mtdblock
mkswap /dev/mtdblock0
swapon /dev/mtdblock0
zramstart.sh

Код: Выделить всё

#!/bin/bash
modprobe zram
SIZE=65536
echo $(($SIZE*1024*1024)) > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0 -p 10
Добавлено (22:11):
swap структура, скрипты при остановке системы (нужно поместить в /etc/init.d; runlevel 6 и runlevel 0):

swh0.stop

Код: Выделить всё

#!/bin/sh
swapoff /home/swap66699913352468
swh1.stop

Код: Выделить всё

#!/bin/sh
swapoff /tmp2/swap0000000000000
swh2.stop

Код: Выделить всё

#!/bin/sh
swapoff /dev/nld2/h2_swap00
vram.stop

Код: Выделить всё

#!/bin/bash
swapoff /dev/mtdblock0
modprobe -r mtdblock
modprobe -r phram phram
zram.stop

Код: Выделить всё

#!/bin/bash
swapoff /dev/zram0
modprobe -r zram
Добавлено (22:17):
Включил с помощью rcconf, проверил в sysv-rc-conf.
Добавлено (22:20):
/etc/rc.local:

Код: Выделить всё

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/root/ddn.sh
/root/ddn3.sh
/root/ddn2.sh
/root/con.sh
/root/swh2.sh
/root/swh1.sh
/root/swh0.sh
/root/vramstart.sh
/root/zramstart.sh
/root/nrc.sh
/root/loop0.sh
/root/loop0.sh
/root/vpn.sh
exit 0
Добавлено (22:33):
sudo swapon -s:

Код: Выделить всё

Filename				Type		Size	        Used    Priority
/dev/mapper/nld2-h2_swap00              partition	18874364	259796	10
/tmp2/swap0000000000000                 file		8388604	        259400	10
/home/swap66699913352468                file		81788924	259156	10
/dev/mtdblock0                          partition	253948	        0	-1
/dev/zram0                              partition	67108860	258772	10
Добавлено (23:19):
/etc/fstab:

Код: Выделить всё

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>

/dev/mapper/nld2-h2_root00 /               ext4    errors=remount-ro 0       1
/dev/mapper/nld2-h2_home00 /home           ext4    defaults        0       2
/dev/mapper/nld2-h2_opt00 /opt            ext4    defaults        0       2
/dev/mapper/nld2-h2_srv00 /srv            ext4    defaults        0       2
/dev/mapper/nld2-h2_tmp00 /tmp2            ext4    defaults        0       2
none_nmd000 /tmp tmpfs rw,nosuid,nodev,noexec,relatime,size=512M 0 0
/dev/mapper/nld2-h2_usr00 /usr            ext4    defaults        0       2
/dev/mapper/nld2-h2_usrlocal00 /usr/local      ext4    defaults        0       2
/dev/mapper/nld2-h2_var00 /var            ext4    defaults        0       2
/dev/mapper/h8_home6_00-h8_home6_000 /home2 ext4    defaults        0       2
#/dev/mapper/nld2-h2_swap00 none            swap    sw              0       0
#/tmp2/swap0000000000000 none            swap    sw              0       0
#/home/swap66699913352468 none            swap    sw              0       0
#UUID=xxxxxxxx /boot           ext4    defaults        0       2

/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-1.iso /media/r32_0 iso9660 loop 0 0
/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-2.iso /media/r32_1 iso9660 loop 0 0
/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-3.iso /media/r32_2 iso9660 loop 0 0
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-1.iso /media/r32_3 iso9660 loop 0 0
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-2.iso /media/r32_4 iso9660 loop 0 0
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-3.iso /media/r32_5 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-1.iso /media/r64_0 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-2.iso /media/r64_1 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-3.iso /media/r64_2 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-1.iso /media/r64_3 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-2.iso /media/r64_4 iso9660 loop 0 0
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-3.iso /media/r64_5 iso9660 loop 0 0
Добавлено (23:22):
mount:

Код: Выделить всё

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1021500,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=819432k,mode=755)
/dev/mapper/nld2-h2_root00 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1638860k)
/dev/mapper/nld2-h2_home00 on /home type ext4 (rw,relatime,data=ordered)
/dev/mapper/nld2-h2_opt00 on /opt type ext4 (rw,relatime,data=ordered)
/dev/mapper/nld2-h2_srv00 on /srv type ext4 (rw,relatime,data=ordered)
/dev/mapper/nld2-h2_tmp00 on /tmp2 type ext4 (rw,relatime,data=ordered)
none_nmd000 on /tmp type tmpfs (rw,nosuid,nodev,noexec,relatime,size=524288k)
/dev/mapper/nld2-h2_usr00 on /usr type ext4 (rw,relatime,data=ordered)
/dev/mapper/nld2-h2_usrlocal00 on /usr/local type ext4 (rw,relatime,data=ordered)
/dev/mapper/nld2-h2_var00 on /var type ext4 (rw,relatime,data=ordered)
/dev/mapper/h8_home6_00-h8_home6_000 on /home2 type ext4 (rw,relatime,data=ordered)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-1.iso on /media/r32_0 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-2.iso on /media/r32_1 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-7.11.0-i386-DVD-3.iso on /media/r32_2 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-1.iso on /media/r32_3 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-2.iso on /media/r32_4 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd32_archive_rep/debian-update-7.11.0-i386-DVD-3.iso on /media/r32_5 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-1.iso on /media/r64_0 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-2.iso on /media/r64_1 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-7.11.0-amd64-DVD-3.iso on /media/r64_2 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-1.iso on /media/r64_3 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-2.iso on /media/r64_4 type iso9660 (ro,relatime)
/home2/debian_iso_dvd_amd64_archive_rep/debian-update-7.11.0-amd64-DVD-3.iso on /media/r64_5 type iso9660 (ro,relatime)
none_tmp on /tmp/tmp type tmpfs (rw,relatime)
none_tmp8 on /tmp/tmp8 type tmpfs (rw,relatime)
none_0 on /tmp/tmp0 type tmpfs (rw,relatime)
none_1 on /tmp/tmp1 type tmpfs (rw,relatime)
none_2 on /tmp/tmp2 type tmpfs (rw,relatime)
none_3 on /tmp/tmp3 type tmpfs (rw,relatime)
none_4 on /tmp/tmp4 type tmpfs (rw,relatime)
none_5 on /tmp/tmp5 type tmpfs (rw,relatime)
none_6 on /tmp/tmp6 type tmpfs (rw,relatime)
none_7 on /tmp/tmp7 type tmpfs (rw,relatime)
none_88 on /tmp/tmp88 type tmpfs (rw,relatime)
none_9 on /tmp/tmp9 type tmpfs (rw,relatime)
none_10 on /tmp/tmp10 type tmpfs (rw,relatime)
none69 on /tmp/tmp69 type tmpfs (rw,relatime,size=167736320k)
Добавлено (23:37):
/tmp в ОЗУ; создание областей памяти:
su user с root правами;
sudo ./for_obl_ram_sm.sh:

Код: Выделить всё

#!/bin/sh
cd /tmp/
sudo mkdir tmp && sudo mount -t tmpfs none_tmp /tmp/tmp/
sudo mkdir tmp8 && sudo mount -t tmpfs none_tmp8 /tmp/tmp8/
sudo mkdir tmp0 && sudo mount -t tmpfs none_0 /tmp/tmp0/
sudo mkdir tmp1 && sudo mount -t tmpfs none_1 /tmp/tmp1/
sudo mkdir tmp2 && sudo mount -t tmpfs none_2 /tmp/tmp2/
sudo mkdir tmp3 && sudo mount -t tmpfs none_3 /tmp/tmp3/
sudo mkdir tmp4 && sudo mount -t tmpfs none_4 /tmp/tmp4/
sudo mkdir tmp5 && sudo mount -t tmpfs none_5 /tmp/tmp5/
sudo mkdir tmp6 && sudo mount -t tmpfs none_6 /tmp/tmp6/
sudo mkdir tmp7 && sudo mount -t tmpfs none_7 /tmp/tmp7/
sudo mkdir tmp88 && sudo mount -t tmpfs none_88 /tmp/tmp88/
sudo mkdir tmp9 && sudo mount -t tmpfs none_9 /tmp/tmp9/
sudo mkdir tmp10 && sudo mount -t tmpfs none_10 /tmp/tmp10/
ls -la /tmp/ && mount && df -h && free -m
sudo ./for_obl_ram_sm_big.sh:

Код: Выделить всё

#!/bin/sh
cd /tmp/
sudo mkdir tmp69 && sudo mount -t tmpfs -o size=163805M none69 /tmp/tmp69/
ls -la /tmp/ && mount && df -h && free -m
Добавлено (23:43):
/tmp в ОЗУ; удаление областей памяти:
su user с root правами;
sudo ./for_obl_ram_ud_big.sh:

Код: Выделить всё

#!/bin/sh
cd /tmp/
sudo umount none69 && rm -rf /tmp/tmp69/
ls -la /tmp/ && mount && df -h && free -m
sudo ./for_obl_ram_ud.sh:

Код: Выделить всё

#!/bin/sh
cd /tmp/
sudo umount none_tmp && rm -rf /tmp/tmp/
sudo umount none_tmp8 && rm -rf /tmp/tmp8/
sudo umount none_0 && rm -rf /tmp/tmp0/
sudo umount none_1 && rm -rf /tmp/tmp1/
sudo umount none_2 && rm -rf /tmp/tmp2/
sudo umount none_3 && rm -rf /tmp/tmp3/
sudo umount none_4 && rm -rf /tmp/tmp4/
sudo umount none_5 && rm -rf /tmp/tmp5/
sudo umount none_6 && rm -rf /tmp/tmp6/
sudo umount none_7 && rm -rf /tmp/tmp7/
sudo umount none_88 && rm -rf /tmp/tmp88/
sudo umount none_9 && rm -rf /tmp/tmp9/
sudo umount none_10 && rm -rf /tmp/tmp10/
ls -la /tmp/ && mount && df -h && free -m
Добавлено (23:55):
{Шифрование (cryptsetup) - всего диска + LVM + /boot - отдельно на флешке}.

Остальные скрипты не в рамках темы => в архив z_v_o.7z поместил.
Добавлено (00:03):
Все тесты памяти предоставил. Такая схема для сверхсжатия памяти - отличная!, правда затратная по объёму на диске.
Спасибо сказали:
igor@igor
Сообщения: 1374
ОС: Debian GNU/Linux, wheezy-amd64

Re: Нужен ли Swap?

Сообщение igor@igor »

Всем Привет!
Надеюсь, очень, схема кому-нибудь пригодится.
Хоть и старый старый дистрибутив, но принципы можно применить и в более новых.
=> Нужно протестировать.
Спасибо сказали:
Ответить