Почему используется swap, даже если swappiness установлен в 1, и много оперативной памяти бесплатно?

Счастье:

cat /proc/sys/vm/swappiness 1

Бесплатно:

root@server07:~# free total used free shared buff/cache available Mem: 16256132 4155932 553748 145196 11546452 10514464 Swap: 19721212 8327508 11393704

Все данные бара потребляются кешем?

ЗАЧЕМ? Как я могу освободить кеш из ram и переместить swap ram в реальный ram?

1
задан 21 April 2017 в 12:47

6 ответов

запускает этот скрипт один раз в день:

#!/bin/sh

sync
echo 1 >/proc/sys/vm/drop_caches
sync
echo 2 >/proc/sys/vm/drop_caches
sync
echo 3 >/proc/sys/vm/drop_caches

mem=$(LC_ALL=C free  | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')

echo $mem
echo $swap

if [ $mem -lt $swap ]; then
    echo "ERROR: not enough RAM" >&2
    exit 1
fi

swapoff -a &&
swapon -a
3
ответ дан 22 May 2018 в 23:23

запускает этот скрипт один раз в день:

#!/bin/sh sync echo 1 >/proc/sys/vm/drop_caches sync echo 2 >/proc/sys/vm/drop_caches sync echo 3 >/proc/sys/vm/drop_caches mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') echo $mem echo $swap if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM" >&2 exit 1 fi swapoff -a && swapon -a
3
ответ дан 18 July 2018 в 14:32

запускает этот скрипт один раз в день:

#!/bin/sh sync echo 1 >/proc/sys/vm/drop_caches sync echo 2 >/proc/sys/vm/drop_caches sync echo 3 >/proc/sys/vm/drop_caches mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') echo $mem echo $swap if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM" >&2 exit 1 fi swapoff -a && swapon -a
3
ответ дан 24 July 2018 в 20:25

Swap не плохо, отключить swap. Прочитайте «Зачем мне нужен своп».

Сказав это, запустите эту команду, чтобы включить своп и снова включить его, существенно очистив swap.

sudo swapoff -a && sudo swapon -a

Вы может писать сценарий для этого периодически, делая

создать файл

sudo nano /usr/local/sbin/swap2ram.sh

вставить этот код

#!/bin/sh

mem=$(LC_ALL=C free  | awk '/Mem:/ {print $4}')
swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')

if [ $mem -lt $swap ]; then
    echo "ERROR: not enough RAM to write swap back, nothing done" >&2
    exit 1
fi

swapoff -a &&
swapon -a

сделать исполняемый файл

[ f4]

В этот момент вы можете выполнить приведенную ниже команду, чтобы сбросить своп обратно в память (если доступно достаточно памяти)

выполнить скрипт

sudo /usr/local/sbin/swap2ram.sh

сделать c [] d11]
sudo crontab -e
@hourly /usr/local/sbin/swap2ram.sh

см. журнал

grep CRON /var/log/syslog

Ссылка

Мое предложение

Уменьшение swappiness не очень хорошее решение для настольных ПК, хотя многие сайты предложит вам сделать это 1-е место после настройки.

Я бы предложил восстановить swappiness по умолчанию 60 и включить Zswap. Он будет сжимать и хранить ваши старые страницы в памяти, а не напрямую сохранять в свопе. Вы можете увидеть это Reference .

Я включил его, и это мое потребление памяти (с помощью студии android, эмулятора Android, хрома, работающего на атоме)

0
ответ дан 22 May 2018 в 23:23
  • 1
    спасибо за ответ .. :) однако swapoff -a не удаляет бафф / кеш-бара. Он просто не позволяет произвольному барабану записываться для обмена, пока он переключается на ram .. Кстати, мы находимся на серверной среде. Мне нравится сценарий, однако есть еще что-то, что нужно для удаления кэшированного ram .. :( Также is not эта ошибка ubuntu / linux? Если swappiness установлен на действительно низкое число, он не должен использовать swap вместо очистки кэш .. – Scholtz 21 April 2017 в 17:43
  • 2
    даже если я поставил echo 1 & gt; / proc / sys / vm / drop_caches echo 2 & gt; / proc / sys / vm / drop_caches echo 3 & gt; / proc / sys / vm / drop_caches перед скриптом, сценарий считает, что этого достаточно свободного плунжера, однако он не перемещает своп сразу же на плунжер, а барабан становится потребляемым новым кэш-памятью, может ли это принудительно очистить плунжер, вызвав ошибку в db? например, если mysql думает, что он написал harddrive, но linux продолжает это в cachce, эта информация, которая должна перейти на hdd, удалена? или этот кеш в баре только для кеша чтения? – Scholtz 21 April 2017 в 18:02
  • 3
    Получили ли вы какое-нибудь решение? – Sirajus Salekin 23 April 2017 в 09:33

Swap не плохо, отключить swap. Прочитайте «Зачем мне нужен своп».

Сказав это, запустите эту команду, чтобы включить своп и снова включить его, существенно очистив swap.

sudo swapoff -a && sudo swapon -a

Вы может писать сценарий для этого периодически, делая

создать файл

sudo nano /usr/local/sbin/swap2ram.sh

вставить этот код

#!/bin/sh mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM to write swap back, nothing done" >&2 exit 1 fi swapoff -a && swapon -a

сделать исполняемый файл

sudo chmod +x /usr/local/sbin/swap2ram.sh

В этот момент вы можете выполнить приведенную ниже команду, чтобы сбросить своп обратно в память (если доступно достаточно памяти)

выполнить скрипт

sudo /usr/local/sbin/swap2ram.sh

сделать c [] d11] sudo crontab -e @hourly /usr/local/sbin/swap2ram.sh

