Почему Linux не очищает дисковые кеши и не выполняет подкачку автоматически?

Errno 1 - «Операция не разрешена», поэтому это определенно разрешения, и очевидно разрешения на стороне Linux.

На стороне Linux вы проверили, что целевой каталог 777, но вам также нужно убедиться, что пользователь rdiff-backup может перейти в каталог. Проверьте как /media/exthdd1 , так и /media .

0
22.06.2018, 14:56
2 ответа

Придирка :Процессорное время, используемое для подкачки, обычно не имеет большого значения. Когда система медленно реагирует во время подкачки, обычно проблема заключается в диске время .

(1) Even worse with swap, there's no command to clean up unused swap

Отключение, а затем включение свопинга — допустимый и безопасный метод, если вы хотите запустить и дождаться обратного считывания замененной памяти. Я просто хочу сказать, что «очистить неиспользуемый своп» — это неправильное описание -это не то, что вам когда-либо понадобится делать.

Использование подкачки может показаться выше, чем вы ожидали, но это не значит, что оно не используется. Страница памяти может храниться как в ОЗУ, так и подкачке одновременно. Для этого есть веская причина.

Когда страница подкачки считывается обратно, она специально не стирается и все еще отслеживается. Это означает, что если страницу необходимо снова выгрузить, и она не изменилась с тех пор, как была записана для подкачки, страницу не нужно записывать снова.

Это также объясняется на linux -tutorial.info:Управление памятью -Кэш подкачки

Если страница в памяти изменена или освобождена,копия страницы в пространстве подкачки будет освобождена автоматически.

Если ваша система имеет относительно ограниченное пространство подкачки и много оперативной памяти, в какой-то момент может потребоваться удалить страницу из пространства подкачки. Это происходит автоматически. (Код ядра:linux -5.0/mm/swap.c :800)

(2) The remaining question is when will Linux clean up disk caching and will it at all? If not, is it a good practice to manually clean up disk cache (echo 1 > /proc/sys/vm/drop_caches)?

Linux очищает кеш диска по запросу. Неактивные страницы дискового кэша будут вытеснены, когда потребуется память.

Если вы измените значение /proc/sys/vm/swappiness, вы можете изменить смещение между восстановлением кэша неактивных файлов и восстановлением неактивной «анонимной» (подкачки -резервной )памяти программ. Значение по умолчанию уже настроено против свопинга. Если вы хотите, вы можете поэкспериментировать с дальнейшей настройкой значения swappinessв вашей системе. Если вы хотите больше подумать о том, что делает swappiness, вот пример, где может быть желательно включить его вверх:Заставить или заставить tmpfs выполнять подкачку перед файловым кешем

Поскольку Linux очищает дисковый кэш по запросу, обычно не рекомендуется использовать drop_caches. Это в основном для целей тестирования. Согласно официальной документации:

This file is not a means to control the growth of the various kernel caches (inodes, dentries, pagecache, etc...) These objects are automatically reclaimed by the kernel when memory is needed elsewhere on the system.

Use of this file can cause performance problems. Since it discards cached objects, it may cost a significant amount of I/O and CPU to recreate the dropped objects, especially if they were under heavy use. Because of this, use outside of a testing or debugging environment is not recommended.

6
28.01.2020, 02:16

Это ожидаемое поведение. Вы можете настроить использование подкачки с помощью vm.swappiness sysctl и настроить его в соответствии с вашими потребностями.

2
28.01.2020, 02:16

Теги

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