см. журнал

grep CRON /var/log/syslog

Ссылка

Мое предложение

Уменьшение swappiness не очень хорошее решение для настольных ПК, хотя многие сайты предложит вам сделать это 1-е место после настройки.

Я бы предложил восстановить swappiness по умолчанию 60 и включить Zswap. Он будет сжимать и хранить ваши старые страницы в памяти, а не напрямую сохранять в свопе. Вы можете увидеть это Reference .

Я включил его, и это мое потребление памяти (с помощью студии android, эмулятора Android, хрома, работающего на атоме)

0
ответ дан 18 July 2018 в 14:32

Swap не плохо, отключить swap. Прочитайте «Зачем мне нужен своп».

Сказав это, запустите эту команду, чтобы включить своп и снова включить его, существенно очистив swap.

sudo swapoff -a && sudo swapon -a

Вы может писать сценарий для этого периодически, делая

создать файл

sudo nano /usr/local/sbin/swap2ram.sh

вставить этот код

#!/bin/sh mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') if [ $mem -lt $swap ]; then echo "ERROR: not enough RAM to write swap back, nothing done" >&2 exit 1 fi swapoff -a && swapon -a

сделать исполняемый файл

sudo chmod +x /usr/local/sbin/swap2ram.sh

В этот момент вы можете выполнить приведенную ниже команду, чтобы сбросить своп обратно в память (если доступно достаточно памяти)

выполнить скрипт

sudo /usr/local/sbin/swap2ram.sh

сделать c [] d11] sudo crontab -e @hourly /usr/local/sbin/swap2ram.sh

см. журнал

grep CRON /var/log/syslog

Ссылка

Мое предложение

Уменьшение swappiness не очень хорошее решение для настольных ПК, хотя многие сайты предложит вам сделать это 1-е место после настройки.

Я бы предложил восстановить swappiness по умолчанию 60 и включить Zswap. Он будет сжимать и хранить ваши старые страницы в памяти, а не напрямую сохранять в свопе. Вы можете увидеть это Reference .

Я включил его, и это мое потребление памяти (с помощью студии android, эмулятора Android, хрома, работающего на атоме)

0
ответ дан 24 July 2018 в 20:25
  • 1
    спасибо за ответ .. :) однако swapoff -a не удаляет бафф / кеш-бара. Он просто не позволяет произвольному барабану записываться для обмена, пока он переключается на ram .. Кстати, мы находимся на серверной среде. Мне нравится сценарий, однако есть еще что-то, что нужно для удаления кэшированного ram .. :( Также is not эта ошибка ubuntu / linux? Если swappiness установлен на действительно низкое число, он не должен использовать swap вместо очистки кэш .. – Scholtz 21 April 2017 в 17:43
  • 2
    даже если я поставил echo 1 & gt; / proc / sys / vm / drop_caches echo 2 & gt; / proc / sys / vm / drop_caches echo 3 & gt; / proc / sys / vm / drop_caches перед скриптом, сценарий считает, что этого достаточно свободного плунжера, однако он не перемещает своп сразу же на плунжер, а барабан становится потребляемым новым кэш-памятью, может ли это принудительно очистить плунжер, вызвав ошибку в db? например, если mysql думает, что он написал harddrive, но linux продолжает это в cachce, эта информация, которая должна перейти на hdd, удалена? или этот кеш в баре только для кеша чтения? – Scholtz 21 April 2017 в 18:02
  • 3
    Получили ли вы какое-нибудь решение? – Sirajus Salekin 23 April 2017 в 09:33

Другие вопросы по тегам:

Похожие вопросы: